¿Cuántas horas hombre se necesitarían para escribir un servidor de aplicaciones J2EE?

Creo que tomaría un tiempo estimar el costo en horas de construir un servidor de aplicaciones Java completo (compatible con “Java EE 7”). Sin embargo, es mucho más razonable estimar el costo de construir la parte del contenedor web de ese, similar a Tomcat.

Te voy a dar dos respuestas diferentes. Uno está utilizando cualquier cantidad de bibliotecas de código abierto que ya existan para cubrir varias partes de las API y la funcionalidad necesarias en ese contenedor web. El segundo es construir todo desde cero, de modo que no haya dependencias externas.

Entonces, con un buen equipo de desarrollo de 7 ingenieros cuidadosamente seleccionados, calculo que podríamos entregar un contenedor web funcional (y compatible) con implementación y administración RESTful básica en 4 meses, aprovechando varias bibliotecas OSS (muchas de las mismas aprovechadas en por ejemplo, Tomcat). Eso es aproximadamente 4 años hombre (pero supongo que estamos presionando y trabajando 60 horas semanales).

Sin esas prácticas bibliotecas de código abierto para hacer todo eso, la imagen sería bastante diferente. Tenga en cuenta que una biblioteca, por su naturaleza, tiende a ser demasiado para cualquier caso de uso puntual. Lo que eso significa es que una biblioteca podría haber tardado 10 años en crearse, y tener otros 10 años de mantenimiento y mejoras, pero solo podría ahorrarle 3 meses en términos de implementación. Por lo tanto, mi estimación (con el mismo equipo) es que un servidor funcionalmente similar tardaría aproximadamente 3 veces el tiempo transcurrido para construir, pero probablemente tardaría más en madurar (por ejemplo, falta de código y cobertura de ruta de un POV de prueba, falta de endurecimiento de batalla uso de componentes “en la naturaleza”). Entonces, en lugar de 4 meses, estimaría 12 meses, que corresponden a aproximadamente 10 años hombre (supongo que un número promedio de horas por semana más bajo para un proyecto más largo).

Por último, mis suposiciones fueron con un equipo de ingenieros cuidadosamente seleccionados que podrían construir cualquier producto que les pueda ofrecer. No podrá encontrar un equipo así, y sugeriría que las estimaciones tenderán a crecer exponencialmente a medida que la calidad del equipo se degrade. Tomcat, por ejemplo, ahora tiene muchos cientos de años-hombre, pero originalmente fue construido (en gran parte) por un ingeniero (James Duncan Davidson en Sun).

En aras de la divulgación completa, trabajo en Oracle. Las opiniones y opiniones expresadas en esta publicación son mías y no reflejan necesariamente las opiniones u opiniones de mi empleador.

Odio buscar la respuesta de evasión, pero sí, realmente depende de la experiencia de quien lo haga. Si está hablando de alguien que está íntimamente familiarizado con la especificación y posiblemente ha contribuido a un esfuerzo anterior, podría ser un orden de magnitud más rápido que un desarrollador igualmente calificado que aborde el mismo problema. ¿Es esto completamente desde cero? ¿Cuántos componentes vas a permitir que se usen?

No creo que Shiva lo compare con el tiempo de desarrollo de JBoss o Tomcat es justo, ya que evolucionaron con el tiempo, junto con la especificación. Si toma una instantánea de la especificación e intenta implementarla, es un objetivo estático que tomaría mucho menos tiempo.

Aprecio el A2A, pero tengo poco tiempo para responder esto a fondo, por lo que puede esperar un reembolso de crédito en breve.