vitae recursos laboral jefe humanos experiencia ejemplo curriculum metrics

metrics - recursos - Número de líneas de código en la vida



ejemplo de curriculum vitae de jefe de recursos humanos (15)

Una de las compañías le solicitó a su futuro empleado que le proporcione la cantidad de líneas de código escritas en tiempo de vida en un determinado lenguaje de programación como Java o C #. Dado que la mayoría de nosotros tenemos varios años de experiencia en diferentes proyectos en varios idiomas y apenas guardamos un registro de esto, ¿cuál sería el mejor enfoque para calcular estas métricas? Estoy seguro de que los miembros inteligentes de stackoverlow.com tendrán algunas ideas.

Esta es una compañía muy respetada en su dominio y estoy seguro de que tienen una muy buena razón para hacer esta pregunta. Pero lo que también lo hace difícil de responder es el tipo de código a considerar. ¿Debería incluir solo el algoritmo difícil que implementé o cualquier código que escribí para, por ejemplo, un POJO que tenía 300 propiedades y cuyos getters / setters se generaron usando IDEs!


Básicamente hay tres formas de lidiar con solicitudes ridículas de métricas sin sentido.

  1. No responda, desafíe al que pregunta por sus razones y explique por qué esas razones son tontas.

  2. Dedique tiempo a reunir toda la información que pueda y calcule la respuesta lo mejor que pueda.

  3. Hacer una respuesta plausible y seguir adelante con la menor participación emocional posible en la estupidez que sea posible.

Las primeras respuestas que veo parecen estar tomando la primera línea. Piense si todavía desea el trabajo a pesar de la estupidez de sus demandas. Si la respuesta es Sí, evite el número 1.

El segundo método implicaría buscar en los viejos repositorios de código de proyectos antiguos.

En este caso, iría con la tercera vía.

Multiplique la cantidad de años que ha trabajado en un idioma por 200 días laborales por año, por 20 líneas de código por día, y úselo.

Si reclama más de un idioma por año, distribúyalo entre ellos.

Si ha estado trabajando más en análisis, diseño o administración, deje caer la cifra por tres cuartos.

Si ha estado trabajando en un ambiente de ceremonia alta (defensa, medicina), suelte la figura en un orden de magnitud.

Si ha estado trabajando en un ambiente con una ceremonia particularmente baja, increméntelo en un orden de magnitud.

Entonces deja atrás la estupidez y sigue con tu vida lo más rápido posible


Dependiendo de lo que hagan con la respuesta, no creo que sea una mala pregunta. Por ejemplo, si un candidato pone JavaScript en su hoja de vida, quiero saber cuánto JavaScript han escrito realmente. Puedo pedir, por ejemplo, la cantidad de líneas en el proyecto JavaScript más grande que han escrito. Pero solo estoy buscando una sensación de escala, no un número real. ¿Son 10, 100, 1000 o 10,000 líneas?

Cuando pregunte, dejaré en claro que solo estoy buscando un número crudo para medir el tamaño del proyecto. Espero que el empleador en el caso del interrogador sea el mismo.


Echa un vistazo a ohloh . El sitio muestra métricas de proyectos de código abierto.

El sitio estima que 107.187 líneas de código corresponden a un esfuerzo de 27 años persona (4000 líneas de código por año).

Un ejemplo de la tontería de tal métrica es que el número proviene de un proyecto que he estado jugando con el trabajo externo durante 2 años.


Es una medida interesante para pedir, ya que puede escribir muchas líneas de código incorrecto en lugar de escribir solo algunas de ellas.

Solo puedo suponer que están considerando más líneas para ser mejores que menos. Sería mejor no planear nada y simplemente comenzar a escribir código. Esa sería una excelente manera de escribir más líneas de código, ya que al menos si hago eso, generalmente termino escribiendo todo al menos dos veces.


Inteligente de desbordamientos de pila generalmente evitaría la organización que hace este tipo de preguntas. A menos que la respuesta correcta sea "huh, wtf"


"Esta es una empresa muy respetada en su dominio y estoy seguro de que tienen una muy buena razón para hacer esta pregunta"

Y estoy muy seguro de que no, porque "ser respetado" no significa "hacer todo bien", porque esto ciertamente no es correcto, o si lo es, entonces es al menos tonto en mi opinión.

¿Qué cuenta como "Líneas de código"? Estimo que he escrito alrededor de 250,000 líneas de código C #, posiblemente mucho más. ¿El problema? El 95% era código desechable, y no todo era para aprender. Todavía me encuentro escribiendo un pequeño programa de 3 líneas por décima vez, simplemente porque es más fácil escribir esas tres líneas nuevamente (y cambiar un parámetro) que ir a buscar las existentes.

Además, las líneas de código no significan nada . Así que tengo dos tipos, uno ha escrito un 20% más de Líneas que el otro, pero ese 20% más eran líneas complicadas innecesarias, "desenrollar el bucle" y cosas inútiles que podrían haber sido refactorizadas.

Lo siento, compañía respetada o no: pedir líneas de código es una señal segura de que no tienen ni idea de medir la eficiencia de sus programadores, lo que significa que tienen que confiar en las técnicas de la edad de piedra, como la medición de las LoC que son tan precisas como calendarios en la edad de piedra. Lo que significa que es posiblemente un buen lugar para trabajar si le gusta relajarse y aumentar sus Números de vez en cuando.

Bueno, eso fue más una farsa que una respuesta, pero realmente no veo ninguna razón válida para este número en absoluto.


