¿Cómo pasar de programador a jefe de proyecto?

Soy un programador en una pequeña empresa que está acostumbrado a recibir proyectos de alguien que dice en una reunión: "haz un sitio web de comercio electrónico", y luego me encargo de hacerlo. Los únicos requisitos que recibo son los que pido.

Nos estamos expandiendo y se me ha encomendado liderar el desarrollo/administración de una gran aplicación web. Utilizaremos un nuevo equipo interno de varios programadores, así como una empresa de subcontratación.

Para permitir que un nuevo programador desarrolle un componente para esta aplicación, ¿qué debo proporcionarles?

Lo que realmente me cuesta en este momento es determinar los tipos de recursos que proporcionar, el nivel de separación que debe existir entre ellos y cuán granulares deben ser los detalles.

Digamos que este proyecto es un sitio web de comercio electrónico que constará de una tienda, un carrito de compras y un registro de usuario, y quiero que un programador trabaje en el registro de usuario. Agradecería enormemente si alguien puede enumerar, muy exactamente, lo que se debe proporcionar, ya que, a pesar de mi mejor búsqueda en Google, todo lo que puedo encontrar es "pelusa" de alto nivel sobre esto. Por ejemplo:

  • ¿Debo incluir diagramas (¿UML?), y si es así, ¿cuáles y qué deberían transmitir?
  • ¿Debo preparar documentación escrita (como una hoja de especificaciones) y, de ser así, qué tipo de detalles debo incluir?
  • ¿Debo proporcionar cosas como requisitos funcionales/no funcionales, requisitos comerciales, etc.?
Guau, esa es una pregunta difícil. Para permitir que los demás escriban respuestas bastante buenas, intente resaltar su pregunta raíz. Supongo que es algo así como "¿Cómo puedo garantizar que los subcontratistas cumplan con los requisitos dentro del escenario descrito?". Como es habitual en SE, trate de evitar múltiples preguntas en una publicación, esto hará que las respuestas sean borrosas: ¿Desea que se proporcione una lista de todos los elementos (si es así, debe proporcionar más detalles de su escenario)? ¿Quiere saber si debe proporcionar UML, el nivel de detalle de UML, ...
Parece que su organización es bastante pequeña, todavía. ¿Estás desempeñando funciones distintas a las de gerente de proyecto? Es decir, ¿sigues trabajando en el proyecto en alguna capacidad técnica, como arquitecto, diseñador, desarrollador o probador? Creo que puede ser mejor pensar en los roles necesarios para completar este proyecto y qué cosas hace cada rol. En este momento, es posible que desempeñe varios roles, pero eso podría cambiar con el tiempo a medida que el equipo crezca y madure.
Lo que esto parece reducirse a "¿Qué necesita un programador para desarrollar sus entregables?", Lo cual es bueno porque "¿Cómo ponemos un SDLC administrado por proyectos?" en su lugar es demasiado amplio. Sin embargo, leer entre líneas también es lo que se pregunta. Lo que no entiendo de esta pregunta es por qué no sabes la respuesta ya que actualmente eres programador. Seguramente, por lo tanto, sabes lo que necesitas para desarrollar tus entregables, o lo que te gustaría tener. Creo que debe pensar en lo que necesita lograr, dividirlo en objetivos y luego pedir ayuda para alcanzar cada objetivo.
Esta es una pregunta de muy alto nivel y generará las respuestas de alto nivel de Google. Si desea respuestas de nivel inferior, debe hacer preguntas de nivel inferior. Esta es una gran pregunta, pero debe profundizar más y luego juntar las piezas para ayudarlo a dirigir lo que parece un esfuerzo de madurez de PM.
@GoatBreeder, no creo que los UML sigan siendo relevantes, excepto en el contexto de cumplimiento o académico. ¿El equipo de ingeniería de Google utiliza UML?

Respuestas (3)

