No hay un promedio para esto, ya que depende de varias cosas. Incluiré los que me vienen a la mente aquí, pero seguramente hay más:
1. Duración y frecuencia de las reuniones. Si los ingenieros pasan la mitad de su tiempo en reuniones, se escribe menos código
2. Qué tan buenas son las especificaciones dadas para un trabajo. He estado en situaciones en las que he pasado 2-3 horas trabajando con una persona de negocios para comprender el problema comercial que necesito resolver con este código en el que estoy trabajando. Además, lo que una persona de negocios cree que son buenas especificaciones podría no serlo, debido al nivel de detalle que necesitan los programadores de computadoras para traducir un requisito en un código correcto y funcional. (En resumen: pueden necesitar algo de tiempo para comprender lo que necesitan escribir)
3. Qué tan bien el ingeniero conoce la base del código / diseño general de la aplicación. (En resumen: necesitan saber dónde colocar el código que necesitan escribir)
4. En qué idioma se implementa el sistema. Los lenguajes de bajo nivel como C ++ generalmente requieren más líneas de código para realizar un trabajo, y los lenguajes de alto nivel (como Ruby, Perl y Python) generalmente pueden agrupar mucho trabajo en uno o dos lineas. (En resumen: los juegos de baloncesto toman menos tiempo que los juegos de golf, y dependiendo de dónde aparezcas, el club de campo o la Y, probablemente necesites jugar el juego que se ofrece).
5. Si el trabajo del ingeniero es una nueva funcionalidad agregada al sistema, o errores (funcionalidad no explicada o no deseada en la aplicación). Si se trata de un error, un ingeniero podría pasar horas, o días, descubriendo que necesitan agregar o eliminar una sola línea de código … o incluso un solo carácter del código fuente).
6. Entorno: ¿el programador es un lugar tranquilo donde pueden pensar y hacer su trabajo, o la gente está constantemente molestando a “esas personas de TI” para arreglar su impresora o el último juego de chismes / deportes de la oficina?
7. Estado del código: si el cambio solicitado afecta a un sistema clave, el programador puede pasar un poco de tiempo escribiendo y mucho tiempo probando su cambio para asegurarse de que nada se rompió. Si es difícil ejecutar este código por cualquier razón (estado interno del código, el proyecto está a la vanguardia de un hardware de vanguardia, o la base de código es simplemente grande ), puede tomar algún tiempo iniciar la aplicación para probar el cambio. Sin embargo, si la base del código es limpia, la funcionalidad del producto puede crecer a un ritmo más rápido que las líneas de código totales en el producto.
Supongo que las startups pequeñas tendrían una mayor proporción de líneas de código escritas que Google, incluso teniendo en cuenta estas cosas, porque se requiere menos coordinación Y todo lo que Google (o Facebook) necesita para manejar mil millones de usuarios, pero las startups pequeñas (I ¿Nunca he oído hablar de Palantir?) puede tener bases de usuarios que miden entre 10,000 o 100,000, sí, pero ¿lo suficientemente grande para que la escala realmente se convierta en un problema? Realmente no.
- ¿Cómo puede un ingeniero informático trabajar en sistemas embebidos?
- ¿Debería un estudiante terminar la universidad o ir a trabajar para una startup si se le da la oportunidad de trabajar para un ex alumno de YC, TechStars?
- ¿Qué examen deberías escribir para un trabajo de ingeniería en el Ejército?
- ¿Los prisioneros de entrenamiento militar los convertirían en grandes soldados y funcionaría?
- ¿Cuál es la mejor opción de carrera entre Java y Datawarehouse / Haddop / Big data?
A los programadores casi siempre se les pide que construyan cosas que nunca han construido antes, potencialmente con reglas comerciales que aún no entienden, y / o en entornos interesantes / únicos. Estos factores externos afectan la cantidad de líneas de código que puede escribir un desarrollador, y los factores internos (familiaridad con la base del código, en qué idioma está escrito, el estado del código) también afectan la salida de un ingeniero.
Ejemplo: uno de los proyectos en los que creo que hice uno de mis mejores trabajos fue un proyecto de 7 ingenieros y 18 meses de Ruby on Rails. Aproximadamente un año después del proyecto, teníamos una base de código de aproximadamente 10,000 líneas. Esta es una base de código muy pequeña. ¿Por qué? Debido a que mejoramos constantemente el estado del código, utilizamos las mejores herramientas posibles y nuestro proyecto también requería mucha comprensión del dominio comercial de nuestro lado. Por lo tanto, podríamos escribir una aplicación muy compleja en relativamente poco código.
Nuestras “líneas de código promedio por ingeniero / mes” probablemente parecían horribles, pero esta historia ilustra por qué las métricas como “líneas de código promedio por programador” son pobres: muchos ingenieros ven las líneas de código como una carga de mantenimiento futura y se esforzarán por reducir Las líneas de código en sus respectivos proyectos. Es mejor colgar un cuadro en la pared con un clavo, que colgarlo con una docena.