El equivalente de Joel Test para medir un programador [cerrado]

70

Entiendo que para medir un proyecto o código, podemos usar The Joel Test , pero ¿hay alguna prueba estándar simple (como The Joel Test) que pueda medir y filtrar qué tan bueno es un programador?

Mi plan es tener esta prueba como filtro rápido primero antes de pasar a una prueba más detallada.

Rudy
fuente
2
Si se están utilizando pruebas como esta, creo que los programadores deberían saberlo. Pueden o no ser válidos como: Contratar el que tenga más modificaciones corporales.
JeffO
2
Interesante, cuando hice esta pregunta, fue rechazada al infierno (ahora positiva nuevamente, sí, y rápidamente se cerró). ¿Es realmente tan diferente a este? programmers.stackexchange.com/questions/133691/…
ripper234
8
@ ripper234, las razones por las que se cierra una pregunta en SE son un poco como esos errores de software intermitentes e inexplicables, un misterio realmente. Un poco como la naturaleza humana realmente.
tehnyit
8
El propio Joel ofrece una prueba simple pero rigurosa: inteligente y hace las cosas . : P
Dan J
FizzBuzz! ¡Seguramente!
CraigTP

Respuestas:

67

Existe la matriz de competencias del programador .

Al igual que con la prueba de Joel, es solo una guía vaga. La única forma de evaluar adecuadamente a un programador es preguntar a los buenos programadores que han trabajado con ellos.

Tom Squires
fuente
27
Entonces, el único problema que queda es evaluar si los compañeros de equipo pasados ​​/ actuales del tipo son buenos ... Vaya.
Péter Török
21
Sí, es recursivo :)
Tom Squires
13
Eso no es nada como la prueba de Joel. Su respuesta apunta a una enorme matriz detallada, la prueba de Joel es una serie de 12 preguntas muy simples para responder.
Bryan Oakley
2
@BryanOakley - eso es cierto, pero el PCM es también la primera cosa que pensé cuando la lectura de la pregunta. El resultado: ¡no hay preguntas simples que puedas responder para medir a un programador!
Joris Timmermans
2
El punto de matriz @BryanOakley que es más complejo que la serie está bien tomado; para mí, una analogía más cercana a la prueba de Joel sería una serie hecha de elementos de columna de Nivel 1 en PCM - "explica y usa matrices ..., clasificación básica ... etc"
mosquito
25

Daría la vuelta a la prueba de Joel:

¿Han usado el control de fuente?

¿Saben cómo automatizar una compilación de un solo paso?

...

El único que no parece particularmente aplicable es la pregunta de tener probadores. Los otros que parecen un poco desagradables se vuelven así: cómo lo manejamos, cómo lo manejó en el pasado. (Así es como manejamos mantener nuestro horario actualizado, ¿cómo manejó la programación en el pasado?) .

editar:

Básicamente, no obtienes las cosas en la prueba de Joel de forma gratuita, tienes que contratar personas que puedan hacer que suceda. Desea establecer su capacidad para que eso suceda.

metal de piedra
fuente
1
Todas las preguntas de Joel son más sobre el medio ambiente que el programador. Si mi equipo no usa el control del código fuente, entonces no integrarme con ellos usando mi propio control del código fuente no es una mejora. Hacer que el equipo use el control del código fuente es una mejora.
Edwin Buck
15

La prueba de Joel es solo una verificación informal de referencia para juzgar rápidamente si un lugar tiene buenas condiciones de trabajo para los programadores. Incluso si obtiene un puntaje perfecto de 10, aún puede ser un infierno que va a la quiebra seis meses más adelante. Un puntaje bajo es una indicación de que algo no está del todo bien y es una excelente pregunta para la entrevista ("Actualmente no está utilizando el control de fuente; ¿hay algún plan para hacerlo en el futuro?"), Y las respuestas podrían ser tales que aceptarías el trabajo a pesar de un bajo puntaje de Joel.

La prueba de Joel tampoco es una prueba 'estándar'; es solo una lista de verificación que Joel Spolsky publicó en su blog.

En cuanto a "medir" la calidad de un programador va; desafortunadamente, las habilidades y cualidades realmente importantes de un buen programador son difíciles o imposibles de cuantificar, por lo que no hay reemplazo para una evaluación humana exhaustiva. Sin embargo, puede eliminar a los candidatos completamente desorientados con bastante facilidad, utilizando una tarea de programación muy simple, idealmente, algo que implique recursividad, estructuras de árbol o punteros (es poco probable que un programador que no los 'entienda' sea de mucha utilidad). Para aquellos que pasan esta prueba, tendrá que evaluar las habilidades manualmente: leer el código que escribieron, probar las aplicaciones que escribieron, darles más tareas de programación (tanto de diseño como de implementación), verlos trabajar, hablar con ellos, ver si puede provocar una discusión profesional. Si está buscando un especialista / gurú de idiomas,

tdammers
fuente
1
+1 Juzgar las habilidades de un buen programador es una tarea difícil de cuantificar.
Karthik Sreenivasan
20
("You're not currently using source control; are there any plans to do so in the future?"), and the answers might be such that you'd accept the job despite a low Joel score. Por cierto, estaría cometiendo un error al aceptar el trabajo. Finalmente, cada desarrollador aprende que eso Plans to do so in the futurees algo que los entrevistadores dicen para engañarlo, pero que nunca actúan debido a una gestión terrible. ¿Cuántas veces hemos escuchado algo al respecto Oh, we are moving towards Agile...y resulta ser otra tienda de cataratas con microgestión?
maple_shaft
@maple_shaft: sí, probablemente no sea un buen ejemplo ...
tdammers
55
Un 10 perfecto en la prueba de Joel en realidad sería 12 ... solo diciendo :)
MattDavey
3
@MattDavey: Eso depende de manera crítica de tus competencias para impulsar el cambio. Tuve una de esas experiencias cuando estuve en el negocio durante dos años (sí, nos trasladaremos a C ++) y obtuve el resultado esperado. Hoy en día, sería un asunto diferente. Yo puedo averiguar si se trata de un deseo sincero, pero la incapacidad de cambiar, y luego hacerlo posible.
MSalters
12

