Y tu que eres: ¿proactivo, o reactivo?

Hola a todos, hacía bastante que no posteaba por estos lares, y creo que es buen momento para escribir esta entrada.


Esta es solo una pequeña reflexión que ya tenía encaminada cuando aun estaba en mi anterior empresa, y que ahora en Microsoft he sido capaz de modelar mejor.


Puede que a muchos de vosotros os resulte llamativo el título, o que incluso no lo comprendais. Supongo que a muchos de vosotros os pasaría como a mi, cuando empezamos a estudiar la informatica, alguien os contaría el «chiste» de que hay 10 tipos de personas en el mundo, los que saben informática y los que no…. pues ahora a mucho mas alto nivel, a un nivel profesional puedo afirmar que hay dos tipos de informática: la proactiva y la reactiva.


REACTIVA


Es el tipo que más predomina, hasta limites insospechados. A su vez es el más costoso, a nivel económico y a nivel de esfuerzo profesional/personal. Cuantas veces habeis visto un grupo de desarrollo que:




  • ¿Tiene una mala metodología de trabajo, o simplemente no tiene?


  • ¿No sabe captar los requerimientos del proyecto?


  • ¿No tiene en cuenta factores como el rendimiento, escalabilidad, seguridad … de su aplicación como un hito importante desde el diseño de la aplicación hasta el mismo despliegue?


  • ¿Que no saben son los Patrones de Diseño de Software o de Arquitectura?


  • ¿Instrumentación y la monitorización?


  • ¿Desconocen el significado del testing, con pruebas tan importantes como son de carga, de extress ….?


  • …..

La suma individual o colectiva de estos puntos que os he puesto seguro que dan como resultado a uno o muchos de vuestros clientes o incluso es un problema de vuestra propia empresa. La falta de alguno de estos puntos, sumandoles n-mil mas,  hace que los ciclos de desarrollo de software a menudo se vuelvan bombas de relojería.


Cuando uno de estos proyectos, desarrollandose bajo alguna de esta carencias, encurre en algún problema técnico aparecen los problemas. Lo malo es que estos problemas no suelen identificarse en la fase de diseño, ya que omitir cualquiera de los puntos anterior seguramente haga que el analisis y posterior diseño sean defectuosos y a su vez peligrosos.


Cuanto más tarda ese problema en surgir, por lo general más costoso suele ser solucionarlo, y en muchos casos la carencia técnica/tecnológica del equipo de desarrollo hace que se tenga que externalizar la resolución de ese problema. Acudir a consultorías o a empresas que dan soporte a tu tecnología. Se pagará mucho dinero por una mala previsión de recursos y de formación.


Esto es informática reactiva. Una informatica que no hace caso de la Ingeniería Informática ( la cual pongo en mayusculas y en negrita porque existe, pese a ser los informáticos, en muchos casos, los principales detractores de la misma ), y a una serie de normas que aplicadas a las últimas tecnologías hacen que tus desarrollos no caigan en estos agujeros, negros y costosos. Negros para los desarrolladores, que suelen caer en ellos por desconocimiento del terreno en el que se mueven. Negros para los analistas que no han sabido adelantarse a ese problema. Negros para los jefes de proyecto, que deberían haberse preocupado de hacer un grupo de desarrolladores lo suficientemente heterogeneo y formado como para poder acometer el proyecto ( y omitir mucha otras tareas que se presuponen de un jefe de proyecto ….). Costoso para la empresa, que en vez de invertir en una buena labor proactiva en forma de how-to´s y formación para el grupo de desarrollo, prefiere invertir en la solución de un problema, que le cobrarán a precio de oro por cada hora, minuto, o segundo de la(s) persona(s) que solucionen ( si se puede ) ese problema. Y costoso para el equipo de desarrollo en tiempo.


No voy a hacer apología sobre esta informática reactiva, porque hay que ser sincero, y todos sabemos que la informática es impredecible, e incluso el grupo de desarrollo mejor formado puede encontrarse una piedra en el camino y tener que recurrir a terceros.


PROACTIVA


Es la informatica que más me gusta. La que se anticipa a los problemas. La que invierte y dota de un valor añadido al grupo de desarrollo.


Gracias a Dios, cada dia que pasa se empieza a practicar mas la proactividad en las empresas, y se empiezan a dar cuenta de lo bueno que es poder tener grupos preparados «a medida» de un desarrollo de software. Otorga valor añadido al desarrollo, otorga valor añadido a los trabajadores, y por último, otorga valor añadido a la empresa.


Es cierto que es costosa, y teniendo en cuenta las condiciones de la propia empresa puede resultar muy muy cara. El problema es cuando tienes unos trabajadores contratados a terceros, con salarios bajos. Estarás formando a una persona para que haga tu desarrollo ( y si lo acaba ) y que se irá a otra empresa con los conocimientos adquiridos en tu empresa. Es una inversión a corto plazo pero sin posibilidades de extensibilizar en otros desarrollos.


PROACTIVIDAD DENTRO DE LA REACTIVIDAD


Es un factor a tener en cuenta. En ciertas empresas cuando les surge un problema el cual externalizan a una consultora para que se lo resuelva, suelen buscar únicamente la solución del mismo y seguir hacia delante. No hay mayor error que caer en un agujero y no anotar en tu mapa donde esta. Dentro de la reactividad se pueden encontrar caminos a la proactividad. Una reactividad de calidad, que otorga valor añadido y conocimiento a tu empresa.


Contactar con un ingeniero de soporte de la empresa a la cual externalizas el problema. Que te lo solucione, que te aporte una solución detallada, y que tú simplemente te quedes en cual ha sido la solución, es un error. Hay que quedarse con el how-to; hay buscar el conocimiento en la explicación para adelantarse a futuros problemas.


Bueno aquí teneis un pequeño resumen de mis últimos pensamientos, los cuales no tienen porque ser acertados, pero están basados en las vivencias diarias en este mundo tan complejo, y apasionante, como es el ciclo de vida del desarrollo de software.


Un saludo y hasta pronto. Carlos.