¿Por qué a algunos desarrolladores les encanta criticar el código de otros desarrolladores?

La misma razón por la que las personas critican a otros en otras áreas: para parecer superiores. Es un orgullo, y por alguna razón parece infectar a los desarrolladores de software en gran medida.

He estado escribiendo código con mucho éxito por más tiempo que la mayoría de los desarrolladores de software y aún me critican regularmente por no hacerlo de otra manera (la forma en que lo habrían hecho, que por supuesto debe ser superior).

No respeto por mis décadas de experiencia exitosa, solo una actitud que piensa que soy una especie de dinosaurio de ingeniería porque una vez escribí todo en código de máquina y todavía pienso que C es un gran lenguaje. No importa el hecho de que sé todo acerca de su C ++ y su OOP, después de haberlo hecho yo mismo durante 25 años, y de determinar a través de docenas de proyectos muy exitosos, he hecho que mis formas “probadas y verdaderas” todavía funcionan mejor.

Demasiados desarrolladores tratan la programación como si fuera una religión. Su camino es el ÚNICO camino. C ++ es un lenguaje más nuevo que C, por lo que debe ser superior a C es la forma en que piensan. Raramente diré esto, pero estoy completamente cansado de su “Sé mejor que el chico con 40 años de experiencia, porque hago programación ‘moderna’ (OOP)”, como si solo hubiera una forma adecuada de desarrollar software. Piensan tan bien de sí mismos que no tienen idea de lo poco que realmente saben.

Es una pena. A la larga, solo se hacen daño.

No está claro qué quiere decir exactamente con “criticar” (o “criticar” para nosotros en los Estados Unidos de América). Hay críticas constructivas versus no constructivas , y también hay críticas , que suenan similares pero son diferentes. Todos ellos pueden ser importantes y útiles, en las circunstancias adecuadas.

En primer lugar, afirmemos que no todo el código es igual de bueno : la calidad del código es importante y, hasta cierto punto, posible de definir y evaluar. Su código puede ser más rápido que el mío, o más fácil de mantener, o más susceptible de cambio, etc., y, en igualdad de condiciones , eso lo hace objetivamente mejor.

Admitamos también que no todos escriben código perfecto, y la mayoría de nosotros ni siquiera somos 100% consistentes en producir el código de mayor calidad que podamos. Podemos estar cansados, o con limitaciones de tiempo, o perezosos, o distraídos, u otras 1000 razones que pueden hacer que escribamos un código sub-par.

En última instancia, queremos entregar un buen producto a nuestros clientes (pagando o de otro modo); Por eso estamos en este negocio. Por lo tanto, es útil obtener ayuda de otros para mejorar nuestro código: pueden captar las cosas por debajo del par y ayudarnos a mejorar nuestra calidad de referencia.

Por lo tanto, criticar el código de otras personas, generalmente en las revisiones de código, es una gran parte de lo que hacen los buenos desarrolladores. La crítica es parte de este proceso: si estoy usando un nombre pobre para mi método, espero que alguien me lo diga para que pueda solucionarlo; Si existe la oportunidad de reutilizar el código de una manera creativa que me perdí, sería genial saberlo, así que la próxima vez puedo hacerlo yo mismo.

Dicho esto, la clave de tal crítica es que debe ser justificada, respetuosa e idealmente constructiva. Simplemente decir “su código apesta” no tiene sentido, y solo sirve para molestar al codificador y ponerlo a la defensiva (reduciendo las posibilidades de que incluso quieran solucionar el problema). Debe explicar cuál es el problema y por qué es un problema, y ​​ofrecer un camino para solucionarlo , y debe hacerlo bajo el supuesto de que la otra persona (a) no es estúpida, (b) no es perezosa y (c ) tratando de hacer lo correcto. Finalmente, esté abierto a la posibilidad de que esté equivocado y que tengan razón.

