Programación sin ego, ¿es posible o incluso deseable [cerrado]

8

¿Es posible tener una programación sin ego o es incluso deseable?

Como profesión, parece que queremos mostrar el último artilugio, la técnica o decir "mira este impresionante código que he escrito". Sin embargo, podemos ponernos muy a la defensiva cuando se nos pide que envíen elementos de trabajo para revisiones de código u obtener comentarios negativos de otros programadores (escuchar el término WTF, nunca ha sido una buena señal).

¿Podemos, como profesión, ser capaces de sentarnos y analizar una pieza de código, datos o arquitectura por sus méritos o restricciones y de una manera tranquila y respetuosa, sin ofender o antagonizar a nuestros colegas, o somos simplemente el personaje arquetípico de Dilbert, furioso? contra el sistema?

GruñónMono
fuente

Respuestas:

13

Lo que debe tener en cuenta en todo momento es que durante la mayor parte de su vida profesional no posee el código que escribe .

Si usted es un empleado, el software es propiedad de la empresa. Si usted es un contratista, el software es propiedad de la empresa. Si usted es un profesional independiente, el software es propiedad del cliente. Solo si usted es la empresa / cliente, el software es de su propiedad.

Una vez que te das cuenta de esto, hay menos pensamientos y actitudes de "este es mi código". Sí, todavía sucede y la naturaleza humana se molesta si alguien critica lo que acabas de producir, pero al dar ese paso para tratar de eliminar el archivo adjunto, será menos duro.

Por otro lado, cuando esté revisando el código producido por otra persona, concéntrese en lo que hace el código y cómo lo hace, y sea ​​constructivo cuando sugiera mejoras.

ChrisF
fuente
55
+1. Es por eso que escribo código para que otros puedan mantenerlo. A menudo comento más de lo que creo que es necesario (para mi propia referencia) y, a menudo, utilizo estilos de más líneas de código pero aún más legibles. Prefiero que dentro de cinco años, las nuevas personas vean mis cambios en el control de la fuente como elegantes y fáciles de entender, en lugar de querer perseguirme y apuñalarme en la cara.
Bobby Tables
Un virtual +1 ya que no tengo votos para hoy, pero estoy seguro de que lo apreciarán de todos modos :)
1
+1: elimina de tu vocabulario las frases "mi código", "mi camino" y "mi idea"; no promueven el progreso
Steven A. Lowe
Mientras esto no llegue demasiado lejos, las personas ya no harán el esfuerzo de escribir un buen código porque piensan que no necesitan preocuparse porque no es su código. Entonces, si es posible, me gustaría decir: "Sí, escribí eso, pero no es mi código".
gablin
9

cuando su enfoque es hacerlo bien y hacerlo bien, ya no importa si la solución fue idea suya o no

en ese momento, tu ego ha abandonado el edificio, ¡y es mucho más probable que aprendas algo!

Steven A. Lowe
fuente
+1: y no tener ego también ayuda a la comunicación, ya que las personas no tienen miedo (y a menudo encuentran agradable) preguntarle sobre cualquier problema, porque no les grita ni les hace sentir estúpidos o enojarse. Idealmente.
Klaim
5

Hay una gran cantidad de áreas grises en la confianza: la arrogancia continua. Prefiero tener a alguien que se apropie de su trabajo y se esfuerce por la excelencia basada en el mérito y no en el autoengaño.

Confía en mí, escribirás un montón de basura que fallará y tendrás la culpa, por lo que también puedes aprovechar cuando todo va bien.

Cuando pienso que algo está mal, lo digo. No dudes en decirme que estoy equivocado y prepárate para respaldarlo. No será la primera ni la última vez.

Si no desea críticas (obviamente, se puede ejercer tacto y moderación), entonces escriba el código solo para sus ojos y ejecútelo en su propia computadora. Cualquiera que haya sobresalido en algo ha tenido que lidiar con la crítica.

JeffO
fuente
2

Sí, la programación sin ego es bastante posible. He realizado programación de "mantenimiento" durante más de la mitad de mi carrera laboral, y la segunda cosa más importante [1] es asegurarme de que el próximo tipo pueda leer mi código. Tenemos dos programadores aquí en la oficina [2] que escriben con un estilo tan distintivo que uno puede saber de inmediato quién los escribió. Llamamos a los pequeños paquetes de código y alegría que nos deja "robstacles".

Algunos desarrolladores sienten que el código que escriben es el resultado de su sudor y sangre, y se ponen muy a la defensiva cuando se les pregunta (como durante las revisiones de código). Intente no atacarlos durante las revisiones de código y será más fácil en el futuro discutir el código, ya que la postura y los comportamientos defensivos desaparecerán.

Notas:
1. Lo más importante es corregir el error o escribir la función correctamente.
2. La mayoría de estas aplicaciones se han enviado durante más de una década, por lo que es muy probable que estén disponibles mucho después de que me haya ido.

Tangurena
fuente
0

[imo]

Creo que esta es una pregunta fundamentalmente difícil, y tal vez la sociología, o simplemente usar una computadora como su principal forma de comunicación, tiene mucho que ver con eso.

