¿Deberían las compañías de software evitar a los programadores perfeccionistas?

Si realmente no quisieras programadores perfeccionistas, eliminarías a todos en el campo.

¿Qué es más perfeccionista que escribir código? Su código no funcionará si no coloca los punto y coma correctamente. Si arruinas la carcasa del camello, el compilador te grita. Olvídate de desasignar una variable y perderás memoria en todo el sistema.

Para bien o para mal, la ingeniería de software es un deporte para perfeccionistas.


Ahora para responder a tu pregunta real. Estoy de acuerdo en que a veces los programadores llevan el perfeccionismo demasiado lejos. Pueden obsesionarse con el diseño correcto durante semanas sin progresar. O he visto a personas debatir qué herramienta utilizar durante meses.

Lo que necesita es una mezcla de “personas que lo hacen” y “personas perfeccionistas”.

Haciéndolo

Estas personas se centran en escribir tanto código como sea humanamente posible en un corto período de tiempo. Desafortunadamente, dejan atrás montañas de deudas técnicas en forma de diseños descuidados, soluciones alternativas, soluciones extravagantes, etc.

Perfeccionistas

Estos programadores entran y limpian el desastre de la multitud Getting It Done. Diseñan las cosas correctamente, corrigen los errores desagradables y son excelentes para terminar ese último 10% que hace que un producto se pueda enviar.


Necesita ambos tipos en su organización. Si todo lo que tuvieras fueran programadores Getting It Done, tu código se volvería inmanejable porque estaría diseñado como basura. Si todo lo que tuvieras fuera gente perfeccionista, nunca obtendrías nuevos productos.

Tenga en cuenta que todos son una mezcla de los dos, pero la mayoría de las personas se inclinan más hacia un tipo u otro. Lo ideal sería una persona que lo haga, que también sea capaz de escribir un código bueno y bien diseñado, pero estos son extremadamente raros.


Si desea más detalles, escribí una publicación de blog sobre Los 2 tipos de ingeniero hace unos meses.

Crédito de la foto: OK Blue vía photopin (licencia)

De acuerdo con wikipedia:

El perfeccionismo, en psicología, es una creencia de que la perfección puede y debe alcanzarse. En su forma patológica, el perfeccionismo es una creencia de que el trabajo o la producción que es menos que perfecto es inaceptable. A tales niveles, esto se considera una creencia poco saludable, y los psicólogos generalmente se refieren a tales individuos como perfeccionistas desadaptativos.

Para resumir, ser perfeccionista no es necesariamente algo malo. Sí, pueden perder algunos plazos, pero probablemente harán un mejor trabajo general. Quiero decir, ¿sus clientes realmente le están pagando para completar la función A antes de la fecha B o le están pagando para que haga un producto de calidad? Veo un montón de compañías de software que podrían usar más perfeccionismo.

Sin embargo, un perfeccionista desadaptativo es malo. No aceptarán nada menos que perfecto. En resumen, nunca cumplirán porque su objetivo es simplemente inalcanzable.

Nota: si bien estoy de acuerdo con el sentimiento de Debasish. Trataré de responder la pregunta de los participantes con mis antecedentes (startups).

En mi experiencia, un perfeccionista no puede alcanzar plenamente su potencial en una empresa emergente o de ritmo acelerado.

La mayoría de las empresas de ritmo rápido alteran continuamente los objetivos y especificaciones del producto. Esto hace que muchos proyectos cambien a menudo durante el ciclo de construcción, y si ese proyecto no da el impulso deseado del producto, se descarta. Tener un ingeniero que pueda adoptar y reutilizar fácilmente la mayor cantidad de código actual posible es una gran ventaja al tratar de minimizar el tiempo perdido. Un perfeccionista podría ir tan lejos como desechar una buena cantidad de código en la premisa de que no es exactamente lo que necesita. Además, pueden necesitar pasar una cantidad considerable de tiempo repensar las cosas después de un cambio. Esto podría ser un gran problema cuando existe una probabilidad razonable de que el código sea desechado por razones de producto de todos modos.

En el pasado, he tratado de evitar aquellos que pueden tener tendencias perfeccionistas:
– Comprobar si pueden dar soluciones rápidas a algunos problemas simples pero “urgentes”.
– Formular preguntas de la entrevista sobre el comportamiento que ha visto en su empresa y que está tratando de evitar.
– Verificando sus referencias de cómo trabajaron con otros en código compartido.

Una pregunta de ejemplo que he usado fue para dar un problema difícil de CSS donde la única solución conocida son las tablas (Muchos puristas pasarán horas tratando de solucionar el problema con divs en lugar de la corrección de la tabla de 30 segundos). Después del ejercicio, si tuviera sentido, señalaría que el proyecto con ese código en particular fue rechazado por razones de producto.

More Interesting

¿Cuáles son algunas empresas que están dando buenos ejemplos de diversidad y contratación de URM?

¿Dónde puedo contratar un desarrollador de sitios web de bajo presupuesto?

¿Cuánto tiempo tendré que enfrentar la pobreza cuando esté calificado para un trabajo de tecnología, tenga años de experiencia y no pueda ser contratado?

¿Cuáles son algunas de las prácticas de contratación en Wal-Mart?

¿Está bien no comunicarse con un candidato después de haberlo entrevistado y decidido no contratarlo?

¿Qué tan competitivo es el proceso de contratación en Kate Spade?

¿Cuáles son algunas cosas legales comunes para las que las personas contratan abogados pero que en realidad no las necesitan?

¿Por qué hay un requisito para un cierto género en las salas de juntas en lugar de contratar personas basadas únicamente en el mérito?

¿Qué es lo que te impide contratar un asistente virtual?

¿Cuáles son algunos buenos consejos para optimizar el proceso de contratación de desarrolladores en California?

¿Quién ha pasado por una subasta contratada y está dispuesto a hablar conmigo sobre el proceso y la experiencia?

Como español, ¿cómo se siente buscar trabajo en Alemania?

¿Por qué deberías contratar la limusina de Los Ángeles para tu boda?

¿Podría un hombre con un doctorado ser contratado como cantinero, o sería descartado como sobrecalificado?

¿Por qué una empresa podría querer contratar a un desarrollador de aplicaciones móviles real en lugar de un programador Java o un programador Objective-C?