Como han dicho otros, definitivamente hay un impulso creativo que nos estimula. También es adictivo, porque tienes poderes divinos en el pequeño mundo que estás creando. Este tipo de motivaciones se aplican principalmente a los nuevos programadores que trabajan en proyectos a pequeña escala. Siguen existiendo para programadores experimentados, pero cuando trabajas en grandes proyectos en equipos más grandes bajo una presión programada, tiende a parecer más un trabajo, y tienden a ser menos oportunidades para ser creativos porque los gerentes quieren resultados.
Los proyectos pequeños pueden ser ejecutados por una sola persona o por un equipo pequeño, pero generalmente con una sola persona que toma las decisiones. Esta estructura natural se descompondrá a medida que el proyecto crezca en escala y complejidad. Esto sucede porque un solo gerente no puede entender todos los problemas y tomar todas las decisiones en tiempo real sin afectar negativamente la productividad del equipo una vez que el equipo supera los 4 o 5 miembros. En este punto, las habilidades blandas como la negociación y el consenso se vuelven más importantes que las habilidades técnicas para aumentar la productividad del equipo.
A medida que los equipos de mayor y mayor productividad aumentan. Pero el sentido de realización individual se reduce. Cosas como las mejores prácticas toman el relevo para garantizar un alto nivel de profesionalismo en todo el equipo, pero a la inversa, dado que el equipo se desempeña a un nivel cada vez más alto, el desarrollador individual puede sentir que está perdiendo autonomía.
Las “mejoras” de procesos como ágil pueden profundizar y agravar esta sensación de privación de derechos. Heredar en estas mejoras de proceso es una suposición subyacente de que todos los programadores son intercambiables. Si bien los programadores novatos pueden ver esto como una suposición simplificadora o una cortesía profesional igualitaria, los programadores experimentados se dan cuenta de que sus habilidades y experiencia probablemente serán marginadas o devaluadas bajo este nuevo régimen. Si no eres un experto en la materia (SME), Agile convierte tu trabajo significativo en una serie interminable de sprints en los que puedes competir con desarrolladores más jóvenes y menos experimentados que, en general, son técnicamente más actuales y también tendrán un nivel más bajo si se cometen errores. hecho.
Entonces, lo que estoy tratando de transmitir aquí es que a medida que te vuelves más y más experimentado como desarrollador, te das cuenta de un par de cosas. Realmente no eres dueño de tu trabajo. Puedes sentir una sensación de orgullo en tu trabajo. Pero si intentas llevarlo contigo, rápidamente aprenderás que no tienes nada más que los recuerdos en tu cabeza y si las corporaciones podrían poner un circuito NDA en tu cerebro, ¡ya no serás el dueño de los recuerdos!
Los desarrolladores de la mitad de la carrera podrían comenzar a pensar que serán capaces de actuar por su cuenta y encontraron una compañía de millones / billones de dólares basada en las habilidades y el conocimiento que han adquirido. Obviamente, esto sucede con la frecuencia suficiente para mantener vivo el sueño, pero la probabilidad es muy baja. Es en gran medida una función del lugar correcto, el momento correcto.
Entonces, después de eliminar todas estas motivaciones viles y mercuriales que menguan y menguan a lo largo de la carrera de un desarrollador, se queda con las realidades económicas obvias.
Al igual que los granjeros de la finca medieval, nos despertamos cada día con hambre y necesitamos ganar el pan, la ropa y alimentar a nuestras familias.
Cuando empiezas a verlo en términos puramente económicos, al principio puede parecer aterrador, pero en última instancia es bastante empoderador. Después de todo, las corporaciones no sienten lealtad hacia sus empleados y no se sentirán culpables de eliminar el trabajo de los programadores si sienten que ya no necesitan a la persona. Entonces, en última instancia, el dinero es un gran motivador, nos guste admitirlo o no.
A diferencia de la mayoría de los demás trabajadores de la economía del siglo XXI, los desarrolladores de software tienen mucho control en la dirección futura de sus carreras. Como grupo, consideramos que es una virtud actualizar nuestras habilidades, pero como no tenemos tiempo infinito, debemos racionar este esfuerzo individualmente, eligiendo los idiomas y la tecnología que consideramos más influyentes o técnicamente viables en el futuro.
Esto me lleva a un segundo motivador constante a largo plazo, la necesidad de mantener las habilidades actualizadas. A finales del siglo 20 había muchos programadores de Cobol sin trabajo. Era un lenguaje que había sido dominante en las aplicaciones de negocios, pero técnicamente era inferior a muchos idiomas más nuevos. A medida que nos acercábamos al nuevo milenio en 1999, repentinamente había una gran demanda porque todos habían estado retirados o despedidos durante décadas cuando las empresas se dieron cuenta de que tenían un problema de y2k y nadie en el personal podía arreglar el código. Así que las empresas pagaron un alto precio para atraer a estos individuos a contratos a corto plazo para hacer el trabajo más aburrido y aturdidor que se haya visto nunca. Estaban literalmente arreglando el mismo error (cálculos de fecha de 2 dígitos) una y otra vez.
Ningún programador quiere encontrarse trabajando en un idioma muerto o moribundo. Pero a medida que se introducen nuevos idiomas, siempre es una posibilidad distinta, que la tecnología a la que le asignó una gran parte de su carrera podría quedar obsoleta debido a alguna nueva innovación.
Un tercer motivador importante es la necesidad de hacer un trabajo interesante. Si acepta mis afirmaciones de que el programador disfruta de la programación y quiere seguir haciéndolo, más aún, deben hacerlo por razones económicas (no de manera independiente) y también deben seguir siendo relevantes técnicamente (desea que se les pague bien). Todos estos requisitos son más fáciles de administrar, si el programador realmente disfruta el trabajo porque es intelectualmente estimulante.
Quemarse es el mayor riesgo de una carrera tardía para un programador establecido. Quemarse, es decir, simplemente cobrar un cheque de pago, tratar de llegar a la jubilación es la sentencia de muerte para un programador. Así que todos nosotros debemos mantenernos mentalmente comprometidos si queremos permanecer en el juego.