¿Es el desarrollo de software un proceso industrial?

Como cada mes desde ya hace un tiempo me llega la revista DotNetMania, a cual estoy subscrito. Es una revista que me gusta especialmente por la calidad de sus artículos y por la capacidad técnica de las personas que escriben en ella.


Como todos los meses, esta semana he recibido la subscripción del mes de febrero. La he abierto con gran interés para conocer los contenidos de este mes pero en esta ocasión lo que más me ha llamado la atención no ha sido ningún artículo sino uno de los anuncios que ella se hace….


En la última página de la revista aparece un anuncia de Alhambra Eidos; El lema principal de la publicidad es: Apostamos por la industrialización del software“. Dentro de la misma publicidad comentan como dentro de esta empresa realizan un auténtico proceso de fabricación gracias a sus certificaciones en ISO 9001 y CMMI, que les garantiza unos niveles excelentes de calidad…Alhambra-Eidos tiene un método industrial de construcción del software que es gestionada con una estricta planificación, lo que parece que les garantiza el éxito.


Otro tema que me parece gracioso del anuncio es el dibujo que con él se incluye. El idioma representa una especie de cadena de montaje con diferentes operarios trabajando sobre ella y cada uno haciendo su parte de trabajo….haciendo software en cadena.


Justo el día 14 de febrero celebramos un evento en Artalde.NET sobre las metodologías de desarrollo. Es una pena que el autor de esta publicidad no haya acudido al evento, porque hubiera sido un evento aún más entretenido de lo que fue.


Pensar que la creación de software es cómo la creación es cualquier otro producto industrial me parece un tremendo error. Hacer software no es cómo hacer coches y no cómo hacer zapatos. No me imagino a una empresa de software haciendo un producto dentro de una cadena de montaje…1 + 2 no siempre no 3 en este mundo.


Creer que los procesos de software son universales y que son totalmente reproducibles independientemente del cliente o proyecto que hagas es uno de los errores más grandes que se pueden cometer pero esta forma de pensar es más habitual de lo que gustaría. Señores, hacer software no es cómo hacer un puente, no es cómo hacer un coche…analizad los últimos proyectos en los que habéis intervenido y pensad si realmente todos son iguales y si a través de procedimientos y reglas universales los prodrías sacar adelante con mejor calidad.


Sobre el tema de las certificaciones y el valor de las mismas no creo que merezca la pena volver sobre eso. Mucho se ha hablado sobre la validez de las mismas y cómo realmente tener una certificación no significa nada. Por ejemplo, puedes tener una certificación CMMI y tener cientos y cientos de páginas con tus requisitos pero que realmente tu captura de requisitos sea malísima…tener miles de análisis y diseños explicando tu aplicación no significa nada si no la tienes actualizadas y señores, seamos realista, esta documentación nunca está actualizada….


El dibujo de la publicidad también me hace pensar sobre lo fácil que sería tener un pool de programadores….si todo esta procedimento, si todos los procesos son claros y útiles, los programadores podrían ser cómo piezas intercambiables, ya que el proceso industrializado lo permite; peones/operarios del software.. 


El hecho de que “tengas” todo procedimentado y escrito en infumables documentos, no significa que éstos sean conocidos por el personal de los grupos de desarrollo ni que éstos sigan estos procedimientos. Claro, lo primero que se hace siempre que se llega a un nuevo trabajo es pedir los procedimientos, estudiarlos y hasta que éstos no los tienes grabados en la memoria no empiezar a hacer nada…


También me gustaría preguntarles si los recursos con lo que cuentan son también como piezas industriales, como máquinas que hay que engrasar de vez en cuando. Y sí, cómo veréis he hablado de recursos y no de personas, porque con tanta certificación, industrialización y procedimientos no sé si ha sitio para pensar en esto del desarrollo de software el factor clave no deja de ser la persona…sí, la persona. Por cierto, ¿dónde encaja en esa método industrial el talento, la iniciativa o la creatividad?


Ya por último, y tampoco por alargarme mucho más, (que podría), sólo quería puntualizar que cada empresa es libre de hacer lo que quiera y hacer la publicidad de la mejor manera que considere para conseguir sus clientes…..tengo que reconocer que esto es un negocio y que la idea que se transmite puede servir para llegar o convencer a algunas clientes, aunque la realidad pueda ser otra. Por mi parte, considero que el contenido de esta publicidad plasma unas ideas sobre el desarrollo de software bastante discutibles y en mi opinión personal, erróneas y posiblemente, perjudiciales.

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

