¿Un programador como administrador de proyectos o no programador? [cerrado]

7

Somos un equipo de programadores y estamos empleando a una nueva persona que solo será gerente de proyectos. Nuestro proyecto es solo de programación y no estamos seguros de cómo decidir quién será el mejor para el gerente de proyecto.

¿Encontraremos un programador senior de nuestro campo de programación?

¿O debemos encontrar un tipo regular (estudios de economía o administración) que nunca haya codificado en su vida?

EDIT

Un gestor de proyectos will_

  • Crear tareas para desarrolladores
  • Controlar que se respeta nuestro flujo de trabajo de tickets
  • Advertir a los desarrolladores es que cruzan el tiempo estimado de trabajo
  • Administrar las hojas de horas semanales de finanzas
  • Ayuda al cliente y responde a sus preguntas
  • Establecer reuniones entre el cliente y los desarrolladores (reuniones por Internet)

Y cosas similares.

Ahora, cuando escribí esto, veo que no hay tareas de TI aquí. Pero ¿qué pasa con las preguntas simples que hacen los clientes y qué persona educada podrá responder? Obviamente no podemos molestar a los programadores por esto todo el tiempo. Esta es la razón principal por la cual estamos en duda.

    
pregunta deviDave 26.01.2014 - 20:42

4 respuestas

12

¿Cuál sería el papel del gerente?

Primer caso: equipo y jefe de proyecto

Si él manejara el equipo y organizara la forma en que se lleva a cabo el proyecto, entonces, sin experiencia técnica, dicho gerente podría convertirse en un verdadero placer que llevará al fracaso del proyecto. Para esta tarea, necesita una persona que entienda:

  • Cómo trabajan y piensan los desarrolladores en comparación con otros trabajos:

    1. ¿Cuáles son sus motivaciones?
    2. ¿Por qué las nuevas características deberían estar en producción lo antes posible?
    3. ¿Por qué es tan difícil comparar la productividad bruta de dos desarrolladores?
    4. ¿Cuáles son las habilidades reales (como las habilidades de comunicación) que requiere un desarrollador?
    5. etc.
  • Cómo se gestiona el proyecto , especialmente:

    1. ¿Qué es la deuda técnica y por qué debería tenerse en cuenta?
    2. ¿Cuáles son las técnicas utilizadas para mitigar los riesgos en los proyectos de desarrollo de software?
    3. ¿Qué desarrollo iterativo aporta al proyecto?
    4. ¿Por qué las tareas, como la refactorización, que no ofrecen funciones visibles de inmediato son a menudo mucho más importantes que el envío de otra característica?
    5. ¿Por qué está bien ir de un lado a otro, en lugar de avanzar hacia una meta?
    6. ¿Por qué "resolver este error lo antes posible" / "entregar esta función lo antes posible" es una locura en prácticamente todas las situaciones?
    7. ¿Cuál es la diferencia entre un prototipo y un código de producción sólido?
    8. etc.
  • ¿Cuáles son los puntos que deberían estar enfocados desde el principio? Si bien un equipo de desarrolladores con experiencia mínima no se olvidará de realizar pruebas unitarias o refactorización regular, puede que estén demasiado centrados en su propio trabajo.

    A veces, se olvidan de UX, seguridad, implementación o documentación del usuario final , simplemente porque no es su trabajo y cuando el producto parece inutilizable, inseguro, una pesadilla para los administradores de sistemas o carece de información básica. documentación, a menudo es demasiado tarde.

    Pertenece al gerente para determinar todas las tareas necesarias para un proyecto exitoso y para encontrar los recursos necesarios para su realización. Tener un montón de programadores no es suficiente.

Segundo caso: un intermediario entre TI y el mundo no técnico

Si, por el contrario, su tarea es garantizar buenas relaciones entre las cuestiones técnicas y las partes interesadas no técnicas, entonces una persona que estudió administración, pero que solo tiene una comprensión ligera de las cuestiones técnicas puede estar bien.

Incluso entonces, trate de elegir a una persona que entienda la especificidad del desarrollo de software y que ya tenga experiencia profesional en varios fracasos de proyectos: sería un desastre contratar a alguien que trataría a los desarrolladores como "los tipos que juegan con las computadoras". y nunca son capaces de hacer las cosas ".

Consideremos los puntos que incluyó en su edición:

  

Crear tareas para desarrolladores

¿Qué significa eso? ¿Te refieres a las historias de usuario? Como es, no hay forma de responder sin saber cómo se crean esas tareas en su equipo.

  

Controlar que se respeta nuestro flujo de trabajo de tickets

Si no lo es, ¿qué pasaría?

  • La buena respuesta es: "La retrospectiva se utilizará para identificar lo que salió mal, para resolver los problemas anteriores y ajustar los horarios a la velocidad del equipo". Esto requiere conocimientos técnicos.

  • La mala respuesta es: "El gerente del proyecto gritaría a los miembros del equipo y les dirá que comienzan a programar más rápido o que alguien entre ellos será despedido". Esto no requiere ninguna habilidad específica.

  

Advertir a los desarrolladores es que cruzan el tiempo estimado de trabajo

Ver los puntos anteriores.

  

Gestionar hojas de horas semanales de financiación

No se requieren habilidades relacionadas con TI aquí. Pero el administrador debe ser consciente de la especificidad del desarrollo de software, incluido el hecho de que a menudo es imposible predecir cuánto costaría implementar una característica.

  

