Desarrollo, mantenimiento… evolución (I)

Llevo desde hace tiempo con la idea de escribir esta entrada, a partir de experiencias personales en el mundo laboral, y la noticia sobre el fin de soporte a Windows XP por parte de Microsoft me ha animado a escribirla.

Podemos leer en Tweaktown.com la siguiente noticia:

ATM operators to replace Windows XP with Linux.

Many banks and ATM operators are making plans to migrate its ATM systems to Linux as Windows XP’s support will no longer be provided from April 8th. The report indicated that this will allow companies and operators to have more control over the hardware and software of the machines.

Si habéis estado atentos a las noticias de tecnologías de los últimos meses, ya sabréis que Microsoft anuncio el fin de soporte a Windows XP hace unos cuantos meses.

Anuncio fin soporte XP

Algo normal si pensamos en que el veterano SO de Microsoft cuenta ya con 12 años de vida, que ha sido parcheado muchas veces y ha recibido hasta 3 Services Pack en todos esos años. Muchos dirán que todo esto no es más que una estratagema para obligar a los usuarios a migrar a Windows 7 o Windows 8 (el primero tiene mucha más aceptación en las empresas), pero lo cierto es que habiendo probado XP y W7 debo decir que me quedo con el segundo de lejos.

Aunque Windows XP supuso en su día un SO de éxito y un soplo de aire fresco en comparación con W98, NT o W2000 en las empresas, no está libre de sus ‘achaques’ y pegas, como su progresivo deterioro en su rendimiento a medida que pasa el tiempo.

Además de que nunca ha contado con una versión de 64bits en condiciones, quitando una versión que tenía sus problemas, lo que en un entorno donde lo habitual son equipos con un mínimo de 4GB de RAM supone desperdiciar recursos por culpa de las limitaciones de XP.

Pero lo realmente llamativo de todo este asunto, no es que XP desaparezca, sino el hecho de que haya pillado a tantas y tantas empresas con el pie cambiado, y que sus respectivos departamentos de TI no hayan previsto antes esta eventualidad (más aún en un sector como el bancario).

Nada es para siempre.

Efectivamente, como dice el dicho no hay nada eterno, y mucho menos en el mundo del Software donde todo discurre a una velocidad de vértigo.

Sin embargo, aún es muy habitual encontrarse con software ‘heredado’ (Legacy Software) de una época anterior que de repente, como en el ejemplo de Microsoft y XP, pasa de ser una verdad absoluta a ser un quebradero de cabeza para los responsables de TI o del propio software porque ‘se queda desfasado’.

Entonces, de repente, ese software que hasta entonces nadie cuestionaba y todos usaban, al que tan solo había que dedicar un poco de mantenimiento, pasa a ser considerado con uno o varios de los siguientes adjetivos: obsoleto, anticuado, ineficaz, desfasado, problemático, inútil…

Pero si nos fijamos, resulta que la mayoría de calificativos se pueden unificar en uno solo: antiguo.

Antiguos Sistemas Informáticos

Pero, realmente ¿es algo que ha sucedido sin más de un día para otro?

En realidad no, pero en este mundo del Software, como mencionaba antes, el tiempo es aún más inexorable de lo habitual y lo que hoy se considera ‘moderno’, en apenas unos cuantos años se ve superado por los avances que surgen, y más adelante se van quedando obsoletos porque nada permanece inmutable, ni el software, ni nuestra empresa, ni nuestro método de trabajo, ni nuestros productos y ni siquiera nosotros mismos.

Y si hablamos de sistemas que surgen ligados a plataformas hardware propietarias, o que con el tiempo no evolucionan como la competencia y se van quedando atrás, o simplemente no tienen la debida acogida y son descontinuadas, el problema es aún más grave puesto que ya no se trata solo de que nuestro software esté ‘mayor’, sino que encima el hardware sobre el que funciona también puede fallarnos y encontrarnos con el problema de no poder encontrar ni los repuestos necesarios.

Pero, ¿podemos evitarlo o al menos prevenir futuros problemas?

Trabaja en el presente, pero pensando en el mañana.

