Buscar este blog

jueves, enero 28, 2010

Reflexión sobre el desarrollo de software. Tecnologías y herramientas. Reciclaje Extremo.



El mundo del desarrollo con Microsoft, a pesar de todas las facilidades, potencia y posibilidades de integración que ofrece, puede llegar a hacerse bastante cuesta arriba cada vez que sale una nueva versión de sus productos, algo que sucede, para bien o para mal, muy a menudo.
Uno empieza en sus inicios con Visual Basic 6 y ASP, pero luego se pasa a ASP.NET con los frameworks 1.1, 2.0, 3.0, 3.5… así como pasa de Internet Information Server 5 a 6 y 7, de Windows Server 2000 a 2003 y 2008, Vista y Seven
Ayer te desenvolvías con Visual Basic en web, mañana con C# en móviles, y pasado, vuelta a Visual Basic pero en escritorio y servicios. Tiras primero de SQL Server 2000, luego das un saltito a 2005, y otro más a 2008, pasando eso sí, por los servicios web. Y cuando te quieres dar cuenta estás trabajando con Active Directory, MOSS, WSS 3.0, BPOS y Silverlight 2 y 3 pero con un ojo en la versión 4.
Casi ná, que se suele decir.
Y no olvidemos que lo anterior es solo para desarrollo profesional dentro del universo Microsoft, que luego siempre cae algo de Oracle, Cache, Linux, o Apple en forma de integración de sistemas o clientes multiplataforma, o visualización y uso con Safari o Firefox, incluyendo esto tecnologías “estándar” como CSS, HTML, XML y JavaScript y Ajax. Y pasando de vez en cuando por el trago de retocar proyectos chusqueros en forma de Excel y Access con VBA.
Todo diversión, si señor y prefiero dejar la lista de herramientas aquí, dando gracias porque las versiones de Visual Studio no varíen sino para aumentar la funcionalidad y estabilidad, y que cosas como SharePoint Designer y el resto de Office, Visual Studio y Source Safe (al menos en versiones anteriores a Team Server) sean bastante coherentes funcionando. Si no fuera por que además hay que mantenerse al día en temas más abstractos y separados de las herramientas como son el diseño técnico (orientación a aspectos, TDD, patrones), trato con cliente (presentaciones, venta, conocimiento de LOS negocios de cada cliente particular), ergonomía o técnicas de desarrollo efectivas (SCRUM, Ágil)… si no fuera por todo esto, tendría más tiempo para lamentarme, pero creo que es suficiente para dar una idea aproximada de lo que significa “reciclaje constante” y de por qué se habla de el en informática (aunque luego muchos no lo ejerzan).
En retrospectiva casi resulta asombroso que una persona sola pueda llevar a cabo proyectos en solitario en forma, calidad y tiempo, y que tanto el cliente como el desarrollador, (al menos en mi caso) quedemos razonablemente satisfechos (quisquilloso que es uno para no quedar nunca satisfecho del todo) con el resultado.
Supongo que obviando el cansancio que produce y ampliando la perspectiva (reciclaje necesario + resultados obtenidos) el conjunto dice mucho a favor de lo que han avanzado las herramientas de desarrollo al mejorar la productividad del desarrollador y ofrecer una mejor experiencia de usuario. Así que a pesar de la cantidad de tiempo dedicado a mantenerme al día, creo que es justo felicitar (a pesar de mis aparentes lamentos) a Microsoft por el trabajo de mejora constante que ha hecho y sigue haciendo en las herramientas de trabajo. Mi viaje a lado oscuro (Dark Side of the Source TM), está completado, gracias por su atención.
Desgraciadamente existe un lado negativo a nivel técnico en todo este festival de releases y novedades, y es que con tantos frentes abiertos, es imposible (al menos para mí y mi “quisquillosidad”) profundizar tanto como me gustaría en las herramientas y tecnologías que van saliendo. Si bien es verdad que a menudo podemos hacer “lo de siempre” con las nuevas herramientas, resulta frustrante saber que para hacerlo bien (quizá sea más acertada la palabra “mejor”) tienes que investigar, cambiar tu flujo de trabajo, los elementos que conoces por otros mejores pero desconocidos y realizar un I+D que incluye búsquedas, foros, documentación oficial, prueba y error, y rehacer parte de lo conseguiste en el pasado. Son cosas que pueden resultar pesadas, pero que a la larga resultan buenas inversiones de tiempo cuando tienes que abordar un proyecto similar o eres capaz de reutilizar código con la seguridad de que no hay que modificar ni una línea en los mejores casos. O simplemente cuando compruebas que las nuevas alternativas son, en efecto, mejores en todos los sentidos y que puedes responder preguntas técnicas y establecer limites a lo que puede y no puede hacerse con los recursos disponibles. En resumen, acaba siendo bueno para el negocio y bueno para la moral o la vanidad de uno.

Disclaimer: Lamento esta diatriba y veo poca utilidad en ponerla por escrito más allá de quedarme a gusto, que era la razón por la que necesitaba escribir este rollo. Pero tenía ganas de soltarlo y pararme a pensar un rato sobre ello, porque el reciclaje constante, el cansancio acumulado gracias a mi pequeña Celia, y los proyectos pueden llegar a hacer pesados los días de I+D con limite de tiempo, y eso hay que atajarlo si no se quiere acabar con un síndrome de burnout.

No hay comentarios: