20110419-134915.jpg

Recientemente, leí un post que hacia una analogía del panorama del desarrollo en España. ¿Por qué el desarrollador no es la estrella? En él, se hacia una comparativa entre España y otros países (principalmente Estados Unidos).

Hollywood versus Factoría

En el país americano se comparaba la industria del software con la del cine. Allí el que trabaja a pie de obra, el programador, es la estrella y el mejor pagado, de la misma manera que lo son los actores en un película.
Sin embargo, en España, la situación se asemeja más a la de una fabrica de coches, el que trabaja a pie de obra, el que junta las piezas para crear un automóvil, el operario, es el que menos cobra y el peor considerado.
¿Por que esa diferencia? Sin duda es un poco difícil de entender y más de explicar. Creo que es de sentido común creer que un programador muy cualificado, altamente motivado y muy bien pagado es mucho más productivo que un grupo de programadores junior, sin experiencia y sin la cualificación necesaria.
Esta claro que en España se prima más la cantidad que la calidad. ¿Es ese el modelo que queremos? ¿Donde está entonces la sociedad del conocimiento y los trabajadores que la tienen que hacer posible?
Todo este modelo de desarrollo en España impacta profundamente en la TI y sobre todo en lo que se refiere al desarrollo de aplicaciones de negocio. Y desde el punto de vista de un Arquitecto TI, que tiene que definir la arquitectura de desarrollo sobre la cual los programadores tienen que “armar” sus aplicaciones ya que si nos piden que nuestros usuarios (los programadores) sean operarios sin cualificar, debemos rebajar los skills necesarios para fabricar aplicaciones al mínimo. De la misma manera que un operario de una factoría automovilística no conoce los misterios de la combustión interna en un motor diesel, los programadores no necesitarían conocer los misterios de SOA, bases de datos, algoritmos de programación, etc.

Y en esta situación ¿Que arquitectura se debe hacer entonces?

Lo primero es reconocer la realidad y enfocarnos a nuestro “público objetivo”, esto es, personas con poca experiencia y poca cualificación. Y para ello tenemos que desoír los “cantos de sirenas” que provienen de Estados Unidos ya que en muchas ocasiones gran parte de las tecnologías, nuevas maneras de fabricar software, lenguajes, etc. están enfocadas a su “modelo de Hollywood” no a nuestro modelo “de factoría”.
Como creo que podemos afirmar que la complejidad del desarrollo de una aplicación se mantiene constante, la única solución pasa por ocultar esta complejidad a los desarrolladores. Pero esta complejidad no desaparece, simplemente cambia de lugar. Pasa a la Arquitectura y al framework de desarrollo que se pone a disposición desde el área de Arquitectura a los desarrolladores.

El problema de los estándares

Esto nos lleva a otra reflexión. Los estándares actuales de desarrollo de aplicaciones web (y hablo de la plataforma Java que es la que conozco) es tremendamente compleja y poco productiva. Por lo tanto, no podemos confiar únicamente en su uso para el desarrollo.
Por otra parte, se supone que estos estándares están al alcance de cualquiera (con internet esto es un hecho), y que todo el mundo puede aprenderlos. Por desgracia que estén al alcance de todo el mundo no significa que sean conocidos. Para ello se necesita una cualificación que muchas veces no se tiene.
¿Que alternativa nos queda entonces? Pues yo veo únicamente dos:

  1. O fabricamos un recubrimiento propietario de los estándares que sea muy fácil y productivo
  2. O creamos herramientas generadoras de código que sean capaces de “fabricar” una gran parte del código de la aplicación

El problema del aburrimiento

Esto nos lleva a otro problema, los programadores que tienen algún interés e inquietud, se verán frustrados e incluso aburridos y desmoronados en un usar una tecnología que para ellos no ofrece ningún reto ni motivación, de la misma manera que un operario de una fabrica se puede desmotivar si durante 8 horas se dedica a apretar un tornillo del motor de un coche (ver la película Tiempos Modernos del genial Charles Chaplin).

Conclusión

¿Que hacemos entonces?:

  1. Tecnología propietaria que oculte los estándares
  2. Generadores de código
  3. Pensar que el usuario de nuestro producto puede ser una persona con poca experiencia y conocimientos técnicos
  4. Pasar del programador al analista técnico
Comparte esta entrada:
Share