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

14

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

La universidad tiene una serie de sistemas heredados muy dispares, pero bastante mal codificados. Principalmente construidos en PHP, se ocupan de cosas como asistencia, resultados de exámenes, calificaciones, etc.

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

En nuestro primer encuentro, había 18 personas! No había un líder claro ni una voz que representara a la mayoría. No cliente identificable. La reunión pasó de ideas de implementación detalladas sobre características menores de los jefes de facultad a los 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 escuchar. Este es un rol muy nuevo para mí, antes de ser parte de un equipo de desarrollo en una agencia de marketing. Teníamos roles muy bien definidos: Project Manager, Cliente, Diseñador, Desarrollador.

Me gustaría saber si algún desarrollador o administrador experimentado puede darme algunos consejos sobre cómo puedo hacer que mis colegas se conviertan 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.

    
pregunta Matt Harrison 20.03.2013 - 17:30
fuente

5 respuestas

26

No esperaría ningún "proceso de desarrollo ágil" aquí como solución a su problema actual. Lo primero que debes hacer es: borrar tu misión . Eso significa:

  • aclara cuáles son tus propias responsabilidades
  • aclare cuáles son las responsabilidades de las otras partes interesadas
  • 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 utilizar en el futuro y solicite permiso para incorporarlo como usuario representativo de su sistema (una persona con quien puede discutir los requisitos). )
  • Si hay diferentes partes interesadas con diferentes objetivos, reúna sus requisitos (por ejemplo, entrevistándolos uno por uno, no con 18 personas en una sola habitación). Escribe los resultados en una lista. Después, 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 representativo lo acepten formalmente
  • EDITAR: ver el comentario de GlenH7

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

    
respondido por el Doc Brown 20.03.2013 - 17:47
fuente
5

Separe los que realmente quieren que este proyecto funcione de la manada.

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

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

Finalmente, vas a 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 hacerlo y no solo será otro elemento en su larga lista de tareas pendientes. Encuentra a estas personas lo antes posible! Ayúdelos a administrar las expectativas de su jefe y obtener una cantidad acordada de compromiso.

Ponga algo frente a tantas personas en el grupo original que incluso se molestarán en regresar. Todos pueden ser 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 duele escribir sugerencias, pero intenta hacer que la fiesta haga un seguimiento con algo de tema en el juego. No prometas hacer todo. Simplemente aborde lo que se puede hacer en un futuro cercano.

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

    
respondido por el JeffO 20.03.2013 - 19:29
fuente
3

Cree una lista de ideas que cree que podrían consolidar / mejorar los sistemas existentes en función de sus observaciones y sus "necesidades" y asegurarse de centrarse en dónde puede obtener 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 cosas que "deben" incluirse en sus esfuerzos de desarrollo. Otorgue a cada miembro el poder de "votar", tal vez en forma de "estrellas pegajosas" y descubra lo que realmente quiere el conjunto al colocar cada estrella junto a lo que creen que es importante. Algunas personas pueden terminar con más estrellas si firman el cheque, tienen la última palabra, etc. Después de eso esperamos que usted, y todos los demás, vean lo que es importante para el conjunto, y esperen que estén de acuerdo con la prioridad, que luego se traduce en una hoja de ruta

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

2). Obtenga algo ahí afuera, rápidamente : no intente resolver todos los problemas de una vez, obtenga la funcionalidad "mínima" y haga que los aprueben, luego avancen 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

(Crear, Evaluar comentarios, Crear, Evaluar comentarios) Enjuagar y repetir.

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

    
respondido por el hanzolo 20.03.2013 - 20:12
fuente
1

Su primer desafío es identificar la necesidad de este proyecto. Organice otra reunión con todas esas personas y pídales que escriban los problemas que deben resolverse. No les permita hablar sobre las muchas formas en que este proyecto será la solución. Oblígalos a identificar verdaderamente las necesidades / problemas.

Una forma de hacerlo es pedirles a cada uno que documente 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, haz que voten ( Multi-Voting ) para que puedas ver las mayores necesidades.

Agile nos recuerda que debemos abordar primero la función que tiene el mayor valor para el cliente. Comience con la mayor necesidad y luego divida ese elemento hasta que tenga la primera pieza pequeña que pueda hacer en un corto período de tiempo.

    
respondido por el lsievert 27.03.2013 - 15:22
fuente
0

KISS - Haz un itinerario. Gracias a todos por venir, revisarlo, hacerlo. El seguimiento lateral se ralentizará si lo aborda compartiendo su preocupación y les pide que se queden DESPUÉS de la reunión. Tomar decisiones por votación donde haya controversia para mantener a los más felices. La motivación para participar en cualquier sistema está directamente relacionada con la creencia de los individuos en sus métodos.

    
respondido por el Steven 20.03.2013 - 20:30
fuente