Ayuda al cliente y responde a sus preguntas

Preguntas como "¿Cuándo tenemos nuestra próxima reunión?" no requieren conocimientos técnicos. Preguntas como "¿Es posible seguir utilizando el mecanismo de sincronización del que hablamos la semana pasada en un contexto de pérdida frecuente de conexión?" Requiere comprender el funcionamiento interno del proyecto.

  

Establecer reuniones entre el cliente y los desarrolladores (reuniones por Internet)

No se necesitan habilidades técnicas aquí.

    
respondido por el Arseni Mourzenko 26.01.2014 - 21:11
2

TL; DR: Solución alternativa - Girar líder de proyecto

En mi trabajo, rotamos el liderazgo del proyecto a medida que surge cada proyecto. Los proyectos son cualquier tipo de trabajo necesario para llegar a la próxima versión, no están vinculados al código base real. El líder es responsable de toda la diligencia debida requerida para que el proyecto sea un éxito. No desarrollado con éxito, pero lanzado con éxito y desplegado. Esto significa que el líder tiene que colaborar con las operaciones, los clientes, otras partes interesadas y los programadores.

¿Por qué hacer esto? He encontrado que esto tiene algunos beneficios. Para un ingeniero principal:

  • una vez que se comprende bien el problema del negocio, son capaces de desglosar fácilmente las tareas necesarias para completar el proyecto
  • a menudo pueden proporcionar alternativas que son más baratas de desarrollar, pero que satisfacen la necesidad comercial
  • tienen una mayor probabilidad de saber dónde se encuentra el mayor riesgo (al menos en el desarrollo)
  • hay menos posibilidades de malentendidos entre el equipo de desarrollo, e incluso entre el equipo técnico más grande
  • para proyectos en los que no existe una dependencia o desarrollo conjunto entre equipos, los proyectos a menudo se pueden iniciar antes y completar más rápido.
  • la familiaridad con el código base permite una planificación y desarrollo más precisos, y comprender qué cosas pueden costar una cantidad significativa de tiempo que luego puede comunicarse al cliente

No puedo enfatizar la importancia de algunos de los puntos anteriores para los diversos negocios en los que trabajé en el pasado que siguieron a este modelo.

Esto impone requisitos especiales a las personas que pueden convertirse en líderes de proyectos.

  • Necesitan poder ver una imagen más grande y poder cambiar entre la micro y la macro.
  • Deben poder comunicarse con los clientes y otras personas no técnicas.
  • Necesitan trabajar bien con los demás.
  • Necesitan entender cómo desglosar un proyecto para poder completar otro trabajo en él
  • Deben pensar en lo que se requiere para la implementación y la ejecución del software.
  • Necesitan trabajar con quienquiera que esté ejecutando el software y colaborar con ellos durante toda la vida del proyecto.
respondido por el dietbuddha 27.01.2014 - 07:05
1

Un buen gerente de proyecto se centrará en el producto que está fabricando, que cumple con los requisitos y brindará orientación sobre cuáles serán esos requisitos. Él también proporcionará organización al equipo para que funcione de manera productiva en lo que importa.

¿Necesitas un chico así? Si es así, es más probable que un chico orientado a los negocios esté acostumbrado a este tipo de rol.

Un programador senior puede no tener suficiente experiencia o habilidad para gestionar clientes, sus requisitos u organizar el equipo.

    
respondido por el gbjbaanb 27.01.2014 - 13:58
0

Esta pregunta se basa principalmente en la opinión y la siguiente es solo mi opinión.

  

¿Encontraremos un programador senior de nuestro campo de programación? ¿O debemos encontrar un tipo regular (estudios de economía o administración) que nunca haya codificado en su vida?

Es un poco alarmante que no haya incluido en la lista la experiencia previa en gestión de proyectos como su primer requisito, y que necesita un administrador de proyectos con experiencia en la gestión de proyectos de software.

¿Qué pasaría si un gerente de proyecto dijera "Necesitamos contratar a un programador, pero nuestros proyectos siempre llegan tarde? Para resolver ese problema, contrataré a un gerente de proyecto que sepa algo sobre programación como nuestro nuevo programador". / p>

Contrate un administrador de proyectos que se especialice en administrar proyectos de software. No contrate a alguien que vea la gestión de proyectos como un paso temporal en su carrera.

Create tasks for developers
Monitor that our ticket workflow is respected
Warn developers is they cross estimated work time
Manage weekly finance timesheets
Help client and reply to his questions
Set meetings between client and developers (internet meetings)

Hay dos maneras de manejar esto. Haga que los desarrolladores de software le digan al jefe de proyecto cuál es su trabajo, o contrate a un gerente de proyecto que le diga a los desarrolladores de software cuál es su trabajo.

Un gerente con conocimientos técnicos ganará rápidamente el respeto de los demás miembros del equipo, pero dicho esto. Un gerente no técnico que sabe cómo gestionar un equipo puede ganarse el respeto del propietario de la empresa.

Todo depende de quién es el responsable del proyecto también.

Las grandes empresas corporativas a menudo pueden darse el lujo de contratar gerentes de proyectos que son altamente técnicos y trabajan en estrecha colaboración con los equipos de software. Las compañías más pequeñas están más enfocadas en el resultado final y necesitan que los gerentes de proyectos administren los costos primero. Problemas técnicos es la razón por la que contrataron a los técnicos.

    
respondido por el cgTag 27.01.2014 - 15:34

Lea otras preguntas en las etiquetas