Cómo comenzar un proyecto de desarrollo cuando hay demasiados interesados ​​potenciales

15

Acabo de tomar un nuevo trabajo en una universidad como (el único) desarrollador de aplicaciones web.

La universidad tiene varios sistemas heredados dispares pero todos muy mal codificados. Construidos principalmente en PHP, se ocupan de cosas como asistencia, resultados de exámenes, calificaciones, etc.

Mi primer trabajo es construir un sistema que incorpore muchos de estos datos, que actualmente se encuentran en varias bases de datos sin ningún tipo de API amigable para sacarlo (los sistemas existentes están codificados en PHP vanilla sin separación de datos y vista) con una nueva plataforma para registrar información pastoral sobre los estudiantes y presentarla a tutores y personal superior de manera útil para que puedan reaccionar a los problemas con los estudiantes rápidamente.

¡En nuestra primera reunión, había 18 personas! No había un líder claro o una voz que representara a la mayoría. Ningún cliente identificable . La reunión pasó de ideas de implementación detalladas sobre características menores de los jefes de facultad a argumentos sobre si deberíamos usar hojas de cálculo de Excel o no para la entrada de datos.

Como puedes imaginar, mi cabeza daba vueltas al final. De hecho, tenía muchas buenas ideas, pero no pude hacerlas oír. Este es un papel muy nuevo para mí, antes de formar parte de un equipo de desarrollo en una agencia de marketing. Tuvimos roles muy bien definidos: Gerente de Proyecto, Cliente, Diseñador, Desarrollador.

Me gustaría saber si algún desarrollador o gerente experimentado puede darme algunos consejos sobre cómo puedo convertir a mis colegas en algo que se parezca a un equipo de proyecto. ¿Es ágil el camino a seguir? ¿Cómo abordarías el manejo de todas las voces dispares? Está claro que algunos procesos deben implementarse muy rápidamente, simplemente no estoy seguro de qué es eso.

Matt Harrison
fuente
8
Si usted es el único desarrollador, ¿quiénes fueron los otros 17 en la reunión?
pdr
1
Buena pregunta. El director de la escuela, varios miembros del personal docente (incluso el profesor de educación física estaba allí) y muchas personas con nombres acrónimos.
Matt Harrison
1
@MattHarrison: ¿pero qué tienen en común con su aplicación web? ¿Son usuarios potenciales? ¿Mantienen esos sistemas heredados que mencionaste? Debe aclarar eso para asegurarse de saber a quién le solicitará los requisitos y a quién puede ignorar.
Doc Brown
1
@DocBrown Lo siento, tal vez no estaba claro. Todos serán futuros usuarios del sistema. La aplicación será interuniversitaria y será utilizada por más de 3000 personas. Creo que lo que sucedió aquí es que la gente invita a la gente y la reunión se ha convertido en un circo. Lo que haré es enfatizar la necesidad de una menor participación de los interesados.
Matt Harrison
55
@Para el anotador / votante anónimo: esto puede parecer demasiado localizado a primera vista. Pero creo que la verdadera pregunta es una pregunta de desarrollo de interés general: "cómo comenzar un proyecto de desarrollo cuando hay demasiados interesados ​​potenciales", y ese tipo de preguntas son sobre el tema de la OMI aquí.
Doc Brown

Respuestas:

26

No esperaría ningún "proceso de desarrollo ágil" aquí como solución a su problema actual. Lo primero para ti debería ser: despeja tu misión . Eso significa:

  • aclarar cuáles son sus propias responsabilidades
  • aclarar cuáles son las responsabilidades de los otros interesados
  • Identificar quién es responsable de cada uno de los sistemas heredados
  • Si no hay un cliente (todavía) para su aplicación web, busque uno que lo vaya a usar en el futuro y solicite permiso para incorporarlo como usuario representativo de su sistema (una persona con la que puede discutir los requisitos)
  • Si hay diferentes partes interesadas con diferentes objetivos, recopile sus requisitos (por ejemplo, entrevistandolos uno por uno, no 18 personas en total en una habitación). Escribe los resultados en una lista. Luego, comience a priorizar.
  • escriba una hoja de ruta (el panorama general) y una pequeña especificación para la versión 0.1 y haga que su jefe y el cliente representante lo acepten formalmente
  • EDITAR: ver el comentario de GlenH7

Esto puede llevar un tiempo, probablemente no escriba mucho código en esta etapa del proyecto. En tal situación, primero debe hacer algunos "requisitos de ingeniería". Pero comienza con algo pequeño, piensa en grande. Una vez que haya desarrollado su primer lanzamiento, tendrá algo para mostrar, discutir los requisitos nuevamente con las partes interesadas, etc.

Doc Brown
fuente
Un consejo genial. ¡Gracias! ¿Puedo aclararlo? cuando dices 'limpia tus responsabilidades', ¿quieres decir aclararlas o borrarlas para deshacerte de ellas? Lo siento, soy británico, así que tal vez sea algo de inglés estadounidense.
Matt Harrison
1
@MattHarrison: espero que mi edición lo haga más claro, aunque a veces también puede ser una buena idea deshacerse de algunas responsabilidades ;-)
Doc Brown
44
Excelente respuesta El único elemento que agregaría es identificar un actor principal o ejecutivo. Esta persona tiene la autoridad final para determinar la prioridad y el alcance de la función. Hay diferentes maneras de llegar allí, pero alguien tiene la responsabilidad final sobre el proyecto. Y sí, siéntase libre de robar este comentario para agregarlo a su respuesta si lo desea. :-)
6

