La importancia de conocer el negocio siendo desarrollador de software
Hace un tiempo hablábamos sobre algunos consejos para los recién egresados en desarrollo de software. Uno de ellos era "No seas sólo programador" y creo que este artículo acompaña muy bien a ese consejo. Sin más retraso, comencemos.
Las preguntas incómodas
Me gustaría que te preguntes por un momento ¿Cuál es el peor escenario en tu trabajo si te equivocas? En mi caso específico, cuando trabajaba en una startup de recursos humanos, si me equivocaba, alguna persona de capital humano habría tenido problemas con su bolsa de trabajo. No era lo ideal, pero no era el fin del mundo.
Ahora y desde hace cerca de 7 años me he enfocado en software financiero (primero en un banco y ahora en una fintech) ¿Cuál sería el peor escenario si me equivocara? Filtración de datos, que los clientes no puedan recibir sus transferencias, uno o más cálculos equivocados y por ende, pérdida de dinero, y un largo etcétera.
Siendo sincero, siempre quise un trabajo así: con gran responsabilidad y mucha atención al detalle. Sin embargo, no entendía la magnitud y el nivel de estrés que manejaría. Creo que pocos profesionales del software se ponen a pensar en ello y creo que la razón es que asumimos que el conocimiento a nivel de dominio de negocio no es importante.
De hecho, varias veces me he encontrado platicando con algunos desarrolladores e ingenieros que buscan cambiar de empleo, pero las conversaciones solo se limitan a la tecnología. Y estoy de acuerdo, los profesionales del software escriben código. Y ya... ¿Verdad? 🧐
¡Nada más lejos de la realidad! ¡El conocimiento del negocio es importante! No sólo es tirar el siguiente for y listo. No. El conocimiento de negocio regala contexto y ese contexto da valor e importancia a lo que hacemos.
Asuntos que valen la pena
Imaginemos a un programador que tiene que automatizar una fábrica pero que no tiene idea de cadenas de producción. Es claro que escribirá software poco eficaz en comparación de alguien que se ha ensuciado las manos con software similar. Es como si tuviéramos que programar una máquina de radiación sin ser probada o sin haber consultado a los médicos. Odiaría ver qué pasaría... 😔 Lee la historia de la Therac-25 para entender un poco más.
Ahora pregúntate ¿Le das realmente la importancia a tu conocimiento del negocio en tu día a día? ¿Tienes el contexto suficiente? ¿El conocimiento suficiente? Recuerda que cuanto más contexto tengas sobre los requisitos mejores serán las preguntas que podrás hacer y mejor podrás traducir esos requisitos en código y conocimiento.
Todo lo anterior también te ofrece significado, incluso motivación. Por ponerte un ejemplo, de los siguientes puntos ¿cual te entusiasma resolver? ¿Cuál crees que te ofrece más valor a ti y a la empresa en la que trabajas?
- Mejorar un ciclo anidado del módulo de afiliación ó
- Mejorar el proceso de carga de la aplicación que permite que más leads concluyan su proceso de afiliación.
Todo muy bien, pero ¿ese es mi trabajo?
Tal vez puedas decir que el encargado del producto no eres tu y que, como programador, tu opción solo es programar.
Bueno, ¿realmente es así? ¿Crees que vale la pena? El no conocer lo que programamos nos hará perder valiosas horas cuando se necesite arreglar aquella implementación defectuosa porque no hicimos las preguntas correctas cuando era necesario.
Además, recuérdalo siempre, tu no solo eres programador. La mayoría de las personas se mantendrán en su carril, en su zona de confort, haciendo solo lo mínimo indispensable y no mostrarán interés en nada remotamente fuera de sus requerimientos laborales. Si eres curioso y haces las preguntas correctas, podrás diferenciarte e impulsar tu carrera.
¿Cómo construyo el conocimiento sobre el negocio?
Lo primordial es desarrollar el hábito de sentir curiosidad. No sólo estás cambiando una línea de código también estás afectando de forma positiva o negativa a tus usuarios como ya lo vimos en el problema de la intangibilidad del software.
Eres nuevo en la empresa, pero ¿quieres conocer más? Acércate al ingeniero que tenga más tiempo en tu lugar de trabajo y si es posible a gente de negocio que sepa realmente como funciona todo por dentro.
Podrás pensar, "está muy bien, pero ¿entonces me tengo que especializar en un giro de negocio?" Yo creo que no. Así cómo en este artículo hablábamos de no encasillarnos en un stack tecnológico, creo que tampoco deberíamos de cerrarnos a un giro de negocio determinado. El tener conocimiento de varias industrias y dominios te permite resolver problemas de forma distinta y creativa. Sin embargo, conozco buenos profesionales del software que se han especializado en industrias especificas y les ha ido muy bien. Es una cuestión de gustos.
De ahora en adelante, pregúntate ¿Lo que estoy haciendo impacta a nivel de negocio? ¿Realmente sé lo que estoy haciendo? ¿Estoy agregando valor?
Ahí te la dejo, una reflexión más filosófica que técnica.