¿Por qué molestarse en calcular esta métrica sin una buena razón? Y alguna compañía aleatoria que pida la métrica realmente no es una buena razón.

Si la pregunta de la compañía es realmente seria, y piensas que la entrevista podría llevar a algo interesante, entonces escogería un número aleatorio para ver a dónde lleva eso :-)


Ha, me recuerda cuando asumí un marco de prueba basado en C, que comenzó como 20K + líneas que terminé colapsando en 1K LOC al factorizar a una subrutina en lugar de las 20K líneas de código diarrea originalmente escritas por el autor original. Desafortunadamente, recibí una palmada más fuerte por cualquier error en el código ya que el KLOC escrito en realidad se volvió negativo ... Pensaría largo y tendido sobre la reducción de la base de código en una organización impulsada por métricas ...


Incluso si estoy de acuerdo con la mayoría al decir que esta no es una métrica realmente buena, si es una compilación seria, como dices, pueden tener sus razones para preguntar esto. Esto es lo que probablemente haría:

Toma uno de tu proyecto existente, obtén el número de líneas y divídelo para cuando lo hayas codificado. Esto le dará una especie de métrica de líneas por hora. Luego, trate de calcular la cantidad de tiempo que ha trabajado con ese idioma específico y multiplíquelo con su métrica ya calculada. Honestamente, no creo que sea una gran manera ... pero honestamente, esta tampoco es una gran pregunta. También le diría a la compañía la estrategia con la que solía encontrar este número ... tal vez, QUIZÁ, esto es lo que ellos quieren ... conocer tu opinión sobre esta pregunta y cómo la responderías? :pag

O solo quieren saber si tienes algunas experiencias ... así que adivina un número impresionante y escríbelo: D


La mejor respuesta a dicha pregunta es una de las siguientes:

  • Por qué quieres saber?
  • ¿Qué significado le atribuirías a tal número?
  • ¿Está bien si me acabo de levantar y me voy ahora mismo?

Yo cuestionaría seriamente los motivos detrás de cualquier persona que haga una pregunta de empleados actuales o potenciales. Es muy probable que sea el mismo tipo de empresa que comenzaría a hacer revisiones de código centrándose en la cantidad de líneas de código que escriba.

Ahora, si argumentan que la cantidad de líneas de código es una medida de la experiencia de un programador, entonces definitivamente dejaría la entrevista en ese momento.

Se pueden encontrar soluciones simples para problemas complejos, y generalmente son mejores que simplemente arrojar suficientes líneas de código al problema y se resolverá solo . Dado que el número de errores produjo escalas lineales y superiores con el número de declaraciones, diría que lo inverso es probablemente mejor, combinado con la cantidad de problemas que han abordado.

Como respuesta de prueba, preguntaría esto:

Si en un programa puedo resolver el problema A, B y C en 1000 líneas de código, y otro programador resuelve los mismos problemas en 500 líneas de código, cuál de nosotros es el mejor (y la respuesta sería: información insuficiente) juzgar)

Ahora, si aún desea estimar el número de líneas, simplemente comenzaría a pensar en los proyectos que la persona ha escrito, y compararía su tamaño con una cantidad conocida. Por ejemplo, tengo una biblioteca de clases que actualmente abarca alrededor de 130K líneas de código, y he escrito cosas similares en Delphi y otros idiomas, además de algunos proyectos de aplicaciones considerables, por lo que calculo que tengo una buena cantidad de 10 millones de líneas de código. por mi cuenta al menos. ¿El número es significativo? En lo mas minimo.


Si fuera realmente honesto, diría que no lo sabe porque nunca lo ha visto como una medida válida. Si el entrevistador es una persona razonable / racional, esta es la respuesta que está buscando.

La única otra opción para decir que no sabes es adivinar, y eso realmente no demuestra habilidades para resolver problemas.


Y nadie ha citado aún la historia de Bill Atkinson -2000 líneas ...

En mi viernes por la tarde (bueno, alrededor de un viernes por mes) ejercicios de autodesarrollo en el trabajo durante el año pasado, pruebas, prototipos e infraestructura incluidos, probablemente he escrito alrededor de 5 kloc. Sin embargo, un proyecto tomó una aplicación existente de 25kloc C / C ++ y la reimplementó como 1100 líneas de Erlang, y otra tomó 15kloc de una biblioteca C existente y la convirtió en 1kloc de C ++, por lo que la red es muy negativa. Y la única razón por la que tengo esos números es porque estaba buscando ver qué tan negativo.


¿Parece que este es el cuestionario de DE Shaw?


Sé que esta es una publicación anterior, pero esto podría ser útil para alguien de todos modos ...

Recientemente pasé de una empresa en la que trabajé durante aproximadamente 9.5 años como desarrollador de Java. Todo nuestro código estaba en CVS, luego SVN, con Atlassian Fisheye que proporcionaba una vista de ello.

Cuando me fui, Fisheye estaba reportando mi LOC total y personal como + - 250,000. Aquí está la descripción de Fisheye de su métrica LOC , que incluye la discusión sobre cómo se calcula el LOC personal de cada usuario SVN. Tenga en cuenta los problemas con la bifurcación y la fusión en SVN, y que LOC normalmente solo debe basarse en TRUNK.


Esta parece ser una de esas preguntas como ''¿Cuántas pelotas de ping-pong podrías caber en un Boeing 747?'' En ese caso, el interlocutor quiere que demuestres tus habilidades para resolver problemas más que saber cuántas líneas de código has escrito en realidad. Tendría cuidado de no responder con ninguna crítica a la pregunta y, en cambio, tratar honestamente de resolver el problema; )