¿Qué es aportar valor como técnico/programador?

Estoy harto de escuchar que ser programador no está bien valorado en España pero ¿qué es ser programador? Es una palabra que deberíamos dejar de utilizar. Programador es tanto el que ha hecho un curso de 2 semanas de programación en Basic como el que se ha tirado 15 años estudiando sin parar. Hará falta algún modificador al termino, ¡por lo menos!. Me gusta más el concepto de artesano de taller, maestros de taller y aprendices (donde hay gente que nunca llega a maestro)

Os lo voy a responder de un modo distinto, o cómo yo percibo que una persona aporta valor en una empresa.

Como empresario de una empresa atípica (visión puramente personal que no tiene que coincidir exactamente con otros socios de la empresa), donde no hay gestores como tal, una persona me aporta valor cuando (lo he pensado sólo un rato.. seguro que no es sólo esto):
  1. Me descarga de trabajo.
  2. Desempeña correctamente su labor técnica.
  3. Me hace sentir tranquilo.
  4. Me ayuda a conservar los clientes y/o a captar más.
  5. Genera un ambiente agradable a su alrededor.
Vayamos por orden:

1 Me descarga de trabajo.
————————
Un empresario tiene un problema fundamental: la incertidumbre, sobre todo en la época actual. Según definía Pascual Montañes en el libro Inteligencia Política (yo lo tuve de profesor en el Instituto de Empresa en un Executive-MBA), la función principal de un director general es crear ventajas competitivas sostenibles en el tiempo. Por tanto, tengo que dedicar el tiempo a pensar que habilidades tenemos que adquirir como empresa y cómo hacemos para promocionarlo del mejor modo (Según Kotler la función principal de una empresa es innovación y promoción).

Como en mi empresa no hay comerciales, yo estoy haciendo labores auxiliares (marketing, legal, financiero, formación, coaching, auditorías, charlas, etc.) hasta que llegue un potencial cliente y me llame para solicitar un presupuesto.

En ese caso, yo le voy a ver inmediatamente, me entero de lo que quiere, lo modelo en base a historias, escribo un documento, se lo cuento a un senior que tiene que, con algún compañero suyo valorarlo. Yo no puedo valorarlo porque son ellos los que se lo van a “comer” después.

No tiene sentido que yo siga haciendo de intermediario entre el senior y el cliente para concretar puntos específicos. El senior, debe ser suficientemente maduro para mantener una buena conversación con el cliente (incluso un aspecto socialmente aceptable), animarle a que lo haga con nosotros, acotar las expectativas y los riesgos y hacer un modelo de solución y una estimación válida. Luego, yo lo reviso (y normalmente la subo en vez de bajarla porque se dejan cosas) y hablo de dinero y condiciones particulares con el cliente.

Por tanto, si un técnico no sabe modelar rápidamente un proyecto, trabajar en equipo con sus compañeros para hacer una estimación a la que se comprometan, transmitir confianza al cliente… pues tenemos un problema porque no me descarga de trabajo.

2 Desempeña correctamente su labor técnica
——————————————
Algunas ofertas nos las asignan y otras no. Si nos la asignan, el senior deberá empezar el proyecto. El senior sabe más que los júniors técnicamente.

Empezar el proyecto significa:
  • Montar el entorno de gestión de la configuración (si no está): Integración continua, repositorio, métricas de calidad, etc.
  • Montar el entorno de desarrollo (incluso de pre y producción).
  • Instruir al cliente en metodologías ágiles, para que se acostumbren a la dinámica de trabajo.
  • Darle acceso a la herramienta de gestión (Scrum y docs compartidos)
  • Crear el esqueleto del proyecto con los frameworks elegidos (SSO, sistema de permisos, transacción modelo, etc). Normalmente hay muchas piezas (aparte del servidor de aplicaciones y la base de datos) y casi siempre un motor de búsqueda como Solr, un almacén documentar como Alfresco, un motor de informes y un LDAP.
  • Construir las primeras historias funcionales y guiar el Sprint.
Pasados unos días, meter a rueda a uno o varios júniors que trabajarán en el proyecto y que sabrán un poco de cada cosa. Alguno puede saber más incluso técnicamente que el senior por su experiencia en otros proyectos en piezas concretas. Es posible que el proyecto tenga algunas características especiales que requiera que otra persona, que ya sabe (sea senior o junior) ayude puntualmente. El senior, una vez canalizado el proyecto puede bajar su ocupación y ayudar en ofertas, dar cursos de formación o ayudar por su especialización o experiencia en otro proyecto.

Durante años los socios nos hemos preocupado y establecidos objetivos para que los senior adquieran estas habilidades, no sin mucho trabajo y esfuerzo de ellos. ¡Nos costó 7 años!

Por tanto, un senior tiene que saber arrancar un proyecto, formar al cliente, formar a sus compañeros, ser humilde para pedir ayuda a otros que sepan más (no enrocarse) y no agobiarse por cambiar de proyecto/contexto periódicamente.

Si como técnico no conoce las piezas comunes, no se comunica eficazmente con el cliente, no sabe trabajar en equipo y cambiar de contexto, no será tan senior.

Los júniors tienen que obviamente saber programar: conocer el lenguaje, técnicas de desarrollo, de orientación a objetos, patrones (de asignación de responsabilidad, diseño, JEE, refactorización.. que son distintas familias) discutir con sus compañeros con diagramas (como UML), modelar base de datos, librerías comunes y frameworks, etc.

Pero es igual de importante acatar la disciplina colectiva de desarrollo (tdd, repositorios, agilismo, etc.) y promoverla con las demás partes. Deberán trabajar en equipo (propiedad colectiva del código, no romper la build), responsabilizarse de la calidad de lo que hacen y pedir ayuda si se bloquean. Tendrán que adquirir las habilidades requeridas a medida que avanza el proyecto porque de todo no se puede saber. Tendrán que aprender a no frustrarse por no saber de todo en profundidad porque en cada proyecto aparecen nuevas piezas o versiones nuevas de existentes. También tendrán que procurar entender el negocio que les ocupa y proporcionar valor. Deberán probar bien lo que hacen porque el cliente paga porque se lo hagan bien a la primera, no por arreglárselo después.

Si un junior va a su aire no entrando en la disciplina colectiva, crea parcelas en los proyectos para no trabajar con compañeros, sólo quiere trabajar en lo que le gusta, intenta enchufar siempre lo último que sale (por satisfacción personal), es errático en el producto entregado o no es capaz de auto-formarse y no frustrarse en la inmensidad del conocimiento, tenemos un problema.

Los junior tiene que empezar a convertirse en seniors y lo lógico es contratar gente más junior todavía que los usen de referentes. Si no expones al junior a riesgos no podrá crecer. Los socios tendremos que invertir tiempo con estos junior para que crezcan mientras los senior producen. Si la pirámide creciera los senior se tendría que mover a esta labor de “coaching” o desarrollo interno.

No todos podrán ser “maestros de taller” y se quedarán siempre como “júniors” con habilidades técnicas avanzadas, con valor parcial.

3- Me hace sentir tranquilo:
—————————-
Los proyectos no siempre son ideales:
  • Hay veces que hay muchas partes involucradas con distintos niveles formativos.
  • Hay cliente realmente difíciles que entorpecen más que aportan.
  • Algunos proyectos técnicamente son pésimos y nos llaman para rescatarlos, lo que provoca una gran desmotivacion para un técnico auto-exigente.
  • Nos podemos haber equivocado a la hora de estimar las tareas.
  • También podemos tener personal descentrado por situaciones personales (yo el primero).
  • Los seres humanos no siempre congeniamos..
Es decir, el escenario puede ser complejo.

Si una persona, al primer conato de conflicto, me avisa, puedo hacer de coacher y tratar de ayudarle a guiar la situación externa o interna. El carácter de las personas es muy distinto y hay gente que al primer roce te lo comunica y otra que, se lo caya y, hasta que no estalla (que ya es irremediable) no te enteras. Todos los empleados tienen la obligación de mandar un informe antes de irse el vienes para indicar como se encuentra el proyecto en el que trabajan y como se encuentran ellos personalmente.

Si una persona no percibe la necesidad de comunicar y advertir riesgos, no me hace sentir tranquilo. Si no tiene templanza para manejar las situaciones tensas, tampoco.

Aportarán más valor aquellos técnicos que no esperan a que las situaciones se crispen.

