Muchos proyectos de programadores a menudo quedan a medias. Tienen tantas buenas ideas, pero muchas se quedan en mera ilusión. Casi todos los desarrolladores de software tienen una carpeta así, llena de proyectos sin terminar, y muchos de esos programas eran realmente ideas geniales en sus inicios. Igual que ellos, yo también tengo muchas buenas ideas; algunas incluso son las que algunas empresas usan hoy en día. Por ejemplo, decidir si hacer comercio electrónico en eBay o en Amazon para obtener beneficios, crear una red social basada en negocios (plomería, electrónica, desarrollo de software, etc.), un motor de búsqueda de bitcoins, desarrollar un framework CSS para reemplazar Bootstrap, encontrar a las personas más atractivas de Instagram, desarrollar un motor de estadísticas de visitas en tiempo real; los ejemplos son interminables. Casi todos los proyectos los he comenzado, pero no he visto que ni uno haya sido terminado. Cuando hablo de este tema con mis colegas y amigos, ellos también me dicen que les pasa lo mismo. Muchísimas buenas ideas mueren prematuramente en sus carpetas. ¿Por qué ocurre esto?
Falta de motivación por el éxito
Primero hablemos de nuestra profesión, que goza de una tasa de empleo envidiable. Hablemos con hechos: la tasa de desempleo nacional es de aproximadamente el 6,7%, mientras que la de los desarrolladores web es de menos del 1%. Además, nuestro nivel salarial también está por encima del promedio. En 2012, el ingreso anual promedio de un desarrollador de software ya superaba los 90,000 dólares. Por supuesto, ahora si eres lo bastante bueno, puedes superar con creces esa cifra. Ver a los novatos que aprenden conmigo convertirse en programadores de nivel inicial me produce una gran satisfacción personal. Y el salario de esta profesión también los deja satisfechos: el salario inicial es de 45,000 a 70,000 dólares.
Por lo tanto, en comparación con la mayoría de las demás personas, especialmente aquellos que son mediocres en su trabajo y pasan los días sin más, saltando de un empleo a otro porque los salarios no son altos, los desarrolladores de software son relativamente exitosos. Permítanme hacer una generalización atrevida; cualquier parecido con la realidad es pura coincidencia. Se puede decir que los programadores que llegan de otras profesiones tienen más éxito que esas personas. Y es esa sensación de superioridad por el éxito la que adormece nuestros nervios y nos hace carecer de motivación para cumplir metas.
Diferente ámbito de conocimiento
Nuestro conocimiento es amplio. Podemos hablar con soltura sobre lo conveniente que es viajar entre varias ciudades. Sabemos cómo descomponer un problema complejo en pequeños subproblemas y resolverlos uno por uno. Somos verdaderos "conocedores del mundo", porque podemos decir "Hello World" en cualquier idioma. Ante cálculos que incluso requieren miles o decenas de miles de iteraciones, no fruncimos el ceño, porque conocemos el método recursivo. Sabemos muchas cosas, pero ¿sabemos lo suficiente? El gran científico Albert Einstein dijo una vez:
El conocimiento superficial engaña, por eso es peligroso; el conocimiento amplio vuelve arrogante, lo cual es aún más peligroso.
Newton, como todos saben, considerado una de las personas más inteligentes de su época, podía predecir con precisión el movimiento de los cuerpos celestes a millones de kilómetros de distancia. Dijo que veía más lejos porque estaba sobre los hombros de gigantes. Pero la física no fue su único interés; también nos dejó un valioso tesoro de conocimiento como el cálculo infinitesimal, entre otros. Siendo así, ¿debería también entender bien el capital y el funcionamiento de los mercados?
¡Jaja, entonces estás muy equivocado! En el pico de la burbuja de los Mares del Sur en 1720, todo su efectivo invertido se esfumó, y quebró. Porque no entendía el mercado, por mucho conocimiento profundo que tuviera, no le sirvió de nada. Sus áreas de conocimiento eran independientes y no relacionadas: descubrió las leyes del movimiento de los cuerpos, pero esas leyes no le servían para entender la psicología de los inversores. Nuestra situación es similar. Podemos pasarnos un día entero explicando algoritmos y estudiando estructuras de datos, pero no entendemos qué quieren los usuarios. Cuando Twitter apareció por primera vez, supuse que no era más que una moda pasajera. Los hechos demostraron que estaba equivocado. Cuando resolvemos problemas, a menudo solo buscamos que la solución sea atractiva, e ignoramos las opiniones comunes relacionadas con el problema.
Cambiar de trabajo constantemente
Puedo garantizar que en cualquier otra gran ciudad pasa lo mismo, pero aquí solo hablo por mí mismo y por la experiencia de mis colegas y amigos trabajando en Nueva York. Cambiamos de trabajo constantemente. Aunque no todos son así. En los comentarios de un artículo en línea vi a alguien que había estado en el mismo puesto durante 19 años. También me he dado cuenta de que quienes se sienten fácilmente atraídos por otros proyectos suelen no permanecer demasiado tiempo en el mismo puesto. Precisamente por esta razón muchos proyectos tienen que interrumpirse.
Hay muchas razones para interrumpir un proyecto. Por ejemplo, cuando entras en un trabajo nuevo y necesitas concentrarte en el proyecto de allí, tienes que dejar el anterior a un lado. O porque el proyecto que haces es similar a uno que ya hiciste antes, y de repente pierdes interés. El intervalo también es un factor; especialmente si cambias de trabajo cada varios años, mantener la constancia se vuelve aún más difícil. Aquí debo mencionar que es muy importante cambiar la mentalidad. Si tienes pensado renunciar después de tres años, ¿por qué no puedes terminar tu proyecto en tres meses? Si mantienes esa pasión, cuando estés atascado en un proyecto, de repente se te ocurrirá una buena idea.
Dar nueva vida a los proyectos abandonados
Por una u otra razón, no dejé que mis buenas ideas "nacieran". Primero admitimos esto, luego encontramos las causas. Ahora el tercer paso es repararlas. No es algo que se logre de la noche a la mañana, y quizás muchos de mis proyectos sigan en un estado de "medio muertos"; después de pensar por mucho tiempo, por fin ideé algunos pasos para evitar que estos proyectos se conviertan para siempre en adornos en la carpeta.
Eres el mejor
Primero, entiende que cada proyecto puede hacerte crecer un poco —o en algunos casos, enormemente— como mejor desarrollador. La habilidad técnica se acumula con el tiempo, así que cuantos más proyectos desarrolles, mejor serás. Desarrolla un proyecto con la motivación de aprender nuevas tecnologías, nuevos lenguajes de programación y nuevos frameworks; así, aunque no lo completes, podrás aprender bastantes conocimientos. Y si tienes otros asuntos importantes que atender, puedes pausar este proyecto de inmediato.
Construir componentes de proyecto
Has desarrollado muchos proyectos y te has vuelto más hábil. ¿Sabías ese pequeño truco de reutilizar código? Construye módulos y bibliotecas, en lugar de volver a escribirlos cada vez que los necesites. Si el proyecto en el que trabajas ahora no es el último, te recomiendo que construyas algunos componentes de proyecto, en lugar de escribir solo código que sirva únicamente para este proyecto. Escribe notas para ti en la documentación, para que la próxima vez te resulte más fácil usarlo en el siguiente proyecto.
Colaborar con los demás
Ahora que ya tenemos buenos métodos para revivir esos proyectos abandonados, ¿no estás impaciente por intentarlo? Tu idea puede ser exquisita, tan preciada como tu hijo, o quizás valga miles de millones de dólares, pero hasta ahora —no vale nada. Necesitas compartir tus ideas con otras personas, y cuantas más, mejor. Esta emoción natural te impulsará a seguir dedicándote al proyecto y a impulsar su desarrollo. Incluso puedes publicarlo como código abierto e invitar a todos a participar. Esta forma de colaboración mutua te dará un sentido de misión, te mantendrá concentrado y no te rendirás fácilmente.
Resuelve los problemas que tienes a mano
No persigas lo inalcanzable ni pretendas más de lo que puedes hacer; intenta crear algo que te sea realmente útil. Si eres programador, resuelve problemas de programación; si trabajas en una empresa, crea programas que la empresa necesite usar, etc. Incluso en el ámbito personal, siempre hay algunos problemas que puedes resolver con tecnología. Entonces, ¿por qué no tomar la iniciativa? No esperes a que los problemas se acumulen para resolverlos; avanza paso a paso, y además obtendrás programas útiles. ¿Por qué no hacerlo?
No dejes de hacer algo por pequeño que sea
Hay un refrán: no pienses en crear una empresa que requiera un plazo de ocho meses para establecerse; dedica tu tiempo a cosas que puedas hacer en cuatro semanas o incluso menos. Sin importar lo simple que sea, publica tus últimos logros en una fecha fija cada mes. Esto dará un fuerte estímulo psicológico que puede motivar tu trabajo. Por el contrario, si te sientas frente al portátil durante ocho meses queriendo hacer algo grandioso, pero sin ningún avance, la frustración es fácil de imaginar. Los cambios cuantitativos conducen a cambios cualitativos; hacer bien las pequeñas cosas puede llevarte a un gran éxito. Porque el viaje de la vida es un maratón, no una carrera de velocidad.
Presumir también es un arte
La presión social es real. En lugar de trabajar a escondidas, mejor cuéntale a todos en qué consiste tu trabajo. La retroalimentación que recibas puede ayudarte a mejorar el producto. Quizás te preocupe que otros se apropien de tu idea, pero te garantizo que nunca sucederá. Porque incluso una idea muy simple, si otros quisieran ejecutarla, es algo muy difícil. Así que no hay necesidad de mantenerla en secreto. Dila; además, puedes extraer sugerencias significativas de los consejos de los demás para mejorar, y lo más importante, esto te obligará a tener que realizarla. De lo contrario, cuando tu fanfarronería se venga abajo, no sabrás dónde poner la cara, jaja.
Al llegar aquí, toca hacer una pausa. No sé si has aprendido algún truco que pueda ayudar a tu proyecto. Recuerda: la acción es lo más importante.