El juego de equipo.

Al ver esta mañana en las noticias que en la final de la NBA, los San Antonio Spurs habían sorprendido a los Miami Heat y ganado el primer partido fuera de su casa, he recordado un vídeo que quería compartir con vosotros.

El vídeo es un homenaje a un equipo, los San Antonio Spurs, y el juego de equipo que han logrado perfeccionar a lo largo de varios años de trabajo, con el que se han venido imponiendo a las grandes individualidades del que han hecho gala otros equipos.

De este vídeo podemos extraer algunas lecciones útiles en nuestro trabajo diario y en especial con nuestros equipos:

  1. Los grandes jugadores son brillantes, pero los grandes jugadores que juegan en equipo lo son aún más.
  2. La suma de los talentos de un equipo que trabaje junto es mayor que la suma de cada talento individual.
  3. Una gran estrella puede ganar un partido, pero un gran equipo puede lograr mayores logros.
  4. En un gran equipo lo importante son los logros colectivos, por encima de los individuales.
  5. Un gran líder es capaz de aprovechar lo mejor de sus compañeros y construir grandes jugadas de equipo.

Y estas son tan solo las 5 primeras que me vienen a la mente, seguro que se pueden sacar muchas más.

Y vosotros ¿sois más de jugar en equipo o de jugadas individuales?

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.