Separe a los que realmente quieren que este proyecto funcione del rebaño.

Debido a mucha política, alguien organizó esta reunión con una lista de asistentes donde la membresía fue determinada por quién se enojaría más si no los invito. Sucede. Este objetivo se cumplió, pero como desarrollador, descubrió que no se había decidido nada. A nadie se le asignó qué hacer. Si tienes suerte, lograron programar la próxima reunión o, Dios no lo quiera, establecieron una reunión recurrente el tercer martes de cada mes.

Luego vendrá la formación de comités, subcomités y grupos de trabajo. Esto es mejor, pero los encontrarás igualmente inútiles.

Finalmente, descubrirá quién se preocupa realmente por este proyecto. Quien realmente quiere dedicar el tiempo para hacerlo bien. Con suerte, esta (s) persona (s) tendrá un supervisor que les dará tiempo para hacer esto y no solo lo convertirá en otro elemento en su larga lista de tareas pendientes. Encuentra a estas personas lo antes posible! Ayúdelos a manejar las expectativas de su jefe y obtenga un compromiso acordado.

Obtenga algo frente a tantas personas en el grupo original que incluso se molestarán en regresar. Puede que todos sean personas inteligentes y / o educadas, pero no van a leer un montón de especificaciones. Les gustarán algunas cosas, odiarán otras y querrán más. No está de más anotar sugerencias, pero trata de hacer que esa fiesta haga un seguimiento con algo de máscara en el juego. No prometas hacer todo. Simplemente aborde lo que se puede hacer en el futuro cercano.

Si terminas teniendo que tratar con más de 5 personas de manera regular, es porque algún gerente hizo que varias de sus personas se involucraran y que realmente no quisieran estar allí.

JeffO
fuente
1
+1 por resaltar los aspectos políticos de tal situación.
Doc Brown
4

Presente una lista de ideas que cree que solidificarían / ​​mejorarían los sistemas existentes en función de sus observaciones y sus "necesidades" y asegúrese de centrarse en dónde puede lograr ganancias visibles reales. Incluya en esa lista cada idea que considere útil, así como cualquier sugerencia "razonable" destacada de los no desarrolladores.

Cree una lista de características de las cosas que "deberían" incluirse en sus esfuerzos de desarrollo. Otorgue a cada miembro el poder de "voto", tal vez en forma de "estrellas adhesivas" y descubra lo que el conjunto realmente quiere de cada miembro colocando estrellas al lado de lo que consideran importante. Algunas personas pueden terminar con más estrellas si firman el cheque, tienen la última palabra, etc. Después de eso, con suerte, usted y todos los demás verán lo que es importante para el conjunto, y con suerte aceptarán la prioridad, que será luego traducir a una hoja de ruta

1) Encuesta al equipo : descubra lo que cada miembro considera importante / necesario / máxima prioridad

2) Obtenga algo rápidamente , no intente resolver todos los problemas de una sola vez, obtenga la funcionalidad "mínima" y pídales que lo aprueben, luego avance colectivamente en función de los comentarios de los usuarios.

3) Utilice sus comentarios y los comentarios de otros usuarios para guiar el proceso de desarrollo.

(Construir, evaluar comentarios, construir, evaluar comentarios) Enjuague y repita.

Además, puede considerar poner "puntos de esfuerzo" u horas estimadas para completar ... eso también podría ayudar en la priorización.

hanzolo
fuente
1
+1, esa es la forma de conducir el auto una vez que lo tienes en movimiento :-)
Doc Brown
1
+1 para este, aunque todavía lo haría más explícito de que debes tener cuidado con un "mal sistema" que realmente hace lo que tiene que hacer. Priorice de una manera que no esté arreglando cosas que no están rotas, concéntrese en dónde puede lograr ganancias visibles reales.
Joris Timmermans
@MadKeithV, de acuerdo .. "Centrarse en dónde puede lograr ganancias visibles reales", comentario actualizado para incluir esa declaración.
Hanzolo
2

Su primer desafío es identificar la necesidad de este proyecto. Mantenga otra reunión con todas esas personas y pídales que escriban los problemas que necesitan ser resueltos. No deje que hablen sobre las muchas formas en que este proyecto será la solución. Oblígalos a identificar verdaderamente las necesidades / problemas.

Una manera de hacer esto es pedirles a cada uno individualmente que documenten esas necesidades en notas adhesivas, una idea por nota adhesiva. Luego, ejecute un Diagrama de afinidad para ayudarlos a agrupar esas ideas dispares en necesidades específicas. Finalmente, haga que voten ( Multi-Voting ) para que pueda ver las mayores necesidades.

Agile nos recuerda que debemos abordar primero la característica que tiene el mayor valor para el cliente. Comienza con la mayor necesidad y luego sigue dividiendo ese elemento hasta que tengas la primera pieza pequeña que puedas hacer en un corto período de tiempo.

lsievert
fuente
0

BESO - Haz un itinerario. Gracias a todos por venir, revísalo, hazlo. El seguimiento lateral se ralentizará si lo aborda al compartir su preocupación y pedirles que se queden DESPUÉS de la reunión. Tome decisiones por votación donde haya controversia para mantenerse más feliz. La motivación para participar en cualquier sistema está directamente relacionada con la creencia de los individuos en sus métodos.

Steven
fuente