10 comentarios en “¿Es el desarrollo de software un proceso industrial?”

  1. No pasó hace un año algo similar con Alhambra Eidos que comentó Rodigro? Luego salieron los “responsables” y cambiaron el anuncio? Pues ahora pasará algo similar. Ahora si, el que se lo crea la segunda vez, pues ni comentario, porque obviamente la empresa demuestra lo que cree y piensa.

    Lamentablmente y muy a pesar nuestro además, y de lo que comentas, por muy buen equipo que tengas, hay dos formas de conseguir esos proyectos “grandes” en este pais: uno es por enchufe, y el otro es vender la moto a los “empresarios” y a las administraciones públicas. Y estos dos solamente entienden de certificaciones ISO , etc..

    Completamente de acuerdo en lo que dices, pero la culpa no es solamente de Alhambra-Eidos, es de todos, incluyéndome a mí.

  2. Anonimo tiene razón, esta discusión es un calco de otra que trató Rodrigo en su blog con la misma empresa.

    No diré mucho respecto a dicha empresa porque yo trabajé allí y no tengo nada en contra con ella, pero sí hablaré de lo que es el pensar general de muchas empresas.

    Las factorías de Software se utilizan para abaratar costes y sacar un mayor beneficio empresarial del proyecto que se aborda. Esto que no le extrañe a nadie, abaratar costes es lo que cualquier empresa busca y me parece loable y justo.

    Ahora bien, la fórmula del líquido rejuvenecedor no existe, pero hay empresas y personas que piensan que pueden seguir vendiendo crecepelos a otras empresas y personas. Hay quienes se van contentos con su tarrito a casa pensando en la fabulosa compra que han hecho y que incluso después de haberse tomado un sorbito piensan incluso que el pelo les ha crecido… otros, después de comprar y probar el tarrito lo abren y lo tiran por el retrete, y otros, simplemente no se creen estas cosas.

    En sí como bien dices Ibón, cada uno entiende las cosas a “su manera”.

    Diré que coincido como bien sabéis mucho con tus puntos de vista, pero es difícil encajarlo hoy como dice Anonimo porque la culpa es de todos.

    Lo que sí veo claro, es que en esta “cadena de montaje”, se ve la calidad por estar certificados y tener todo procedimentado, pero… ¿hace falta procedimentar todo por apretar tuercas, no pensar y ejecutar?, ¿es mejor Software el que se desarrolla bajo las pautas de tener todo encorsetado?.

    A favor del anuncio diré que en mi opinión, tener todo fijo e incorsetado ayuda teóricamente a que no haya desviaciones. Todos sabemos que eso no es exactamente así, pero muchos lo piensan y ante eso no se puede discutir, es un poco psicológico, o crees que el crecepelo es la leche, o piensas que es el timo de la estampita.

    Por otro lado, dentro del desarrollo del Software, puede reutilizarse código para realizar diferentes tareas. Crear un Framework interno como sugerimos e iniciamos algunos en aquella empresa a modo de procesos reutilizables es una posible solución, sin embargo, no siempre cualquier “cosa” es reutilizable, por lo que una vez más, vuelve ante nosotros la necesidad de que existan tareas que deberán ser realizadas por las personas.

    Creatividad, iniciativa, decisión, reflexión, ejecución, etc… son palabras que en una factoría de Software son difíciles de realizar y más aún en escenarios focalizados en la rigidez vía certificados y similares.

    Como ves, coincido contigo en todo Ibón, pero quería dar algunos puntos de vista adicionales que no es que justifiquen el anuncio y lo que comentas, pero que sí traten otros posibles puntos de vista que nos permita pensar más.

  3. ODIO el concepto de las “Software factory”. El desarrollo de software debe ser un proceso creativo usando el conocimiento, la tecnica y la experiencia como herramientas. Lo comenté una vez en mi blog http://www.vtortola.net/post/Los-pools-de-programadores.aspx

    Sobre las certificaciones… que decir… xD yo tengo varias y no creo que me conviertan en mejor profesional por el hecho de tenerlas, aunque si las he usado como “plan de estudios”, pero lo cierto es que las tengo porque parece ser que hay empresas que las valoran.

    Un saludo.

  4. Puestos a sacar al aire nuestros pensamientos más íntimos, yo también ODIO.
    No odio al pool de programadores, en mi multinacional paso su época sin pena ni gloria y dejó de existir rápidamente, casi sin darnos cuenta. Entonces teníamos que sacar adelante proyectos informáticos y eso nos salvó.
    ODIO al CMM y al CMMi, que permite eliminar la inteligencia de los grupos que trabajan bien, sometiéndolos a un corsé de montañas de papel (documentos informáticos Word o Excel) que los iguala en incompetencia a los grupos más mediocres de la empresa. Será que ya no tenemos necesidad de desarrollar ningún proyecto.
    Pero sobre todo ODIO a los presuntos profesionales informáticos contentos por tener un papel donde indica que son capaces de hacer bien las cosas, pero que no tienen capacidad de sacar ningún proyecto adelante.
    Ojo, me estoy refiriendo a los de mi empresa. Supongo que un buen profesional será capaz de hacer su trabajo bien con CMMi implantado o con otra metodología más ágil.
    Por cierto, en la pared de los servicios de mi planta, hay un magnífico papel que indica si se han limpiado o no. Sirve a los que no ven o los que no pueden oler para saber si los servicios han sido limpiados. Parodiando cierta publicidad nefasta, yo no soy tonto y ya me doy cuenta de si los servicios están limpios o no. El papel ya os podéis imaginar a qué uso estará designado en caso de necesidad.

  5. Yo sigo pensando que realizar software no es como realizar coches, es como realizar la planta que hará los coches, y eso no se puede automatizar. Puedes tener experiencia y unas pautas, metodos y demás, pero cada instalación es un mundo. El Software, igual, y quien no se de cuenta a tiempo, perderá.

  6. Proceso industrial????jajajajajaja, yo he laborado dentro del depto. de desarrollo de varias empresas y dependencias de gobierno, y eso de industrializado no se puede ni ellos conocen sus politicas de ventas o de que manera se realizan sus procesos, asi que lo de realizar una produccion(desarrollo) en cadena es imposible.

  7. Creo que todos concordamos en un punto principal. “El proceso de software como proceso industrial es utópico”, y hay una frase en el post que refleja ello: “analizad los últimos proyectos en los que habéis intervenido y pensad si realmente todos son iguales y si a través de procedimientos y reglas universales los prodrías sacar adelante con mejor calidad”.

    Por otro lado, la publicidad es engañosa en muchos casos, el error en esa publicidad es haberla puesto en una revista que es vista por gente metida en el tema, quizá esa publicidad, dirigida a los administrativos de áreas que no son de software lo hubieran creído.

    Saludos.

  8. Estos comentarios estan todos equivicados porque parte de una premisa erronea que es pensar que industria es sinonimo de repeticion en la producción. Estudien muchachos….

  9. Por partes:

    De todo un poco y no todo es lo que parece. Cuando se habla de proceso industrial en desarrollo software, no se refiere a una cadena de montaje de piezas como pueda ser una fábrica de coches, en eso el anuncio puede haber pecado de simplista, pero eso es marketing y trata de hacer ver a personas profanas en el desarrollo de software un simil lo más claro y entendible posible para ellos.

    En realidad la industrialización del desarrollo de software se refiere a la estandarización de los procesos que van implícitos en ese desarrollo, sus fases, el cumplimiento de las normas necesarias para garantizar que el producto cumple los requisitos funcionales mínimos, la documentación necesaria y mínima para que la siguiente fase pueda llevarse a cabo minimizando el impacto de volver a repetir fases anteriores. Un control de calidad, mediante pruebas unitarias en diferentes fases, pruebas funcionales, y pruebas de estress, etc etc. Puesta en marcha del producto en una fase de integración previa para ver que todas las piezas encajan, puesta en pre-producción y pruebas reales y por último puesta en producción.

    Todo eso se interpreta como un proceso industrial y tiene sus estándares que deben cumplirse. Pensar en el arte de programar y el lado femenino que todos tengamos a la hora de ponernos a realizar análisis y desarrollo es APARTE de ese proceso, y pasa a formar parte del resultado cuando se entrega el producto. Cuando en un análisis te obligan a que tenga unos capítulos determinados describiendo lo que deben contener, te ciñes a esos capítulos y luego cuando redactas ya vas ampliando esa información mínima con lo que creas necesario, pero al menos y gracias a esa industrialización te están obligando a cumplir unos mínimos.

    Que yo sepa todos utilizamos librerías generadas por otras personas o empresas, y en los casos más generales si ponemos dos trozos de código picados por dos personas distintas veremos que coinciden en un 90% cuando se trata de utilizar esas librerías. Miradlo desde ese punto de vista, cuando uno usa un componente común, probado, testado, integrado ya en una solución ya implantada, está haciendo lo mismo que el fabricante de un coche que compra ruedas de marca X porque se adaptan perfectamente a su vehículo.

    Las factorías de software, y lo digo por propia experiencia, se dedican a hacer principalmente librerías y pequeñas porciones de aplicaciones bajo unos requerimientos mínimos y con una arquitectura de uso obligado. Si ademas se cuenta con un framework propio y probado eso se simplifica hasta el punto de reutilizar componentes previos y adaptandolos a las necesidades del proyecto con cambios mínimos, a eso se le llama genericidad y si un hay un buen análisis y conocimiento del framework y de la arquitectura es muy fácil llevarlo a cabo. Cuando te compras un coche quieres que le pongan cristales tintados, pintura metalizada, llantas de 234234234234 pulgadas para romper los quitamiedos de la autopista. Pero partes siempre de una base común.

    La realidad por desgracia en muchos casos es otra muy distinta, pero eso es en primer lugar por culpa de la falta de documentos legales que obliguen tanto a una parte como a otra a cumplir los requisitos técnicos y funcionales del proyecto. Hoy me llega un cliente y quiere que su aplicación a 3 días de entregar le haga café además de té, si no hay documento legal y vinculante por ambas partes con unas especificaciones cerradas entonces olvidaros de proceso industrial ni leches en vinagre.

    Un saludete

  10. Me gustaria, con toda humildad, comentarte la existencia de un nuevo sitio web para la relación entre profesionales del sector de las Tecnologías y las empresas con objeto de facilitar relaciones de negocio.
    Si te hemos hecho perder el tiempo, nuestras disculpas por adelantado.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *