Software e innovación… innovación y software: ¿existe un proceso?

Reno en la carreteraMe encuentro en la Oulanka Research Station de la Universidad de Oulu en Kuusamo, un lugar perdido de Finlandia, a 25 km del círculo polar. Donde Cristo perdió el gorro, vamos. El sitio es precioso: cientos de lagos, miles de arboles, renos en medio de la carretera y una paz que invita a pensar.

En el marco del proyecto ITEI, subvencionado por la Unión Europea, un puñado de ingenieros, académicos y gente de la empresa estamos buscando desarrollar una metodología y un soporte informático abierto para la gestión de la innovación en el desarrollo de sistemas de software. Hay es nada. De este proyecto deben salir una especie de libro blanco de la innovación en el marco del desarrollo de software (SinnoBok) y el diseño de un ecosistema de software que soporte esta proceso de innovación (CyberRoom).

Mi participación, en representación de Sisteplant, es como empresa que está innovando en el desarrollo de software usando metodologías ágiles. Debo aportar que requisitos tenemos en nuestro proceso de desarrollo e innovación para que sean incorporados como parte del proyecto y actuar como caso de uso de la puesta en marcha de lo que sea que salga del proyecto.

El motivo de este mail, es comentar la esencia del proyecto. ¿Es posible definir un proceso de innovación? ¿Es la innovación algo que se puede materializar en un proceso? ¿Hay una serie de pasos que se pueden dar que faciliten la aparición de productos, servicios o vías de comercialización innovadoras en el marco del desarrollo de software? ¿Existe al menos un conjunto de patrones que podamos detectar y describir?. Yo creo que no. Pero también creo que es un camino que es interesante explorar, sobre todo por que hay mucha gente que cree que si y lógicamente yo puedo estar equivocado (es altamente probable).

Lo que quiero comentar es por que creo que no existe un proceso de innovación definible y repetible (¡como les gustaría a la gente de CMMi esto!). Mis argumentos son los siguientes:

1) No hay dos productos de software iguales, no hay dos proyectos iguales, no hay dos equipos iguales, no hay dos empresas iguales. Si tenemos en cuenta que el marco del desarrollo de software es tan diferente y cambiante, es sumamente difícil encontrar un marco que funcione en todas. Esto ocurre con las metodologías, que para funcionar necesitan un fuerte proceso de ajuste e implantación. Si añadimos a esto, que por su propia naturaleza, una innovación es radicalmente diferente de cualquier otra cosa existente, la cosa se complica aun más.

2) Viendo la historia de las innovaciones recientes: el procesador, el ratón, el compilador, las redes, el ordenador personal, la web, las listas de correo, el chat, las redes sociales, las metodologías ágiles… no hay dos que hayan surgido de una manera similar. Es imposible trazar un patrón. En cada situación se partía de unas condiciones iniciales diferentes, se siguió un proceso diferente, se llegó al final del proceso y se comercializo la idea de manera diferente. Pensad en como surge el concepto de Wiki, por poner un ejemplo, base de algo tan rompedor en la cultura moderna como Wikipedia: Ward Cunningham uno de los padres de los patrones, arto de recibir mails pidiéndole que corrija tal o cual detalle en su catálogo de patrones, decide añadir un simple botón que permita a cualquiera editar el html de la página. Una innovación radical, algo nuevo, que nadie ha hecho antes, que no era especialmente ambicioso, que podría haber concluido en un desastre de gente haciendo el vándalo en su sitio y que acaba cambiando el modelo de enciclopedia que se conocía desde la ilustración francesa. Impresionante. ¿Pero como catalogarlo? ¿Cómo sistematizar los ocurrido para facilitar que surjan nuevas innovaciones?. Imposible.

3) No hay una receta para desarrollar software, menos para desarrollar software innovador. Aunque Joel Spolsky incluso tiene un receta para hacer que tu software sea el número 1 ;).  El desarrollo de software es un arte. Generalmente detrás de cada gran innovación en este campo hay una persona que actual como un gran catalizador, un artista o un grupo de ellos: La WWW y Tim Berners-Lee, Linux y Linnus Torwalds, GNU y Stallman, C++ y Stroustroup, C# y Gunnerson, los patrones y la Gang of Four, Google y Larry Page y Sergei Brin… Ningún proceso garantiza que ese catalizador va a aparecer, más bien al contrario. Parece que la sensación general es que los procesos definidos tienden a encorsetar la creatividad necesaria para innovar. Muchos creen que Microsoft a perdido su capacidad de innovar y que Google la está perdiendo precisamente por esto.