Hace años, cuando la Informática empezó a llegar a las empresas (antes de hacerlo masivamente en los hogares) lo habitual era ver cómo una empresa se gastaba mucho dinero en adquirir sistemas propietarios que se iban amortizando a lo largo de los años. Eran sistemas que se adquirían pensando en que durasen muchos años, en una época en que las innovaciones iban llegando más despacio, lo que daba margen a acometer en un momento dado del futuro la migración de estos sistemas a futuros sistemas (compatibles o no).

Y quizás de aquella época también se ha heredado ese pensamiento de que el sistema que empecemos a diseñar hoy y al que migremos mañana, vendrá para quedarse durante mucho tiempo o será una solución casi eterna.

Pero lo cierto es que aunque incluso los sistemas en sí, nuestra aplicación, pueda tener una vida ‘larga y próspera’, deberemos de tener siempre un ojo puesto en el futuro. No solo por las futuras funcionalidades que debamos de integrar el día de mañana porque nuestro negocio evolucione, o las que debamos actualizar si nuestro negocio cambia, sino también por los cambios tecnológicos que surgirán:

  • Evolución del hardware.
  • Evolución del Sistema Operativo.
  • Evolución de los COTS (Software de terceros) que utilicemos.
  • Evolución de los Lenguajes de Programación.

Así, si lo que estamos estudiando es integrar un Software de Terceros al completo (por ejemplo un sistema SAP) deberemos de tener en cuenta además de lo obvio: ¿soluciona mis necesidades y requisitos?; cosas como cuál será su evolución, tiempo de vida y soporte de la empresa propietaria a la versión que adquiramos, si el software está ligado a una plataforma hardware cerrada o podemos cambiarla sin un gran impacto, cómo de complejas son las migraciones entre versiones, el coste de dichas migraciones (en tiempo y dinero por los upgrades a versiones superiores), o incluso el software que usa por debajo para estar seguros de que en el futuro no nos dejarán colgados.

Y si nuestro caso es el de contratar un desarrollo a medida, además de los puntos anteriores también deberemos tener en cuenta las características más técnicas de la solución que nos propongan:

  • Arquitectura SW de la aplicación: escalabilidad (en el futuro puedo necesitar más servidores), flexibilidad (para incluir nuevas funcionalidades, incluso debiendo mantener las antiguas o distintas versiones de la misma funcionalidad), robustez, seguridad…
  • Arquitectura HW: ¿va ligado a un HW específico? ¿puedo instalarlo en el HW de otro fabricante sin problemas?
  • Lenguaje de implementación: versión usada para el desarrollo, conocer los ciclos de vida de las versiones y si se asegura retrocompatibilidad, cómo de conocido y aceptado está por la comunidad de desarrolladores (un lenguaje muy potente pero poco conocido dificultará encontrar gente que lo mantenga o evolucione), si hay más empresas que trabajen con él (en un momento dado podemos querer cambiar de proveedor).
  • COTS: quién los evoluciona y da soporte, si están basados en estándares o son propietarios, si requieren de contratar soporte externo, compatibilidad de los mismos entre ellos, con la plataforma HW o con el lenguaje que los implementa.

El haber previsto en mayor o menor medida todo esto nos ayudará a poder migrar nuestros sistemas, ya sea de forma total o solo en lo que respecta al SW de base y/o plataforma que usemos, consiguiendo así que no solo no se quede ‘antiguo’, sino que su vida útil se pueda alargar.

Tener en cuenta además de que en el caso de desarrollos de grandes sistemas a medida, desde el momento en que se toma la decisión de diseñarlo y solicitar su desarrollo, hasta su puesta en funcionamiento pueden haber pasado 2-4 años, tiempo más que suficiente para que la vida útil del HW o los COST usados se haya reducido a unos pocos años más.

En la próxima entrada, veremos con un ejemplo real cómo se detectó y solventó una de estas situaciones.
photo credit: x-ray delta one via photopin cc

Backups en Android.

En la entrada sobre el error de “Mala conexión inhabilitada” me he encontrado algún comentario sobre las reticencias a hacer un Factory Reset para resolver el problema.

Para ayudar a los indecisos os dejo un par de formas de reducir el impacto de hacer este Factory Reset.

La primera es aprovechar la funcionalidad de Copia de Seguridad de Google:

Habilitando esta copia de seguridad, cuando hagáis el Factory Reset y volváis a ingresar vuestra dirección de GMail, se descargarán las aplicaciones y configuraciones que tuvieseis antes (hacerlo vía WiFi).

Copia de Seguridad.

Copia de Seguridad

La segunda es usar una aplicación de backup, como ‘MyBackup Pro’, que permite hacer un backup de aplicaciones, datos, imágenes, registro de llamadas y SMSs, para posteriormente restaurarlo.

 

MyBackupPro

MyBackupPro

Jobs y las personas inteligentes…

No son estas el tipo de entradas que suelo escribir, pero me lo he encontrado en LinkedIn y creo que merece la pena leerla y pensar sobre ella…

frase Steve Jobs

 

No tiene sentido contratar a personas inteligentes y después decirles lo que tienen que hacer. Nosotros contratamos a personas inteligentes para que nos digan que tenemos que hacer. – Steve Jobs

Creo que poco más hay que aportar a esta frase, que resume con tanta rotundidad algo que debería estar visible en cada empresa y ser parte del motor de la misma.

Fecha de caducidad.

Pese a la carga de trabajo de estas últimas semanas, esta semana he estado siguiendo un debate en LinkedIn bastante activo:

¿Con los 40, ya se es viejo para la vida laboral?

A partir del tema inicial, sobre esa tendencia que desde hace tiempo parece haberse asentado en nuestra sociedad laboral de considerar ‘viejos’ a muchos trabajadores a partir de los 40 años, o menos atractivos que otros más jóvenes, se han ido vertiendo opiniones bastante interesantes sobre el tema.

Los tópicos.

Leyendo unas y otras, incluyendo algunas que mencionan la dificultad para enseñar a alguien que ya tiene ciertas costumbres y manías adquiridas, me ha venido a la mente la idea para esta entrada… ¿tiene fecha de caducidad un trabajador?

El caso es que entre todo lo que he leído me he encontrado con muchos tópicos bastante habituales alrededor de este tema…

A un trabajador con más de 40 años es difícil enseñarle cosas nuevas….

Un trabajador mayor es menos flexible ante el cambio y se resiste a cambiar su forma de trabajar…

… ponen menos interés en las cosas y son menos productivos…

Lo que más me ha llamado la atención de todo esto, es que si pienso en esos tópicos puedo ponerles caras de personas con las que he trabajado y se pueden ajustar en algún momento a los mismos. Pero lo más curioso de todo, es que muchas de esas caras no tienen ni de lejos los 40 o más años.

En todos estos años muchas de esas personas que se ajustan a estos tópicos podían tener, en algún caso, los 40 años ya cumplidos, pero también recuerdo muchos que con 25-35 años podrían servir de perfecto ejemplo, ya sea por su resistencia al cambio, por sus ‘manías’ o por su falta de interés en aprender cosas distintas o distintas formas de hacer las cosas.

Desde gente con muy buen nivel técnico que sí o sí se empeñaban en discutir cualquier propuesta técnica que no fuera propia haciendo caso omiso a los razonamientos ajenos, a otros que tras unos cuantos años haciendo una tarea rutinaria están tan acomodados que no quieren ni tomarse la molestia de aprender algo distinto.

Así pues… ¿y si el no es un problema de edad?

fecha de caducidad

No es tema de edad… sino de actitud.

¿Se imaginan a alguien diciendo que Dennis Ritchie o Steve Jobs eran menos válidos por haber cumplido los 40 años?… ¿o que Tesla o Einstein debían dejar paso a los más jóvenes?

Tomemos el ejemplo de Steve Jobs por ser un ejemplo reciente y bien conocido.

Ya rondaba los 40 cuando convirtió Pixar en el estudio de animación a seguir por todos, capaces de lanzar éxito tras éxito en los cines, con innovadoras técnicas de animación por ordenador.

Sobrepasaba los 40 cuando volvió a Apple, para volver a llevarla a lo más alto con productos como el iPod o el iPhone, quizás no del todo innovadores por basarse en conceptos ya conocidos, pero sí lanzados con un nuevo enfoque que los convertirían en absolutos éxitos a niveles nunca vistos.

Y lo que realmente le distinguía, tanto a él como al resto puestos como ejemplo, era su actitud y pasión por el trabajo, que en ningún momento se veía mermada de manera alguna por su edad, que unidas a la experiencia acumulada y los conocimientos adquiridos son las que te empujan a buscar esa forma distinta de hacer las cosas.

Por ello, como mencionaba antes, podemos encontrar ejemplos de todas las edades que encajen con los tópicos y estereotipos usados para los ‘trabajadores mayores’.

¿Qué se puede hacer entonces al respecto?…

Yo aquí lo que suelo hacer ante estos casos de falta de motivación o ‘acomodamiento’ es lo que dije en su día… recoger el feedbcak.

Hablar de manera informal, pero orientando la conversación hacia el tema a indagar, nos puede dar una visión de si estamos ante una persona cuya propia forma de ser le lleva a buscar acomodo y tareas rutinarias, o si por contra estamos ante una persona que por algún motivo ha relegado o perdido su empuje llevándole a una situación donde una actitud pasiva es fruto de la frustración.

En el primer caso lo que podemos hacer es buscar tareas que obliguen a esta persona a salir de su zona de confort, a enfrentar tareas distintas que le exijan una mayor exigencia, siempre dentro de sus capacidades. Tareas que podemos supervisar directamente y que estén limitadas en el tiempo para evitar que las relegue indefinidamente, o que deba realizar en coordinación con otras personas para que sea el grupo el que le envuelva y empuje.

En el segundo caso, aunque no hay reglas genéricas, podemos optar por tratar el tema directamente para provocar que sea la otra persona la que nos diga qué le motiva y luego intentar encajarlo en su día a día como tarea complementaria al resto, siempre que sea posible, exigiendo a cambio su compromiso y supervisando periódicamente sus avances y propuestas.

Aunque siempre debemos de contemplar que podemos encontrarnos con el caso de personas que simplemente no sabrán qué quieren, o no querrán hacer nada distinto, en cuyo caso o asumimos que será difícil sacarles de ese rol adquirido, o tendremos que limitarles a ese tipo de tareas.

¿Y se puede prevenir?

A este respecto me gusta mucho la política adoptada por Recursos Humanos en mi actual empresa, que ha potenciado mucho el tema de la formación presencial, la auto-formación online y que anualmente lanza una campaña de actualización de CV para que pongamos al día nuestros conocimientos.

En el caso del CV me parece una muy buena forma de ponernos frente al espejo, hacernos pensar en qué hemos hecho el último año y ser así conscientes de si avanzamos o nos quedamos estancados.

Y es que un departamento de Recursos Humanos es mucho más que el responsable de hacer los contratos, entregar cartas de despido o el encargado de notificar las subidas o no subidas de salario.

Muchos empresarios se quejan muy a menudo de que sus empleados se limitan a hacer lo mínimo en el día a día, que no proponen ideas nuevas o que están ‘obsoletos’ pero los mantiene porque les costaría mucho dinero echarles.

Pero de vez en cuando hay que hacer auto-crítica (yo tengo mucha tendencia a ello) y plantearnos… ¿hemos hecho algo por formarlos en los últimos años? ¿les hemos dado medios para que nos hagan llegar sus propuestas? ¿les hemos escuchado lo suficiente cuando aún tenían empuje? ¿les hemos hecho sentirse parte activa de nuestro negocio o les hemos relegado a un papel de meros componentes de nuestra cadena de producción?

Para mí la mejor prevención pasa por no permitir que pierdan su empuje, no dejar que se acomoden en tareas rutinarias, hacerles partícipes en las propuestas para mejorar nuestra metodología y exigir que se formen, o darles los medios para que lo hagan, desde el primer día y no cuando nos surja una necesidad puntual.

Un trabajador no es una herramienta, es una parte activa de nuestro negocio y así debemos de intentar mantenerlo.

Todos conocemos las políticas del 80-20 que empresas como Google (hasta hace un par de años) permitían a sus trabajadores, con el objeto de dejarles que hicieran llegar propuestas de nuevas líneas de negocio o mejoras sobre las existentes, permitiéndoles que dedicasen un 20% de su tiempo de trabajo en algo que surgiese de ellos mismos y les apasionara.

O la política de VolksWagen, y otras empresas, de otorgar premios a aquellas propuestas surgidas de sus trabajadores orientadas a mejorar su forma de trabajar o ayudar a ahorrar costes.

Para mí estas son, o pueden ser, la clave para desterrar tópicos y seguir viendo a trabajadores que tras cumplir los 40 siguen trabajando con la misma curiosidad, empuje y ganas de hacer cosas nuevas.