Identidad de diseño y enfoque de ingeniería de software de Interligare como vector estratégico del cambio organizacional.
En los muchos años que he dedicado al diseño y desarrollo de tecnologías y aplicaciones software he podido percibir con claridad los beneficios y los problemas de estos sistemas inherentemente complejos. En mis investigaciones sobre este tipo de sistemas, su predictibilidad de comportamiento juega un papel fundamental como objetivo de estudio junto los sistemas socio-técnicos y los ecosistemas biológicos.
Recuerdo con nostalgia como con doce años me encontré en mi mesa un computador personal que mi madre con gran sacrificio me había comprado a plazos no sin antes insistirle mucho. Ella, que siempre ha tenido una intuición especial entendió que podía ser un elemento fundamental para mi desarrollo y mi futuro, desde luego no se equivocó. Por diversas circunstancias y básicamente por mi edad he podido ser espectador privilegiado de la revolución del software y conocer de cerca e incluso granjearme la amistad de algunos de esos pioneros como Bill Atchison, Bertran Meyer, Grady Booch y otros grandes maestros, todavía conservo y uso la regla que me regalo Booch cuando trajimos a España la tecnología de Rational Rose, el primer CASE orientado a objetos, la primera conferencia mundial de la OMG que se celebró en Boston en el 93 y donde pude percibir la revolución que se avecinaba, ,la primera web de comercio electrónico que creó mi equipo en 1994 y que se llamaba “comprando en España” desarrollada en VRML, la oportunidad de haberme hecho rico en aquel momento donde tenía en mis manos, conocimientos, equipos e ideas pero no tenía ni seguridad en mi mismo ni la creencia en que pudiera ser posible engañar a la gente de esa manera en que se engañó en la llamada burbuja de las punto.com (engendró unos jóvenes talentosos pervertidos y echados a perder por la posibilidad del pelotazo tecnológico), el primer proyecto nacional de software factory donde pude participar incorporando el concepto y los procesos básicos de reusabilidad de software como elemento básico a la hora de definir y desarrollar código productivo, etc.
Hasta hace muy poco tiempo el diseño de software era casi un eufemismo y todavía en gran medida lo es y básicamente la mayoría de las organizaciones siguen planificando y codificando de forma deslavazada, eso con mejores herramientas, lenguajes y sin restricciones de memoria, almacenamiento y tiempo de ejecución, estas últimas características han relajado a mi juicio el proceso de desarrollo y testeo del software, notándose una disminución de la robustez y la fiabilidad acentuada por las presiones de un ”mercado concurrente” (muchos oferentes/demandantes) altamente competitivo.
Cuando emprendí el proyecto Epistemos encaminado a definir la inteligencia como disciplina y a diseñar y desarrollar conceptos, modelos y sistemas de inteligencia, la revolución del software estaba culminada y era ya un elemento vital vertebrador y conductor de la sociedad de la información, por mi dilatada experiencia en este campo y por circunstancias menos nobles entendí que al inicio de Interligare lo importante era sacar al mercado una arquitectura IT de Inteligencia muy básica (aunque sigue siendo la más completa y coherente del mercado) llamada nowIS 5.1 IT System como producto esencial a comercializar, esta arquitectura y la solución respectiva estaban basadas en la integración de tecnologías consolidadas y en el desarrollo de conectores y funcionalidades añadidas con un nivel de integración medio desde el punto de vista de la administración del sistema y de la percepción del usuario.
Esta experiencia nos hizo comprobar que las renombradas y costosas tecnologías fundamentalmente norteamericanas adolecían de una falta de solvencia funcional y de una imprevisibilidad acerca de su rango de funcionamiento óptimo verdaderamente alarmantes, en este mismo sentido también denotaban falta de planteamientos de diseño y por tanto de planes y horizontes de evolución serios y verosímiles. A partir de ese momento inicié un proceso de reflexión y autoricé unas vías de experimentación para comprobar nuestra capacidad de desarrollar software de mayor calidad, todo ello sin un planteamiento exhaustivo y profesionalizado a la hora de desarrollar el software y utilizando recursos humanos con poca o ninguna experiencia en el desarrollo de software profesional, esta experiencia que culminó a principios de este año obtuvo resultados sorprendentes y pese a la mala calidad del proceso de desarrollo comprobé que con un enfoque de innovación e ingeniería de software serio y un planteamiento basado en unas especificaciones de un diseño consistente, la posibilidad y el coste de desarrollar software de calidad en un tiempo razonable es mucho mayor que en tiempos pretéritos, esto me llevó a redefinir y reestructurar el área de desarrollo de software de la compañía hasta componer un equipo de élite de nivel mundial en los próximos años.
En este momento estamos creando software sofisticado de soporte a nuestros sistemas socio-técnicos de Inteligencia, software que además tiene multitud de aplicaciones en el mercado informático y por si solos pueden ser tratados como elementos de negocio con estrategias diferenciadas. Por otro lado estamos en el proceso de creación de una identidad propia en el diseño y desarrollo de software que nos permitirá consolidarnos como líderes en este campo junto a nuestros sistemas socio-técnicos estratégicos expresión suprema en el diseño de sistemas complejos, dicha identidad tiene sus bases en los trabajos de Alan Cooper y de otros adelantados del diseño del software, así pues las características básicas que perseguimos incorporar en los sistemas software que desarrollamos son las siguientes:
En primer lugar cantamos el "mea culpa" de haber contribuido inicialmente, al igual que el 99% de las empresas tecnológicas actuales, a desarrollar software de mala calidad, es decir software que se OLVIDA de la información que tiene y de las preferencias del usuario recogidas en su interacción con el mismo, software que es FLOJO y que no soporta ni se queja de malas configuraciones, usos no establecidos a priori, cambios en el hardware que lo soporta y que sufre desfallecimientos prolongados sin previo aviso, software que es IRRESPONSABLE y PELIGROSO y que nos hace dudar cuando pone cuadros de diálogo donde nos dice si estamos seguros y nos traslada la responsabilidad ineludible de salvaguardar la información sea cual sea la circunstancia y por si fuera poco coloca palancas de eyección que nos saca del sistema sin previo aviso en los sitios más insospechados, software que es AVARO con la información deglutiendo sin medida la misma y sin informarnos de la utilidad que nos produce dicho consumo y si es o no efectivo, software que es AUTISTA en su comportamiento ignorando la necesidad de comunicarse permanentemente con el usuario y de contarles con claridad que está pensando o mejor dicho en que está trabajando y cuando finalizara su tarea y nos atenderá como es debido y finalmente, software que es INFLEXIBLE E INADAPTADO y es incapaz de ponderar sus comportamientos en función de los otros softwares con quien convive y con las circunstancias y prioridades de los usuarios que atiende.
En segundo lugar, hacemos la declaración firme de intenciones de caminar de forma progresiva a un software que se comporte de las siguientes maneras muy bien definidas por el maestro Cooper y que yo me tomo la libertad de interpretar en algún caso:
etc.
Finalmente, además de otros elementos antes mencionados debemos convertir a los programadores (Homo lógicos) en diseñadores de software (Homo Sapiens), esto significa que deben primero pensar en que deben hacer, para quien lo hacen y después en cómo deben hacerlo y que las capacidades del usuario necesarias para operar el software no sean inversamente proporcionales a las capacidades de diseñar software libre de fricción cognitiva, es decir, fácil de usar. En este sentido, JMJLab está definiendo los pasos necesarios para el diseño y la supervisión de los procesos de desarrollo que desemboquen en software de calidad y nuestros equipos de desarrollo de Interligare están firmemente comprometidos con estos conceptos y con las necesidades de mejora continua en los procesos de entendimiento del usuario y en los procesos de ingeniería del software perfectamente integrado y en interacción constante con los diseñadores.
Recuerdo con nostalgia como con doce años me encontré en mi mesa un computador personal que mi madre con gran sacrificio me había comprado a plazos no sin antes insistirle mucho. Ella, que siempre ha tenido una intuición especial entendió que podía ser un elemento fundamental para mi desarrollo y mi futuro, desde luego no se equivocó. Por diversas circunstancias y básicamente por mi edad he podido ser espectador privilegiado de la revolución del software y conocer de cerca e incluso granjearme la amistad de algunos de esos pioneros como Bill Atchison, Bertran Meyer, Grady Booch y otros grandes maestros, todavía conservo y uso la regla que me regalo Booch cuando trajimos a España la tecnología de Rational Rose, el primer CASE orientado a objetos, la primera conferencia mundial de la OMG que se celebró en Boston en el 93 y donde pude percibir la revolución que se avecinaba, ,la primera web de comercio electrónico que creó mi equipo en 1994 y que se llamaba “comprando en España” desarrollada en VRML, la oportunidad de haberme hecho rico en aquel momento donde tenía en mis manos, conocimientos, equipos e ideas pero no tenía ni seguridad en mi mismo ni la creencia en que pudiera ser posible engañar a la gente de esa manera en que se engañó en la llamada burbuja de las punto.com (engendró unos jóvenes talentosos pervertidos y echados a perder por la posibilidad del pelotazo tecnológico), el primer proyecto nacional de software factory donde pude participar incorporando el concepto y los procesos básicos de reusabilidad de software como elemento básico a la hora de definir y desarrollar código productivo, etc.
Hasta hace muy poco tiempo el diseño de software era casi un eufemismo y todavía en gran medida lo es y básicamente la mayoría de las organizaciones siguen planificando y codificando de forma deslavazada, eso con mejores herramientas, lenguajes y sin restricciones de memoria, almacenamiento y tiempo de ejecución, estas últimas características han relajado a mi juicio el proceso de desarrollo y testeo del software, notándose una disminución de la robustez y la fiabilidad acentuada por las presiones de un ”mercado concurrente” (muchos oferentes/demandantes) altamente competitivo.
Cuando emprendí el proyecto Epistemos encaminado a definir la inteligencia como disciplina y a diseñar y desarrollar conceptos, modelos y sistemas de inteligencia, la revolución del software estaba culminada y era ya un elemento vital vertebrador y conductor de la sociedad de la información, por mi dilatada experiencia en este campo y por circunstancias menos nobles entendí que al inicio de Interligare lo importante era sacar al mercado una arquitectura IT de Inteligencia muy básica (aunque sigue siendo la más completa y coherente del mercado) llamada nowIS 5.1 IT System como producto esencial a comercializar, esta arquitectura y la solución respectiva estaban basadas en la integración de tecnologías consolidadas y en el desarrollo de conectores y funcionalidades añadidas con un nivel de integración medio desde el punto de vista de la administración del sistema y de la percepción del usuario.
Esta experiencia nos hizo comprobar que las renombradas y costosas tecnologías fundamentalmente norteamericanas adolecían de una falta de solvencia funcional y de una imprevisibilidad acerca de su rango de funcionamiento óptimo verdaderamente alarmantes, en este mismo sentido también denotaban falta de planteamientos de diseño y por tanto de planes y horizontes de evolución serios y verosímiles. A partir de ese momento inicié un proceso de reflexión y autoricé unas vías de experimentación para comprobar nuestra capacidad de desarrollar software de mayor calidad, todo ello sin un planteamiento exhaustivo y profesionalizado a la hora de desarrollar el software y utilizando recursos humanos con poca o ninguna experiencia en el desarrollo de software profesional, esta experiencia que culminó a principios de este año obtuvo resultados sorprendentes y pese a la mala calidad del proceso de desarrollo comprobé que con un enfoque de innovación e ingeniería de software serio y un planteamiento basado en unas especificaciones de un diseño consistente, la posibilidad y el coste de desarrollar software de calidad en un tiempo razonable es mucho mayor que en tiempos pretéritos, esto me llevó a redefinir y reestructurar el área de desarrollo de software de la compañía hasta componer un equipo de élite de nivel mundial en los próximos años.
En este momento estamos creando software sofisticado de soporte a nuestros sistemas socio-técnicos de Inteligencia, software que además tiene multitud de aplicaciones en el mercado informático y por si solos pueden ser tratados como elementos de negocio con estrategias diferenciadas. Por otro lado estamos en el proceso de creación de una identidad propia en el diseño y desarrollo de software que nos permitirá consolidarnos como líderes en este campo junto a nuestros sistemas socio-técnicos estratégicos expresión suprema en el diseño de sistemas complejos, dicha identidad tiene sus bases en los trabajos de Alan Cooper y de otros adelantados del diseño del software, así pues las características básicas que perseguimos incorporar en los sistemas software que desarrollamos son las siguientes:
En primer lugar cantamos el "mea culpa" de haber contribuido inicialmente, al igual que el 99% de las empresas tecnológicas actuales, a desarrollar software de mala calidad, es decir software que se OLVIDA de la información que tiene y de las preferencias del usuario recogidas en su interacción con el mismo, software que es FLOJO y que no soporta ni se queja de malas configuraciones, usos no establecidos a priori, cambios en el hardware que lo soporta y que sufre desfallecimientos prolongados sin previo aviso, software que es IRRESPONSABLE y PELIGROSO y que nos hace dudar cuando pone cuadros de diálogo donde nos dice si estamos seguros y nos traslada la responsabilidad ineludible de salvaguardar la información sea cual sea la circunstancia y por si fuera poco coloca palancas de eyección que nos saca del sistema sin previo aviso en los sitios más insospechados, software que es AVARO con la información deglutiendo sin medida la misma y sin informarnos de la utilidad que nos produce dicho consumo y si es o no efectivo, software que es AUTISTA en su comportamiento ignorando la necesidad de comunicarse permanentemente con el usuario y de contarles con claridad que está pensando o mejor dicho en que está trabajando y cuando finalizara su tarea y nos atenderá como es debido y finalmente, software que es INFLEXIBLE E INADAPTADO y es incapaz de ponderar sus comportamientos en función de los otros softwares con quien convive y con las circunstancias y prioridades de los usuarios que atiende.
En segundo lugar, hacemos la declaración firme de intenciones de caminar de forma progresiva a un software que se comporte de las siguientes maneras muy bien definidas por el maestro Cooper y que yo me tomo la libertad de interpretar en algún caso:
- Un software que se interese por mí.
- Un software que me tenga deferencia.
- Un software que tenga iniciativas.
- Un software que tenga sentido común.
- Un software que se anticipe a nuestras necesidades.
- Un software que me responda.
- Un software que sea reservado con sus problemas internos.
- Un software que este bien informado.
- Un software que sea perceptivo e intuitivo.
- Un software que confié en sus criterios.
- Un software que no pierda la orientación y nos trasmita confianza.
- Un software que me de gratificaciones y resultados inmediatos.
- Un software que sea maleable.
- Un software que sepa convivir con otros sistemas software en distintas plataformas en los que sean albergados y con distintos tipos de usuarios.
- Un software fuerte y resistente ante cambios y eventos en el entorno.
etc.
Finalmente, además de otros elementos antes mencionados debemos convertir a los programadores (Homo lógicos) en diseñadores de software (Homo Sapiens), esto significa que deben primero pensar en que deben hacer, para quien lo hacen y después en cómo deben hacerlo y que las capacidades del usuario necesarias para operar el software no sean inversamente proporcionales a las capacidades de diseñar software libre de fricción cognitiva, es decir, fácil de usar. En este sentido, JMJLab está definiendo los pasos necesarios para el diseño y la supervisión de los procesos de desarrollo que desemboquen en software de calidad y nuestros equipos de desarrollo de Interligare están firmemente comprometidos con estos conceptos y con las necesidades de mejora continua en los procesos de entendimiento del usuario y en los procesos de ingeniería del software perfectamente integrado y en interacción constante con los diseñadores.
