condensar los requisitos comerciales en especificaciones técnicas [cerrado]

8

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?

Sutty1000
fuente
44
Hay varios libros escritos sobre esto, por lo que es demasiado amplio para ser respondido adecuadamente aquí. Te sugiero que busques un desarrollo ágil. Mi estrategia sería elegir la característica más importante y discutir eso con los usuarios comerciales para obtener suficientes detalles que puedan dividir en elementos de trabajo que su equipo pueda realizar en una semana. Preferiblemente, cada elemento de trabajo proporciona una pequeña porción de la funcionalidad general de la función.
Bart van Ingen Schenau
2
¡Me gustaría que la gente explicara por qué votaron en contra!
Sutty1000
@ Sutty1000 ¿Puede ver los motivos de los votos cerrados? Eso podría darte una idea ...
Robbie Dee
2
El trabajo que busca es "analista de negocios". Aprenden cómo funciona el negocio, toman la poca información que el cliente está pidiendo, saben qué tecnología es factible y la combinan para crear requisitos de "negocio". Cuando conozca todos los requisitos comerciales, puede comenzar a hablar con su equipo de desarrollo para averiguar los requisitos técnicos.
the_lotus
1
He puesto en una edición para tratar de hacer la pregunta más 'programmery' Creo que es bastante claro cuál es la pregunta y hay varias respuestas formales que podrían estar relacionados con las prácticas de desarrollo comunes, tales como scrum, etc
Ewan

Respuestas:

4

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.

Haga que el cliente firme los que quiera e implemente.

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é.

Laiv
fuente
7

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.

Ewan
fuente
El cliente parece no técnico. Este enfoque es conveniente para el OP, pero podría no lograr el mejor resultado para el negocio.
Usr
Eso depende de cuánto esfuerzo pones en elegir la solución técnica. No es el método que eliges para que el negocio lo acepte
Ewan
4

Es difícil aconsejar sin poder juzgar con precisión la música ambiental.

Ya sea:

Los usuarios y la administración de la empresa no están haciendo su trabajo y solo están pateando la lata en el camino para que los desarrolladores se encarguen (y así pueden patear a los desarrolladores cuando las cosas van mal).

O:

Realmente no están seguros de lo que quieren y necesitan ser guiados por el equipo de desarrollo.


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?

Robbie Dee
fuente
0

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.

gnasher729
fuente
0

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.

JeffO
fuente
El cliente también necesita saber que tiene que pagar por este tipo de cosas , el OP funciona para la función interna de TI, no hay cliente por sí mismo, no hay costo en dólares, pero sí, habrá un esfuerzo invertido mientras se eliminan los requisitos ...
Robbie Dee
0

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.

También un prototipo básico a menudo puede ser malinterpretado por los usuarios comerciales ...

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.

DrewJordan
fuente