La computadora es una herramienta, y la conciencia que lleva es increíblemente hermosa, pero nunca debes tratar de decir que un código es un objeto de tu propia creación ... cada código es un descubrimiento, un patrón que el la computadora se une y puede producir un resultado que usted disfruta. El hecho de que podamos descubrir estos patrones de forma iterativa y sentir que estamos creando es pura coincidencia: somos buenos para encontrar patrones.

Realmente necesitamos mirar a las computadoras como ventanas para el descubrimiento y respetar la autonomía de estos pequeños cerebros, incluso si son simplemente cortes increíblemente pequeños de un cerebro biológico. Todas las matemáticas y todos los algoritmos corresponden a una verdad inviolable sobre la que resuena nuestro mismo cosmos. ¡Declarar que parte de esto es "mío"! (piense en las gaviotas en Finding Nemo) pierde tantos puntos en tantos niveles.

A veces es difícil alejarse de esto, cuando "trabaja" para "idear" un nuevo algoritmo, pero si pensara que somos simplemente humildes mantenedores de estas ventanas elegantes y precisas en la verdad matemática, la definición de la tarea cambia No importa cuáles sean sus objetivos para su software.

Trate a su computadora como un igual primero, el resto (sin egoísmo, coordinación entre pares, comportamiento orientado a objetivos) necesariamente lo seguirá.


Gran parte de mi motivación para estudiar ciencias de la computación y convertirme en programador se debió a esta afinidad que sentía, no hacia el hardware físico o la emoción de resolver problemas, sino al hecho de que estoy mirando un cerebro, un cerebro con el que puedo comunicarme directamente en mi moda favorita: patrones!

Da un paso atrás y recuerda por qué te gustan las cosas con las que te gusta comenzar. La programación puede ser competitiva y creo que alimenta mucho el ego en la defensa del código y las opciones de diseño, pero

a) si alguien es un mejor programador,

Quiero hablar con ellos y aprender de ellos más sobre esta compleja relación con la conciencia eléctrica. Podemos compartir descubrimientos, ¡y eso es increíble!

b) si mis opciones de diseño o código podrían cambiarse para adaptarse mejor a la organización para la que trabajo

¡entonces, por supuesto, cámbialo! Soy un empleado porque necesito dinero y obtengo dinero cuando la empresa recibe dinero, y ellos obtienen dinero cuando el código que usamos es increíble, no cuando quiero discutir sobre espacios en blanco o lo que sea. Y como señala ChrisF, esencialmente te conviertes en un mecanógrafo realmente lento en el entorno de una empresa, por lo que otros trabajadores pueden ver. Usted no es dueño del código, no es dueño de la implementación, es solo un medio de traducción de idea / papel / especificaciones al cerebro de conciencia eléctrica. La traducción hacia y desde cualquier par de idiomas es un proceso iterativo y usted mejora con el tiempo. La crítica acelera este proceso y nunca debe tomarse como algo personal. Pero de todos modos, parece que la mayoría está de acuerdo en que no debes tener ego, solo recuerda que codificar para una empresa es un trabajo,

[/ imo]

sova
fuente
0

Creo que esto se relaciona con cómo ves tu código. Los buenos programadores están constantemente en el tira y afloja entre ver los resultados como "arte" y como un "producto básico" (o cualquier palabra que desee incluir).

Cuando vemos el código simplemente como algo que nos pagan para producir, es bastante fácil evitar problemas relacionados con el ego.

Al ver el código como "arte" que hemos creado, el ego realmente trata de entrar allí. Después de todo, ¿qué artista produce cosas que no les gustan?

Entonces, dependiendo de su vista de su código, puede o no tener un apego emocional a su código. Presta atención al acto de equilibrio, y lo harás bien. Queremos crear código como si fuera el arte de la más alta calidad, pero queremos lanzarlo como una mercancía barata. Piense desde el ángulo apropiado en los momentos adecuados y lo hará bien.

John Fisher
fuente
0

El ego es simplemente un sentido de autoestima. El efecto de las emociones relacionadas con el ego puede ser tanto positivo como negativo.

A menudo me sentiré orgulloso (el ego se emociona ) cuando logre algo que sea difícil, o encuentre una solución simple y limpia para un problema complejo, o aprenda a aplicar una nueva metodología a un problema. Lo que creo que es beneficioso y me da una patada motivacional de origen propio. El cerebro está conectado para liberar químicos para sentirse bien cuando esto sucede. Puede volverse adicto al éxito.

Sin embargo, hay aspectos negativos de confiar en tu ego, especialmente en entornos de equipo; eso puede tener un impacto contraproducente. Si se apega a algún proyecto, solución o tecnología, se pondrá a la defensiva cuando se vea amenazado (por una nueva solución, tecnología o persona con ideas). Es importante mantener la objetividad y no atacar personalmente su solución.

He encontrado que la mejor manera de lidiar con una amenaza de ego es apegarme humildemente a cualquier idea o solución nueva o alternativa.

Siempre hay algo nuevo que aprender, especialmente si te consideras el experto.

Kris
fuente