4 – Me ayuda a conservar a los clientes y/o ayuda a captar más:
—————————————————————————–


Un cliente cuesta mucho hacerlo y muy poco perderlo. El roce hace el cariño y es fundamenta compartir tiempo con los clientes estando el máximo de tiempo en sus oficinas respirando su ambiente (que no siempre es el mejor), llamarles por teléfono en vez de escribirles correos, etc.

Si un técnico está deseando salir del cliente, porque en la oficina se encuentra más cómodo, posiblemente favorezca que se pierda ese cliente.

Un técnico tiene que aprender a hacer pre-venta en post-venta. Esto es, intentar dar continuidad a su trabajo en el cliente. Como en nuestra empresa no hay “gerentes” o esta labor la hacen los técnicos o no la hace nadie.

Siempre se pueden sugerir mejoras técnicas y funcionales, eso sí. siempre y cuando se tenga la pre-disposición y los conocimientos. Los senior tendrán más capacidad de abrir más posibles escenarios de colaboración pero los junior también lo pueden/deben hacer.

Si los técnicos sólo piensan en que les concreten su labor, hacerla y marcharse al siguiente trabajo, están restando potencial valor a su tiempo (en una orientación de toda la compañía a cliente).

Los programadores con relevancia en sus comunidades y redes sociales también aportan valor a las organizaciones porque pueden captar la atención de potenciales clientes. Un buen técnico reconocido en la comunidad es mejor activo que uno que sólo es conocido en su empresa.

5 – Genera un ambiente de trabajo agradable a su alrededor.
———————————————————–
La gente, si está cómoda y feliz en su trabajo, con un salario digno, tiene casi todo lo que necesita. El dinero se convierte en un factor fundamental cuando “no llegas a final de mes” o no eres feliz en tu día a día.

Un técnico alegre, entusiasta, etc., a parecido nivel técnico, aporta más valor que uno que no lo es. Así de fácil. En cualquier profesión intelectual el rendimiento va claramente vinculado a la motivación. Quien ayuda a que la motivación sea más alta, tiene mucho ganado.

Conclusiones
————


Creéis que la actitud: déjame en un sólo proyecto, donde lo sepa todo, en proyectos pequeños, empezados de cero, donde demuestre mi heroicidad y con lo que me apetece… ¿proporciona “tanto valor” respecto al compendio de habilidades/comportamientos en contexto enumerados?

Estas habilidades requieren de muchos años de trabajo en equipo y con el objetivo claro. Que una persona sólo las tenga “a su gusto” aporta poco valor colectivo y de homogeneidad de servicio: es que un proyecto requiere de mucha gente.

Cualquier “técnico avanzado”, con la inmensidad de conocimiento que hay en internet, es capaz de resolver en 95% de los problemas técnicos “atómicos” del día a día. Otra cosa es que lo resuelva rápidamente, del mejor modo, elegantemente o sabiendo las consecuencias colaterales… pero lo resuelve.

Si que es verdad que hay excepciones a esto que cuento del valor.. con técnicos en productos específicos, sin tantas habilidades, donde pueden ser muy valorados y pagados, sobre todo cuando el conocimiento es cautivo y no encuentras por internet manuales ni puedes instalar las herramientas: – Gestores de contenidos, herramientas de portal, BPM, ERPs, etc.

Esta demostrado que el 80% de los conductores se consideran mejores que la media, que el 80% de la gente se cree más listo que la media, que el 80% de los programadores se creen mejores profesionales que la media… Hasta que no mires el problema desde el punto de vista de la demanda (ver: ModelaTuMercado) no te irá bien en un sector.

Bueno, como siempre me enrollo en los post, sólo dejo una pregunta al aire ¿de verdad crees que tus criterios de lo que es ser un buen programador corresponden con lo que las empresas necesitan y desean?

Por cierto, no tengo por qué llevar razón ni tienes por qué compartir mis ideas aunque creo el sector sería otro si encontramos a mucha gente que comparta este camino de artesanos y desarrollen las habilidades enumeradas. Repito: el sector, sería otro. A las personas con estas habilidades, si las lucen adecuadamente, les irá siempre bien (de nuevo .. innovación y promoción).

Enlaces de interes: