Programadores: máquinas y operarios
Cuando nos ponemos a pensar en el proceso de producción de software, pocas veces deducimos que desarrollar software tiene etapas muy similares a desarrollar un automóvil, hamburguesas en gran escala, etc. Hablamos básicamente de maquinarias y operarios de las mismas.
He conocido decenas de personas que piensan que los programadores están sobrevalorados, que cobran mucho dinero, y que en realidad son el escalón más bajo de las corporaciones de software. Su indignación pasa al ver casos en los cuales programadores de nivel Sr. alcanzan sueldos que superan a los de un presidente de compañÃas chicas/medianas.
Si tuviéramos que fabricar hamburguesas en masa, necesitarÃa de una picadora de carne con su correspondiente operario, una mezcladora, una maquina que las empaque, y un transporte para poder distribuir. Al analizar la inversión inicial de nuestra fabrica de hamburguesas, y sus costos mensuales, verÃamos que tenemos que comprar maquinaria, y pagar sueldos de operarios, además del mantenimiento que demandaran las maquinas.
El software (incluidas las aplicaciones web) también requiere de un proceso de producción, una inversión inicial, y tiene un costo mensual. Muchos creen que los ordenadores son la “maquinaria”, pero en realidad es simplemente la herramienta.
La maquinaria en el desarrollo de software se encuentra junto con el operario, es decir, el programador es la maquinaria y el operario, todo en uno.
Identificamos como maquinaria un par de factores importantes:
- La experiencia del programador: es fundamental, y no tiene nada que ver con “saber programar”, ya que la experiencia lo que aporta al programador es la capacidad de resolver problemas valiéndose de sus vivencias, y no de su capacidad de razonamiento para poder buscar una solución a partir únicamente del problema.
- Conocimientos adicionales a los académicos o demandados: muchas veces encontramos programadores que en su haber, tienen una baterÃa de conocimientos que exceden a lo que suponemos necesitamos para desarrollar el proyecto, y esto puede ser de gran ayuda ante situaciones que no se tenÃan previstas.
Como todo proceso de producción, la calidad de nuestra maquinaria, materia prima y operarios, dará como resultado la calidad de nuestro producto final.
He visto muchas veces como para proyectos medianos/grandes se recurren a programadores que no cuentan ni con el conocimiento suficiente, ni con la experiencia necesaria. La base de una decisión de ese tipo, simplemente costos, el resultado, un mal producto. Mientras algunas empresas de software sigan tomando como base que le están pagando solamente al operario, y no a la maquinaria, nunca podrán obtener software de calidad, y creo que tenemos varios ejemplos a la vista.

10
Sep
Me parece un punto de vista interesante, a esto se le puede añadir que una maquinaria fÃsica se la necesita tener totalmente terminada y finalizada para su uso, a diferencia del software que se puede utilizar antes de terminarlo y nunca finaliza su producción, ya que siempre se le pueden ir añadiendo funcionalidades,con un costo menor al de reemplazar toda la maquinaria fÃsica por una mas nueva.
La verdad es que trabajamos creando productos no fÃsicos, virtuales, y eso a algunas personas no les parece trabajo.