Trabajo en la función de TI en un gran minorista y acabamos de comenzar un proyecto con el negocio para rediseñar un sistema clave para nuestro sitio web.
Los usuarios empresariales saben que desean actualizar el sistema y mejorarlo. Tienen algunos principios de muy alto nivel sobre cómo debería funcionar, pero eso es todo.
La gerencia quiere que el equipo de desarrollo comience a "hacer cosas" porque hay recursos disponibles.
Me cuesta pensar en la mejor manera de pasar nuestro tiempo como equipo de desarrollo. Sentarse con los usuarios de negocios no ha dado mucho más que unos pocos principios o cosas de muy alto nivel que no quieren que haga, pero ciertamente nada que consideraría para cumplir con los requisitos.
¿Cómo puede vincular la implementación concreta de las características con los vagos requisitos comerciales y garantizar que la empresa esté contenta con los resultados, dada la falta de experiencia técnica y la aceptación de una empresa?
fuente
Respuestas:
Desde mi experiencia, no pasaría un solo minuto desarrollando. Ni siquiera un pedacito de código. En esta etapa, donde el cliente no sabe lo que quiere, es realmente importante hacer un buen trabajo de consultoría . Es tan importante para ellos como lo es para ti.
Detrás de cada proyecto, hay una necesidad (a veces no obvia) relacionada con el negocio del cliente. Entonces, para aclarar la necesidad , primero debe aprender el negocio tanto como sea posible. Entonces podrá llevar al cliente a una solución funcional.
Durante el aprendizaje, tenga cuidado al momento de diferenciar necesidades y deseos . ¿Qué necesidad del cliente puede o no ser la misma que el cliente quiere?
Mientras realiza el análisis, si el cliente no toma decisiones, tómelas usted mismo. Como consultor, su trabajo es asesorar y liderar el proceso.
Como señaló @Ewan, es más fácil para los clientes tomar decisiones si hay alguna opción que hacer. Ofrecer varias alternativas (exponer sus pros / contras), facilita la toma de decisiones. Burlarse de prototipos es una buena manera de dar una visión general de lo que tiene en mente para ellos. El cliente tendrá el primer contacto (y sentimientos) sobre cómo van a ser las cosas. Al hacer este ejercicio de "creatividad", verá rápidamente las luces y las sombras del proyecto antes de que se conviertan en un problema.
Intente obtener la mayor cantidad de comentarios posible del usuario final . Muchas veces la persona a la que llamamos "el cliente", no es quién va a usar el sistema . En tal situación, obtendrá mejores comentarios del usuario final real. Le proporcionarán valiosos consejos sobre lo que necesitan. Identificar bien quién puede proporcionar las respuestas correctas a sus preguntas lo ayudará a cumplir con las expectativas del cliente.
Una vez que haya reunido un buen conjunto de requisitos, colóquelos en el prototipo. Las metodologías ágiles como SCRUM funcionan bien en esta etapa. Haciendo sprints sobre el prototipo.
Los prototipos serán descartados / modificados a lo largo de los sprints. También puede "guiar" al cliente al que más le convenga. ;-). Buscando un trato de ganar-ganar.
Intento evitar que los gerentes comiencen el desarrollo antes de que se haya aprobado cualquier requisito bien definido y medible . De lo contrario, comenzar con requisitos indefinidos está destinado a fallar gravemente. Se desperdiciará mucho dinero y tiempo (sin garantía de recuperarlo) porque alguien ha decidido implementar "el Caos". El Caos y la incertidumbre donde vive nuestro cliente tan querido y confundido en este momento.
Es impactante ver compañías cuyos empleados hacen su trabajo pero no son capaces de explicarle (razonablemente) cómo . También es impactante ver cuántos Gerentes de Proyecto no se preocupan por este problema, simplemente dicen "sí a todos" o "comencemos y veremos qué sucede".
Finalmente, @Ewan nuevamente señaló el punto más importante.
No olvide definir claramente qué requisitos y condiciones deben cumplirse para decir que el proyecto está terminado . Las condiciones de aceptación
No hace falta decir por qué.
fuente
Escriba un documento proponiendo 2 o 3 soluciones a lo largo de las líneas de:
"Para lograr 'principal de alto nivel x', proponemos 'Solución técnica y' que 'hará lo que hace la solución técnica'"
Haga que el cliente firme los que quiera e implemente.
fuente
Es difícil aconsejar sin poder juzgar con precisión la música ambiental.
Ya sea:
O:
Naturalmente, el segundo escenario es más preferible. Puede enmarcar algunos diseños y enrollarlos en la tierra hasta que tenga un tipo de plan.
Si se trata el primer escenario, sea absolutamente claro que las cosas que matan proyectos una y otra vez son requisitos lanosos y no tener un concepto de "hecho". Seguro que el proyecto se realizará con el tiempo, pero ¿cuánto dinero se habrá incendiado antes de eso?
fuente
En algún momento, los desarrolladores necesitan un conjunto de requisitos donde puedan desarrollar una aplicación y luego verificar si cumple con los requisitos o no. Y luego van y crean una aplicación que cumple con los requisitos.
Y es una muy, muy buena idea tener requisitos donde una aplicación que cumpla con los requisitos beneficia a la empresa :-)
Alguien necesita crear estos requisitos. Los dueños del negocio no pueden. Los desarrolladores no quieren. Los desarrolladores trataron de hacer que los propietarios del negocio crearan requisitos, pero no tuvieron éxito. Aún así, alguien necesita crear estos requisitos.
Puedes tratar de encontrar a alguien en la empresa y convertirlo en su trabajo. No como los desarrolladores lo hicieron al principio, tratando de pedir requisitos pero fallando, sino elegir a una persona y hacer que sea su trabajo a tiempo completo. Si el equipo de desarrollo cree que puede crear los requisitos, sugiéralo a la compañía y se le asignará el trabajo y la autoridad para hacerlo.
De cualquier manera, será el trabajo de alguien crear los requisitos. Y debe quedar claro que si el equipo de desarrollo crea los requisitos, los requisitos son los que obtendrá la empresa, y si no les gusta, deben asegurarse de que los requisitos cambien. Es mejor hacer esto antes de que comience el trabajo de desarrollo.
Y no necesitas darle opciones a las personas. Puede decirles que lo que está en los requisitos es lo que sucederá, y pueden firmarlo o quejarse y los requisitos se pueden cambiar.
fuente
Si siente que un prototipo está demasiado pulido y confundirá al cliente, simplemente esboce. Puede tener varias versiones si cree que eso ayudará a avisar al cliente.
Esto satisfará la necesidad de la administración de que hagas cosas sin crear un montón de código que tirarás (si sabes lo que es bueno para ti).
El cliente también necesita saber que tiene que pagar por este tipo de cosas. De lo contrario, hay pocos incentivos para que sigan adelante con el proyecto. Puede beneficiar las reuniones si puede reducir las que están realmente involucradas en el proyecto y la toma de decisiones sin que mucha gente presente sus sugerencias inútiles que solo retrasarán las cosas.
fuente
Hagamos un experimento mental: imagine que quiere construir una casa desde cero y no sabe nada sobre la construcción. ¿Cómo describe los requisitos al constructor? Incluso si pudieras, probablemente serían declaraciones vagas como "Quiero asegurarme de tener mucho espacio en el armario" y "Quiero una cocina moderna". Obviamente, no se puede esperar que conozca todos los entresijos: el arquitecto que elabora los planos le hará un montón de preguntas y tomará algunas decisiones por su cuenta de acuerdo con las mejores prácticas de la industria.
Aquí es donde estás: alguien ha decidido que quiere algo, pero les está costando explicar exactamente lo que quieren para ti. Es su trabajo trabajar junto con ellos para resolverlo.
Si hay un recurso disponible y tiene principios de alto nivel, comience a descomponer esos principios en historias de usuarios. A partir de ahí, puede llegar a una lista de tareas para hacer. Haga sugerencias en el camino, pero primero asegúrese de comprender completamente la necesidad comercial de la actualización. ¿Es pobre el rendimiento? ¿Es inseguro? ¿El diseño está desactualizado? Depende de usted manejar muchos de los detalles que sus usuarios finales desconocen. Documente las elecciones que hizo y por qué, y haga que los usuarios comerciales (o la persona correspondiente) las firmen. ¡Ahora tienes requisitos!
Recuerde, un desarrollador no necesita estar codificando todo el tiempo: también debe planificar una parte importante del tiempo. Algunas de las habilidades blandas más importantes que un desarrollador puede haber obtenido de este proceso de tomar "ideas de negocios" vagas y convertirlas en un proyecto de trabajo, que genera un producto que se ajusta a las necesidades del negocio.
Construir un prototipo es una gran idea para obtener comentarios específicos que conduzcan a mejores requisitos. Manténgalo simple y ligero: existen herramientas (aquí hay una ) que le permiten crear maquetas de trabajo sin escribir una sola línea de código.
Claro que puede: por eso la comunicación es tan esencial. Explique que es un prototipo una y otra vez. Coloque una marca de agua que diga 'BORRAR', lo que sea. Los usuarios de negocios, especialmente aquellos que no son expertos en tecnología, tendrán dificultades para cumplir con los requisitos, especialmente si no hay nada que ver. Si puedes elaborar rápidamente un prototipo con el que puedan jugar, será más fácil para ellos decir "Prefiero esto sobre eso" cuando lo veas.
fuente