¿Cómo sabe cuántos programadores necesita un proyecto en particular para tener éxito?
La empresa para la que trabajo cumple con los pedidos de las empresas clientes. Hemos redactado un sistema interno de gestión de almacenes que maneja la gestión de inventario basada en la ubicación, el procesamiento de pedidos, la generación de conocimiento de embarque, la facturación, la auditoría de carga y los informes (probablemente 50 informes). También tiene funciones de escaneo de código de barras y un portal de cliente junto con docenas de otras características más pequeñas. También incluye un reloj de tiempo completo para empleados. Se integra con Quickbooks, UPS y FedEx. Maneja el trabajo de al menos 50 clientes, todos difieren ligeramente en su funcionalidad. Por ejemplo, importamos pedidos de archivos que envían los clientes pero cada cliente envía un formato de archivo diferente (csv, excel, archivo plano y servicios web), por lo que tenemos más de una docena de configuraciones de métodos de conversión de pedidos. Las exportaciones son la misma historia.
El proyecto es complejo y crece en complejidad todos los días con más de un cuarto de millón de líneas de código. Son alrededor de 250,000 líneas de código VB.NET, 6,200 líneas de código Ruby y quizás 5,000 líneas de PHP. También tiene una base de datos MySQL con aproximadamente 200 tablas.
Debido a los requisitos en constante cambio y las diferentes necesidades de docenas de clientes, el código en sí mismo varía enormemente en la calidad de código extremadamente pobre a relativamente bueno.
Actualmente, este proyecto tiene un solo programador: yo mismo. Actualmente también hago todo el soporte de productos para nuestra empresa de aproximadamente 75 personas. Eso incluye la resolución de problemas y la configuración de nuevos clientes y cualquier característica nueva que sea necesaria. Además, estamos tratando de reescribir todo para que sea 100% basado en Ruby on Rails. Y nos gustaría comercializar todo el sistema dentro del próximo año para ser utilizado por otras compañías.
Actualmente, solo tenemos a mí mismo como programador, pero no creo que sea suficiente. ¿Alguien tiene alguna recomendación sobre cuántos programadores debería tener un proyecto de esta magnitud o cómo deberíamos determinar la respuesta a esa pregunta? Particularmente dado el hecho de que a la gerencia le gustaría que el producto sea de calidad comercial para el próximo año?
fuente
Respuestas:
Yo diría que al menos 5 personas. Uno para prueba, uno para especificaciones, soporte y documentación y 3devs. Hay muchas cosas que probar en su caso, por lo que un probador dedicado al 50% no debería ser irrazonable. Debe haber una persona que escriba los requisitos y tenga asistencia al cliente para configurar su infraestructura para pruebas, etc. Creo que tres desarrolladores son bastante bajos para un proyecto como este. Un gran back-end integrado a muchos sistemas de terceros, y un frente completo con extremadamente muchos informes personalizados. Me gustaría tener.
Qué sucede si te vas, te enfermas, te tomas vacaciones, etc. Una persona por proyecto nunca es inteligente. Tampoco es bueno estar solo, ya que no evolucionas profesionalmente sin compañeros de trabajo. Trabajo a menudo solo, estableciendo nuevas arquitecturas, etc., a menudo en equipos de 5 desarrolladores, pero nunca evoluciono tanto como cuando le digo a un compañero de trabajo que arreglemos esto juntos y nos encerramos una semana hablando, discutiendo y elegir marcos. La programación de pares es extremadamente generosa y no se puede hacer con un solo desarrollador, y ¿quién hará las revisiones de código si no está seguro? Si te quedas atascado, ¿quién te ayudará? Solo emprendería un proyecto de una persona si fuera parte de un alcance más amplio y pudiera obtener recursos de expertos si fuera necesario.
fuente
¡Bienvenido al mundo de los recursos muchas veces difícil !
El problema no es uno de Tamaño del proyecto vs Tamaño del equipo. Esa es una idea errónea muy común que a menudo oculta otros problemas que generalmente están relacionados con la administración. El problema tiene que ver con el alcance . Debe decidir qué es lo que puede lograr con sus recursos actuales, también conocido como usted. Luego, debe decidir si su capacidad para manejar la carga de trabajo es suficiente para manejar la tarea dentro de los plazos que le han sido asignados. Por lo tanto, sus necesidades de proyecto deben ser identificadas y definidas.
Cuando tenga una idea del alcance de sus requisitos, puede determinar más fácilmente la carga de trabajo requerida para lograr un resultado dentro de un cierto período de tiempo. Si es probable que se sobreutilicen sus recursos, necesitará más personal. Si es probable que sus recursos estén infrautilizados, entonces puede encontrarse con que puede acercar su fecha límite o aumentar el alcance de su proyecto.
Si su instinto le dice que no tiene suficiente personal para administrar el proyecto, puede estar en lo correcto, pero debe comprender por qué es que su instinto le está diciendo esto. No es suficiente simplemente tener un sentimiento. En cambio, debe ser capaz de examinar el problema científicamente para proporcionar pruebas que respalden sus instintos, y debe estar preparado para enfrentar la posibilidad de que sus instintos puedan incluso estar equivocados. Una vez que haya reunido su evidencia, es decir: delimitó el proyecto, entonces realmente necesita sentarse con su gerencia y presentar un argumento para reducir el alcance del proyecto o aumentar los recursos disponibles para garantizar el éxito del proyecto. en la evidencia a la mano.
fuente
El éxito del producto / proyecto dependerá del compromiso de la empresa que lo pague. Si van a contratar más programadores / personal de apoyo, habrá una disminución inherente de la productividad del único programador, que sabe que tiene que entrenar, enseñar, administrar, etc., no es que sea algo malo ... pero habrá ser una disminución antes de que se produzca cualquier aumento ... también existe la necesidad de analistas de negocios, gerentes, ventas y el soporte del producto una vez que esté disponible comercialmente.
Alojar una aplicación comercial es mucho más que simplemente crear una plataforma sólida. Hay requisitos de soporte, soporte técnico, corrección de errores, capacitación de usuarios, etc.
¿Cuenta con algún buen procedimiento de análisis / especificación / estimación? si no, comience ahora , puede hacerlo usted mismo.
¿Estás trabajando tu cerebro ahora? Si es así, prepárese para trabajar el doble si se espera que administre este proceso y continúe desarrollándose (¿aumento debido?).
Y aquí está la respuesta de mi experiencia previa al estar en una situación similar en el área de precios del sur de California:
5-6 personas && ~ 500k
1 desarrollador principal / administrador de todos los sombreros (~ 100k - 120k)
2 programadores Sr. (muy capaces, autónomos) con buena comprensión de DB y habilidades (2x ~ 80 - 100k)
1 Project Manager para interactuar con la Administración ($$?) Esta persona también debe ser capaz de comprender las necesidades de la aplicación y comunicar esas necesidades directamente a los programadores
1? (HTML / UI) desarrollador? con habilidades de JavaScript (odio programar código UI / Markup)
1? Persona de la base de datos? sin embargo, la mayoría de los buenos programadores no tienen problemas para crear estructuras de datos escalables, sin embargo, si vas a tener problemas de optimización, al menos querrás tener un consultor
fuente
1 programador en una gran base de código con toda la responsabilidad de configurar, probar, comunicar, respaldar, documentar y corregir errores no tendrá mucho tiempo para escribir código nuevo o agregar funciones (o incluso refactorizar código antiguo).
Divida su semana por el porcentaje de estas tareas obligatorias que no expanden el negocio y se sorprenderá de lo rápido que la administración contrata ayuda adicional.
Los proyectos grandes tienen una cierta cantidad de sobrecarga asociada que no desaparecerá (especialmente si se implementa / prueba con nuevos clientes todo el tiempo como parece). Esta es la razón por la que tiene rotaciones de soporte y soporte en general; entonces algunos de los miembros del equipo tienen tiempo para trabajar en nuevas funciones.
Es posible que también desee consultar libros sobre estimación de software. Puede que estos libros no parezcan tener mucho que decir, pero contienen estudios de casos interesantes de una variedad de campos y respaldan sus afirmaciones con evidencia.
fuente