Digamos que alguien está usando el ordenamiento de burbujas para ordenar una lista. Eso parece bastante tonto, ¿verdad? ¿Por qué no usar quicksort o algún otro algoritmo de tiempo de registro?

Aquí hay una mala manera de reaccionar en una revisión de código:

“WTF, ¿estás usando la clasificación de burbujas? Eso es lo más tonto que he visto en mi vida.

Aquí hay una manera mucho mejor:

“Si esta lista se alarga, esta implementación de clasificación puede volverse muy costosa (es O (N ^ 2)). Debería considerar usar algo como quicksort (hay una implementación en la biblioteca FooBarCollections), o al menos documentar por qué no lo está haciendo “.

Tenga en cuenta que en algunos casos, ¡espero que sea raro! – De hecho, su crítica puede no ser muy constructiva, porque si bien puede detectar un problema, es posible que no sepa cómo resolverlo. Cuando eso sucede, debes ser aún más cauteloso y respetuoso; el codificador original puede ser consciente del problema y simplemente tampoco tener una solución. No deberías dejar que se deslice necesariamente. Puede sugerir discutir esto en una sesión de lluvia de ideas; o consultar con un experto en dominios; o simplemente agregando un comentario al código para que los futuros desarrolladores estén al tanto del problema y por qué es difícil de resolver.

Algunas personas son imbéciles.

He trabajado como programador profesional durante unos 17 años, no creo que haya criticado mi código, tal vez algunas sugerencias constructivas, pero nunca críticas.

Creo que nunca he criticado el código de un compañero, simplemente no es una forma efectiva de administrarlo.

Algunas personas critican el trabajo de otras personas porque les hace sentir mejor o superior.

Internet también es un factor importante, es mucho más fácil ser un imbécil frente a una pantalla que frente a una persona real.

Porque es como cualquier otra cosa, es casi un deporte. Eficientemente es clave

Si jugaste deportes y eres el jugador estrella que recibe tiros de 3 puntos como loco, eres el hombre ideal, ¿verdad?

Lo mismo con la codificación, más si hay una mejor función o algo que siempre puede sugerir por qué su idea es mejor.

Compruebe en código abierto, por qué existe, es para hacer del mundo un lugar mejor, dejando el código donde otros pueden contribuir, puede mejorar el proyecto.

More Interesting

Muchos trabajos de desarrollo de software requieren pruebas en línea en estos días. ¿Debo molestarme con las compañías que los requieren?

¿Qué trabajo es mejor: un desarrollador de software o un analista de negocios?

Cómo convertirse en un desarrollador de software sin pasar por una licenciatura en informática

¿Cuál es su mayor problema cuando desarrolla una nueva idea de software?

¿Qué constituye un ninja desarrollador de Android? ¿Qué necesito para convertirme en uno de los principales desarrolladores de Android?

¿Cuáles son los pasos para administrar un equipo remoto para el desarrollo de software?

Cómo entrevistar a un desarrollador de software senior, específicamente Java

¿La mayoría de los desarrolladores de software odian las patentes de software?

¿Cómo puede un desarrollador de software en India con más de 2 años de experiencia y buenas estructuras de datos y habilidades de algoritmos, conseguir un trabajo en los Estados Unidos?

¿Es el semestre de primavera demasiado tarde para conseguir un trabajo como desarrollador de software de nivel básico?

Como estudiante graduado en CS, ¿debo aceptar una pasantía de $ 20 / hora en LA?

¿Qué significa el advenimiento de la IA para los desarrolladores de software?

Tengo mi aplicación ejecutándose en 10 tomcats separados y están accediendo a la misma base de datos. ¿Cómo puedo lograr la concurrencia en la modificación de filas, para que no haya dos servidores que puedan modificar la misma fila simultáneamente?

¿Cuáles son las consideraciones clave antes de seleccionar una empresa de desarrollo de software?

¿Cuál es la razón por la cual los desarrolladores de software indios tienen una gran demanda en todo el mundo?