Como dicen en la columna Worst Week in Washington del Washington Post , "Felicidades, o algo así..." Deje a un lado el UML, tiene preocupaciones más apremiantes. Como suele ser el caso, su pregunta de varias partes se puede descomponer en preguntas individuales, muchas de las cuales ya se han abordado en SE.

  1. Carta del proyecto
  2. Análisis y gestión de stakeholders. ¿Cómo maneja las demandas conflictivas de las partes interesadas? ¿Diriges el equipo? ¿Gestionas a los contratistas? Consulte Trabajar con un "punto de contacto único" y Project Manager - Escribir la especificación del proyecto
  3. Plan de proyecto
  4. Estructura de desglose del trabajo

Lo siento, me quedé sin tiempo, pero esto debería ayudarlo a comenzar, tal vez a la salida para buscar ese trabajo de programación que acaba de dejar. :-)


Adenda:

Advertencia: no confunda un documento de MS Project con un plan de proyecto.

Eche un vistazo a http://www.projectmanagement.com/Templates/ . Por ejemplo, hay un Plan de proyecto de desarrollo de software: "Aquí está todo lo que necesita para un proyecto de desarrollo de software, desde la planificación hasta el cierre". Este documento requiere una membresía de $249, pero la lista de temas puede ayudarlo a evaluar las ofertas gratuitas en Internet. El plan incluye:

  • Lanzamiento del proyecto
  • Adquirir recursos
  • Definición de requisito
  • Diseño detallado
  • Configuración del sistema
  • Adquirir e instalar el sistema
  • Desarrollo de aplicaciones
  • Migración de datos
  • Documentación del sistema
  • Pruebas
  • Capacitación
  • Implementación de Producción
  • CERRAR

Menos detallado es el Plan de proyecto de JPACE: "El tiempo lo es todo, incluso en la gestión de proyectos. La clave para un proyecto exitoso es usar JPACE, es decir, justificarlo, planificarlo, activarlo, controlarlo y terminarlo de la manera correcta. Este Microsoft El plan del proyecto lo ayudará a hacer precisamente eso".

Haz mini scrum, escribe listas de tareas en post-its y pégalas en una pizarra. decirle a los desarrolladores que hagan tareas.

Como usted mismo sabe, los desarrolladores están acostumbrados a la falta de requisitos. Una vez que el sitio comience a unirse, pronto obtendrá personas que digan '¡hazlo más azul!' etc.

Una lista de tareas es una forma de estructura de desglose del trabajo. Una WBS y una priorización de tareas efectivas suponen un campeón de usuarios fuerte y analistas comerciales comprometidos. Por favor, no intente aprender gestión de proyectos y desarrollos ágiles al mismo tiempo.
ja! Sí claro. tal vez en un mundo de ensueño perfecto

Estoy de acuerdo con WaltHouser, definitivamente deberías instalar una gestión de proyectos completa. Aquí es donde debes ir a medio plazo.

Desafortunadamente, supongo que no tienes tiempo para obtener todo el conocimiento requerido. Esto es lo que debe proporcionar a corto plazo:

  • Especificación del sistema/subsistema
  • Documento de diseño del sistema/subsistema (al menos la parte de la interfaz)

Encontrará en wikipedia buenas plantillas para ambos documentos, busque MIL-STD 498. El estándar está desactualizado, sin embargo, las plantillas son muy útiles.

Trate de escribir buenos requisitos. Apóyese a sí mismo y a sus colegas escribiendo un Plan de gestión de requisitos para definir:

  • Los requisitos serán atómicos.
  • Uso de must, should, should, can como palabras especiales
  • Uso de un esquema para categorías similares de requisitos

Lo escribí en la parte SSDD: concéntrese en las interfaces , esp. aquellos que conectan diferentes equipos de desarrolladores. Ir a por ellos tanto en detalle como sea posible.

La parte de gestión de proyectos del trabajo puede estar cubierta por un comportamiento intuitivo o buen sentido. Por supuesto, el entrenamiento ayudará mucho. Para empezar, no dejes de compartir información y escucha.