Tom Simpson, ingeniero de IBM y uno de los padres del OS/360 escribió una algo que aplica perfectamente a lo que comento, en un excelente ensayo breve suyo, escrito en 1968, Masterpiece Engineering. Tom escribe la siguiente sátira, que he traducido muy libremente, sobre como un grupo de ingenieros de software estaba buscando los criterios a establecer para diseñar un sistema operativo:

“Estudiando el problema de como lograr establecer el diseño para producir ‘Mona Lisas’ …la Conferencia decidió que se debía establecer un Instituto para trabajar con más detalle sobre los problemas en el campo de la producción de obras maestras. Así que salieron a las calles de Roma y seleccionó unos cuantos conductores de carros, algunos luchadores y otros artesanos y los sometieron durante un período de cinco semanas (a media jornada) a un Curso de creación de obras maestras, y luego todos fueron puestos en una gran habitación y se les solicito que comenzaran con la creación de obras maestras.

Pronto se dieron cuenta de que no estaban consiguiendo los resultados esperados del Instituto, por lo que se trato de equipar a los trabajadores en la producción de obras maestras con algunas herramientas más eficaces para ayudarles a crearlas. Se inventaron cinceles a motor, pistolas de pintura y así sucesivamente, pero todo esto se limito a provocar una protesta ruidosa de los maestros: "Todas estas técnicas se dan en los pintores de técnica descuidada", dijeron.

La producción aún no estaba llegando a niveles satisfactorios por lo que se amplió la gama de técnicas de producción de obras maestras con algunas medidas adicionales. Una idea fue tener un lienzo y que pasase rápidamente de pintor a pintor. Mientras uno estaba aplicando el pincel los demás tenían tiempo para pensar.

El siguiente paso natural a tomar fue, por supuesto, duplicar el número de pintores, pero antes de tomarlo, adoptaron un mecanismo más interesante. Se decidió establecer alguna métrica adecuada de la productividad. Se emplearon dos semanas en el Instituto contando el número de pinceladas por día producidas por un grupo de pintores, y este criterio fue inmediatamente aplicado para calcular valor aportado a la empresa por el resto. Si un pintor fracasaba en lograr sus veinte pinceladas por día sería claro que se trataba de alguien claramente improductivo.

Lamentablemente ninguno de estos avances en el conocimiento parecía tener un impacto real sobre la producción de obras maestras y así, al fin, el grupo decidió que la dificultad básica era claramente un problema de gestión. Uno de los más brillantes estudiantes (con el nombre de Leonardo da Vinci) fue inmediatamente promovido a gerente del proyecto, poniéndolo a cargo de la adquisición de pinturas, lienzos y pinceles para el resto de la organización.”

Evidentemente no lograron producir una obra maestra.

Entiendo que el mensaje puede ser poco esperanzador, que sueno muy pesimista, pero si que es cierto que hay cosas que podemos hacer para mejorar la innovación. Muy generales, pero hay están. Y son precondiciones. Sin estas precondiciones, no surge la innovación. Quizás facilitar la eliminación de estas barreras de entrada a la innovación sea la innovación que debemos esperar de este proyecto. La gente del VTT y de Sirris ha propuesto unas áreas clave de la innovación que ellos han llamado, en un claro reconocimiento de la naturaleza artística del problema, El Arte de…:

… mantenerse enfocado.
… experimentar.
… optimizar el impacto de tus recursos de alto impacto (tus artistitas vamos…).
… abrirse al mundo (openness tiene una traducción difícil…).
… estimular la innovación.
… de mejorar la innovación.
… de la incubación de ideas.
… de la recolección de ideas.
… de la evaluación de ideas.

A mi me suena que Scrum puede dar una respuesta a algunas de estas preguntas 😉 ¿pero realmente si conseguimos responder estas respuesta, estamos consiguiente ser innovadores? No en vano uno de los objetivos de Scrum y de las metodologías en general es ser capaz de incorporar el cambio y la innovaciones que surgen al proceso de desarrollo. Al fin y al cabo: ¿no es toda innovación un proceso de cambio radical?.

Espero que os animéis a dar vuestra opinión, ya que todos los que estáis en el mundo del software sois innovadores por naturaleza. Con cada línea de código que escribís, estáis haciendo algo nuevo. Esto nos diferencia claramente de otras industrias.

