sábado, 1 de febrero de 2014

Reivindicando la sostenibilidad tecnológica


En tiempos de la Revolución Industrial se instauró el concepto del progreso. Lo importante por aquel entonces era crecer a toda costa. Así las empresas tenían que producir más y más rápido, los trenes debían llegar a cualquier destino, etc.

Si bien actualmente la idea del progreso sigue muy vigente, siendo el principal motor de la economía, se tiene más conciencia en que su desarrollo se realice de un modo sostenible. El pensamiento predominante de nuestros días es que hay que crecer y evolucionar pero cumpliendo ciertas reglas del juego, de lo contrario nuestro planeta podría sufrir graves consecuencias futuras y nuestros descendientes pagar las secuelas derivadas de nuestra negligencia.

Detrás de toda esta ideología existen diferentes concreciones: todo lo referido al cambio climático, con las energías renovables como alternativa más limpia, poner límites al desarrollo de la robótica manteniéndolos bajo control humano entre otros ejemplos. En definitiva, todo aquello que vela por que ideas novedosas y aparentemente positivas de cualquier actividad no vayan en detrimento de una entidad más global, como puede ser la salud o el bienestar del propio planeta.

El desarrollo de Internet, el apoyo de aplicaciones en el quehacer diario laboral y la informática en general, sin embargo han llegado más tarde a nuestras vidas. Nos estamos dando cuenta ahora de las inmensas posibilidades que acarrean, lo que nos lleva a situarnos en la misma tesitura en la que en otras materias se encontraron en la época de la revolución Industrial. Esto es, una altísima demanda en proporcionar servicios de información y unos tiempos excesivamente ajustados para su desarrollo. Todo ello unido a que no existe un riesgo a nivel planetario o de un calibre similar, provoca que no se vele por un crecimiento sostenible en este sector. Nadie ha alzado la voz en este sentido.
En el ámbito del desarrollo de aplicaciones se aprecia muy bien esta vorágine de progreso. Si por el usuario fuera, continuamente se estarían implementando nuevas funcionalidades a las aplicaciones a un ritmo vertiginoso, sin preocuparse por cómo se construye dicho sw ni lo más mínimo que, sin lugar a dudas, afectará y mucho sobre todo a los futuros destinatarios.
Aunque la aplicación satisfaga al usuario a la hora de realizar su trabajo, éste siempre requerirá más de la aplicación, ya sea mayor velocidad, más precisión o valor añadido.

Sin embargo, pese a lo que dicten los convencionalismos, el usuario no siempre tiene la razón y es deber de los responsables de las aplicaciones, respaldados por sus directivos, el asegurar que el crecimiento de la aplicación sea controlado.

Y ¿cómo asegurar un crecimiento sostenible en una aplicación web? Fundamentalmente haciendo bien las cosas. Lamentablemente, eso significa mayor coste tanto en términos de tiempo como de recursos y eso chirría a los encargados de tomar las decisiones. En la Administración pública donde impera el cortoplacismo ese problema se acentúa.
Para atajar el crecimiento loco y garantizar un suficiente ciclo de vida a las aplicaciones hay que programar de forma limpia, ordenada y elegante. Para ello se debe cumplir entre otros:

  • No tener excesiva deuda técnica. Cuanto más parcheada esté una solución más difícil de mantener será. La deuda técnica se puede producir fundamentalmente por 3 causas:
    1. No se dedicó el tiempo suficiente al análisis o el usuario o bien los responsables no supieron hacer bien su trabajo.
    2. Excesivas prisas y urgencias, bien impuestas por los destinatarios, bien por los directivos que exigen resultados inmediatos.
    3. Programadores con poca experiencia y formación. Esta es la causa más importante y a mi modo de ver guarda mucha relación con un problema estructural en España vinculado con un desprestigio a los técnicos con respecto a otros puestos de trabajo.
  • Desarrollar código limpio. Relacionado con el punto anterior. Ya lo dijeron otros antes, y es verdad que la codificación es la mejor documentación que puedes tener del proyecto. El resto de documentación es casi inútil por muy bien que esté, si el código no está pensado para perdurar. Eso significa una correcta modulación evitando el copia y pega, una adecuada complejidad ciclomática, etc.

  • Tratar de medir, mediante herramientas adecuadas . La mejor forma de mejorar es aplicando métricas periódicas donde puedas ir confrontando los resultados del trabajo realizado. A diferencia de las mejoras funcionales, que son evaluadas por el usuario, este tipo de actividades comentadas son más opacas. Por tanto, la valoración deberá ser interna, pero nunca obviarse.

Concluyendo, tanto los técnicos como los responsables deben volcarse en cumplir las expectativas temporales del ciclo de vida de sus aplicaciones. Nadie lo hará por ellos, ya que el código es una caja negra para el resto de agentes, que sólo ven la interfaz del mismo. Además los equipos de proyecto deben tener en cuenta que probablemente no permanezcan para siempre al frente de los mismos. Por ello, deben asegurar una correcta continuidad con sus sucesores. La única forma de conseguir tal objetivo es realizar un desarrollo responsable y profesional, sólo posible si se dispone de personal cualificado y motivado, además de no sufrir presiones externas que impidan tomar decisiones fundamentales que aseguren un crecimiento sostenible.



No hay comentarios:

Publicar un comentario