Sí:

¿Programa en su tiempo libre?

En toda mi experiencia, esta sola pregunta es más indicativa de lo bueno que es un programador. Si lo disfrutan; si les apasiona hacer la tarea, entonces serán buenos en eso.

Y, francamente, muchos trabajos de 9 a 5 no implican mucha codificación . No implican muchas iteraciones a través del ciclo de vida del diseño de nuevos programas y ver cómo funciona / falla ese diseño. Sin esa iteración, simplemente no existe la práctica necesaria para que los programadores obtengan habilidades básicas de diseño de programas.

Y no implican mucho aprendizaje. Los programadores que incluso simplemente piratean cosas en casa explorarán soluciones nuevas e interesantes sin las limitaciones de las grandes empresas.

Telastyn
fuente
2
¿Por qué esto tiene solo un voto? En mi opinión, esta es la verdadera distinción entre equipos mediocres y aquellos que son realmente innovadores.
Repo Man
0

Eh, tengo reparo con la redacción al comienzo. No es "¿has usado X" o "¿Conoces Y?", Es una cuestión de usar y hacer realmente. Cualquier programador que no haya tocado o escuchado sobre los elementos de la prueba de Joel simplemente se desconecta y necesita obtener una pista. Pero tienes razón, las tiendas de códigos fallan la prueba de Joel porque las personas en las tiendas dejan que falle. La única defensa que puedo ver corre en la línea de "Lo intenté, pero no tenía la autoridad. Y ahora estoy aplicando aquí".

Philip
fuente
0

¿Usas control de fuente?

Sí, pero

  • Realmente no te dice nada.
  • ¿Cómo sabes si reenvío la fusión?
  • ¿Cómo sabes si hago cambios antes de presionar?
  • ¿Cómo sabes si construyo antes de comprometerme con el repositorio?

¿Se puede hacer una acumulación en un solo paso?

  • Sí, nuestro líder de CI escribe scripts y simplemente los ejecuto en powershell.

Haces contrucciones todos los dias.

  • Nuestro servidor CI hace

¿Tienes una base de datos de errores?

Sí, pero no lo configuré y no lo administro, simplemente lo uso.

¿Tú arreglas los errores antes de escribir un nuevo código?

  • En un mundo perfecto donde tengo recursos ilimitados, sí, lo tengo. En el mundo real a veces me veo obligado a registrarlos y trabajar en otra cosa.

¿Tiene un horario actualizado?

No, ese no es mi trabajo.

¿Tienes una especificación?

Me dan una especificación, luego la analizo y produzco documentos relevantes.

¿Los programadores tienen condiciones de trabajo tranquilas?

  • ¿No me contratarán si escucho música, hablo con mi colega y hago una broma? Se supone que el desarrollo de software es creativo: las condiciones de trabajo varían de una organización a otra.

Utilizas las mejores herramientas que el dinero puede comprar?

No sabes cuáles son las mejores herramientas y si crees que sí, siempre habrá alguien para discutir tu punto.

¿Tienes probadores?

Si. En realidad, sí y no son muy buenos, pero eso no estaba en la pregunta.

¿Los nuevos candidatos escriben código durante su entrevista?

Sí y fallan. Sí y pasan. ¿Qué te dice esto?

¿Haces pruebas de usabilidad en el pasillo?

No, pero ¿y si hacemos algo mejor?

Para concluir:

  • Esta prueba podría funcionar bien en un mundo académico perfecto donde todo funciona, todos se llevan bien, comparten conocimientos y hay recursos ilimitados.
  • Lo que quieres saber es qué tipo de ingeniero soy. Las respuestas simples a nivel de bit no te dirán nada útil y creo que alguien tiene que ser muy ingenuo para enamorarse de ellas.
  • Las respuestas anteriores, tanto negativas como positivas, no le dicen nada sobre mi capacidad para producir código limpio.

Esto no es una queja, pero me interesaría saber qué tipo de desarrollador crees que estoy basado en las respuestas que he proporcionado. Con suerte, esto probará mi punto.

CodeART
fuente
8
Realmente no entiendo el punto de esto. Estas preguntas son sobre el equipo / empresa, no sobre el programador individual. Y el OP no sugirió usar las mismas preguntas para evaluar al programador, solo quiere un conjunto de preguntas simples.
CodesInChaos
1
Creo que soy tan bueno como mi equipo o la empresa para la que trabajamos. En mi opinión, pruebas como esta hacen mucho escándalo, pero en realidad no te dicen nada útil sobre la compañía o el desarrollador.
CodeART
3
How do you know whether I pull changes before pushing? Bueno, no sé qué control de origen está usando, pero al menos en SVN, si intenta confirmar en una carpeta con cambios que aún no tiene, la confirmación fallará hasta que ejecute la actualización.
Mason Wheeler
Estamos usando TFS :) Realmente necesito tener en mis manos otros sistemas de control de versiones.
CodeART
Así que la gente realmente usa TFS. Aprendí algo
Fabinout