¡Un saludo!

18 comentarios en “Software e innovación… innovación y software: ¿existe un proceso?”

  1. Buenos días Rodrigo, en cuanto he leido el artículo he recordado otro post tuyo del pastor y el jefe de proyecto, muchas veces las personas complicamos las cosas buscando un camino a su resolución o mejora, no creo que se pueda hacer un proceso de innovación, igual que no se puede hacer un proceso para triunfar o ser féliz (temática de muchos libros de aereopuertos), lo que si creo que se puede es fomentar el desarrollo de una cultura que premie ser innovador,ser trabajador, ser legal, igual que en España se ha creado una cultura de gasto monetario y ostentación. Quizás analizando cómo surgieron otras épocas como la revolución industrial o la ilustración se encuentre el factor comun.

  2. En cuanto al tema de definir el tema del proceso de innovación, desde luego me cuesta imaginar que pueda ser posible. Creo que un proceso es algo así como un algoritmo de alto nivel, y la mayoría de los algoritmos son codificables, así que… si se puede definir el conjunto de reglas… se podría codificar… luego podríamos tener un programa que genere innovaciones por sí mismo. Desde luego sería genial.
    Lo que no veo es que puedas crear reglas para generar algo que no sabes qué será, o qué quieres que sea.
    Hombre, creo que podría definirse un conjunto de buenas prácticas, pero si intentas crear un molde, seguramente todo lo que salga de él será parecido al molde. Y lo que queremos obtener es precisamente algo distinto, que rompa moldes.

    Vamos, que no lo veo. No obstante, estoy abierto a nuevas ideas.

    En cuanto a lo de la historieta de los creadores de obras de arte, me parece que siempre pasa lo mismo. Yo creo que lo importante es estar pendiente del trabajo que realiza cada uno, y medir su productividad, o su aportación al proyecto no con una regla, sino valorando el conjunto de aportaciones.

    No digo que no se pueda automatizar o sistematizar la manera de medir esto, pero por supuesto no se puede utilizar una cosa sencilla, como el número de líneas de código, incidencias resueltas, o lo que sea.

    Para mí es lo de siempre; puedes tener en el equipo una persona que sea muy creativa, y aporte mucho en la manera en la que se resuelven los problemas, pero que es completamente incompetente si la pones
    a rellenar formularios de Word o a escribir manuales de ayuda. Por el contrario puedes tener gente a la que le encante este tipo de trabajo, le ponga interés y lo haga mejor que nadie.

    Una vez más llego a la misma conclusión; lo importante es que el líder del equipo, se centre en averiguar qué es lo mejor que puede aportar cada uno, y darle su espacio allí donde sea más rentable.

    Creo que el error es tratar a las personas como un conjunto de reglas predecibles, medibles, etc.
    Tampoco digo que no sea así, seguramente con el algoritmo adecuado y la potencia de cálculo
    suficiente se pueda definir la personalidad de un ser humano;)
    Vaya, me imagino poniéndome un casco usb en la entrevista de trabajo, y que el ordenado cruzara mi estructura cerebral con los requisitos del proyecto, y me asignara un rol dentro de él, además variable, porque oye, lo mismo hoy tengo más aptitudes creativas, pero la semana que viene, tras leer un libro que remueve ciertos aspectos de mi personalidad, me siento más líder.

    Me parece que hasta que avancemos lo suficiente en la inteligencia artificial, y lleguemos a un mundo controlado por robots, o desarrollemos el plug-in para visual studio que parsea lo correos electrónicos del cliente con sus requisitos y genera código, no tenemos más remedio que centrarnos en la persona, y esforzarse en la gestión del equipo. Después de todo, como oí una vez decir a Ivar Jacobson (http://es.wikipedia.org/wiki/Ivar_Jacobson), “Quienes desarrollan software son las personas, no las herramientas ni las metodologías. Si no me crees, intenta que una herramienta escriba software por sí misma.”

  3. Umm… gracias por vuestros comentarios. Son muy interesantes. Pero quizás no me expresé bien en el post. Lo que me gustaría saber es que pensáis vosotros, como desarrolladores, que os podría ayudar a ser más innovadores en vuestro trabajo. ¿Qué condiciones son necesarias para que podáis ser innovadores? ¿Qué patrones o características comunes veis en los proyectos innovadores en que participáis o que conoceís?. ¿Qué tipo de software os ayuda a ser más innovadores?. Este tipo de cuestiones.

    No quiero caer en el derrotismo de pensar que como es dificil encontrar un proceso debemos renunciar a buscarlo ¿y sin nos llevamos la sorpresa de descubrir que hay procesos y herramientas que pueden ayudarnos aunque no garanticen que seamos innovadores?.

    ¡Un saludo!

  4. Rodrigo:
    Muchas gracias por compartir estas reflexiones que por un lado podrían parecer pesimistas por lo difícil de encontrar el camino de la innovación, pero que por otro son muy reconfortantes porque los que estáis ahora juntos pensando sobre INNOVACCIÓN seguro tenéis varias características en común:
    – Pasión
    – Maestría en vuestras áreas de conocimiento
    – Experiencia
    – Tozudez
    – Ideas
    Quizás sea difícil encontrar fórmulas máginas, pero seguro que sabéis qué es lo que no conduce a la innovación y qué elementos quizás nos llevan a ella.
    Querer innovar ya es un primer paso que no todos dan y estar dispuestos a recorrer un camino largo y duro muchos menos.
    ¡Suerte!. ¡Estáis innovando!

    Angel

  5. Angel, la verdad es que es otra menera de verlo, mucho más positiva, la que tu planteas. Es cierto que quizás la innovación este precisamente en tratar de buscar ese proceso y esas herramientas.

    Sobre las empresas y universidades que están participando en el proyecto: http://www.itei-itea2.org/consortium.php

    La verdad es que aun estamos en fases tempranas y no se que acciones de divulgación vamos a realizar, pero en próximas fases del proyecto una de la labores que caen en mi parte de resposabilidad es la diseminación. De hecho Sisteplant y yo en consecuencia lideraremos la parte de diseminación de información a nivel español. Cuando tengamos avances claros o foros de discusión públicos, lo informaré a través de mi blog. Gracias por tu interés.

    ¡Un saludo!

  6. La mejor aportación de este tipo de proyectos es determinar las barreras y fomentar su eliminación, y estas son principalmente económicas y burocráticas: si queremos fomentar la innovación hay que facilitar la puesta en marcha o al menos no obstaculizarla. Os recomiendo este post:

    http://www.jesusencinar.com/2009/06/3-ideas-para-incentivar-el-desarrollo-de-empresas-de-tecnologia.html

    En otras épocas un buen apoyo a la innovación fue el mecenazgo, que hoy también existe de alguna forma: business angels.

    Pero dejando aparte a los emprendedores, ¿es posible mejorar la capacidad innovadora de tu equipo? Más allá de facilitar todos los medios (ténicos y de acceso al conocimiento) y retener el talento encontrado, hay un medio que usa la naturaleza con exito:

    Los organismos vivos tienen un medio de aumentar su capacidad innovadora cuando el entorno se vuelve hostil: inhiben los mecanismos de corrección de errores.

  7. Destinar parte de nuestro tiempo productivo a poner sobre la mesa nuevas ideas y trabajar en equipo para desarrollar las más atrayentes.

    Apostar por determinados proyectos de dudosa rentabilidad, ya que habitualmente si no se asegura la rentabilidad los proyectos se abandonan. Muchas de la ideas mas innovadoras surgen de proyectos que fracasan.
    Dar libertad a ciertos individuos para trabajar como se sientan mas cómodos, teletrabajo, horario libre, etc.

    Incentivar a los trabajadores (económicamente, con guarderías en el trabajo, comida y otras facilidades) para que el trabajo no se convierta en un aspecto obligatorio para llegar a fin de mes, eliminando parte de sus problemas cotidianos.

    Eliminar reglas, ciertas reglas muchas veces condicionan la creatividad e innovación.
    Evitar el stress, los tiempos de producción preestablecidos no sirven y solo aumentan el stress de las personas que trabajan con nuevas ideas.

    En resumen eliminar las barreras e incentivar la creatividad, aunque a veces en ciertos individuos condicionados precisamente por estos factores, su creatividad aumenta, pero como tú dices ‘no existen balas de plata’…

    Seguro que hay muchas mas…

    Un saludo.

  8. Creo lo mas importante es tener interes y sentirse identificado con lo que se va a crear, hacer que las personas implicadas siempre esten inquietas con respecto al tema (es como tener hambre) , ademas de tener un buen ambiente de trabajo y un grupo capaz y competitivo.

  9. Ser capaz de juntar al equipo adecuado, por ejemplo, juntar a un grupo de apasionados por la tecnología que son capaces de trabajar mientras cantan cancioncillas asbsurdas que les hacen disfrutar de su trabajo, siendo éstos capaces de producir mucho más que otros “más formales y trajeados”.

  10. @Fernando: Gracias por el link. Es interesante. La verdad es que no el marco fiscal y ni la cultura empresarial de este pais facilitan la innovación. Las pocas ayudas que existen, acaban en manos de las grandes empresas que pueden poner en marcha la maquinaría de gestionar burocrácia que exige el pedir una ayuda y luego justificar su uso.

    @Angel: Apunto la idea de la cuenta en Twitter. Lo propondré en el próximo meeting.

    @Juan: Gracias por las ideas, las apunto. Hay dos vertienes en el proyecto en la parte de SinnoBok, una más ágil y otra más CMM… ya veo por cúal te inclinarías tu 😉

    @Camilo e Ibon: Ambos ponéis el peso en que la clave son las personas, algo que yo comparto, el problema es que es casi imposible sacar conclusiones sobre las personas…

    @Ibon: Que tiempos los de las cancioncitas… lo que aprendimos, y lo bien que lo pasamos… eso si: ¿tu en serio crees que alguien de los de traje percibio nuestro trabajo como innovador? ¿Crees que alguien esos lo percibio ni siquiera como bueno?. Tu has hecho un gran trabajo en tu último proyecto en esa empresa, antes de irte, innovador en lo relativo a como se gestionan allí los proyectos ¿crees que alguien que no haya estado en el equipo o que como yo haya trabajo en el proyecto lo ha apreciado?… Quizás lo primero de todo sea aprender a reconocer a quien innova ¿no?.

  11. No creo que exista ninguna receta para crear software innovador.
    Creo que para que un proyecto sea innovador, y triunfe, aparte de tener un buen equipo, incentivado, etc… Creo que el factor más importante para triunfar, es tener “visión de futuro”. Tenemos que adelantarnos a las necesidades del futuro. Un ejemplo muy claro, en pocos años, la industria de los vehículos eléctricos inundarán nuestras calles, con sistemas de recarga, talleres especiales, etc,etc desde hoy tenemos que estar pensando en las necesidades que habrá en el futuro, y desde luego que en el ámbito del software las habrá.

  12. Leyendo el comentario de Ángel me surge una duda ¿esas caracteristicas son de una persona o de un equipo?

    Lo que quiero decir, es que, desde mi punto de vista, hay gente que con poca experiencia puede tener una idea que revolucione un campo precisamente por esa carencia de experiencia previa. Evidentemente, desarrollarla y conseguir que sea viable requeriría de experiencia y maestría en las áreas de conocimiento necesarias. A parte de una saludable dosis de tozudez y pasión para llevarlo a cabo…

  13. Hola Rodrigo,

    yo creo que algo importante para incentivar la innovacion es la “cultura del fracaso”, por llamarle de alguna manera.

    Un dia fui a una charla de emprendedores y el ponente comento que en Espanya (lo siento, no tengo enye en este teclado 😛 ) no habia tal cultura. Comentaba que en Estados Unidos la media de la gente que tenia un proyecto que funcionaba era tener seis anteriormente que no lo habian hecho. Creo que esto en nuestro pais es inconcebible.

    Por mi pequenya experiencia como emprendedor hace unos quantos anyos (quiza ha cambiado el asunto desde entonces, aunque lo dudo) para lograr que un Business Angel o similar te haga caso, es proponiendole un plan de empresa que claramente se vea que sera rentable. No pueden existir proyectos “locos” que no parezcan rentables pero que al final si que lo sean?

    Saludos,

    Vicenç

  14. Hola todos:
    Si la innovación es idear algo que rompa moldes, pues creo que el empleo de moldes contradice el concepto, creo que el secreto de la innovación si es que lo hay, es la anticipación al tiempo, es decir, visionar algo que en el futuro pueda ser apreciado por personas, claro que es más fácil decirlo que hacerlo, sin embargo creo que en la observación de los grupos sociales a nivel mundial se pueden encontrar algunas luces que nos puedan guiar hacia el camino de encontrar algo que todos quisieran tener o acceder pero que no existe.

    Por ejemplo las wikis o las redes sociales, nadie pensó que existieran o que alguien las necesitaba, pero ahí están y son muy populares hoy en día.

    Gracias.

Deja un comentario

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