El año comienza cargado de proyectos y de mucho, muchísimo por hacer. Tengo pendientes muchas lecturas, muchos hitos que cumplir, tanto en lo personal como en lo profesional, y, entre todo ello, una modernización de esta web en la que ya estoy trabajando y dos nuevos proyectos literarios (uno de ellos técnico).
Es estimulante comenzar el desarrollo de un nuevo producto. Siempre hago una distinción clara entre “productos” y “proyectos”, ya que sus ciclos de vida no tienen nada que ver. Personalmente me gustan más los primeros, porque tienes que pensar de otro modo para afrontarlos, considerar su mantenimiento de una forma radicalmente diferente y, además, sabes que, si se cierra bien, puedes pasar al siguiente sin quedarte años trabajando en el mismo proyecto y, por supuesto, habiendo dejado un nuevo producto para el catálogo de tu compañía.
Otra cosa es todo lo relacionado con la rentabilidad; aunque esos son temas de desarrollo de negocio, sólo quiero apuntar algo que no me deja de sorprender. Hay demasiadas empresas de software empeñadas en captar proyectos, con el enorme esfuerzo comercial que eso supone, en lugar de apostar más por la creación de un conjunto de productos que, una vez hechos, se pueden vender una, diez o mil veces. ¿Se ve la diferencia? Al menos, se puede integrar un modelo mixto entre productos y proyectos.
Hemos dado los primeros pasos para el desarrollo de un nuevo producto, de nombre Smart TPL, para el que además ya tenemos comprometida la comercialización de varias licencias. Aunque lo que me interesa aquí es hablar más de cómo lo hacemos que de lo que hace realmente. No obstante, aquí indico una breve descripción del producto.
Smart TPL es una aplicación móvil que se usará para la lectura local de contadores digitales de tecnología PRIME. Esto es necesario porque no todos los contadores que se instalan (ya sean de uso doméstico o industrial) tienen capacidad de telegestión, de modo que sigue siendo necesario que un operario se desplace al lugar de la instalación para obtener sus medidas, eventos, etc. Nota: me refiero a esos dispositivos que se instalan en la puerta de casa o en el cuadro centralizado de un bloque de viviendas para medir el consumo eléctrico, entre otros muchos parámetros eléctricos.

¿Cómo vamos a realizar este nuevo producto?
De nuevo, no hay que inventar la rueda en el ciclo de vida: tan sólo hay que seguir las buenas prácticas, que resumo a continuación.
Después de un tiempo en conversaciones con el primer cliente que nos ha confirmado su adquisición, hemos intercambiado una serie de documentos con los que hemos consensuado las características que debe cumplir el producto. De aquí se extraen los requisitos.
Estos requisitos de software tienen que consensuarse con el cliente y, sobre todo, me tengo que asegurar de que todo el mundo entiende el mismo lenguaje; es decir, que todos entendemos igual ese dominio o ese universo particular relacionado con los problemas que resuelve la aplicación.
Esto parece una tontería, pero es vital para no terminar cayendo en la clásica viñeta de la rueda y el “yo entendí”…
A continuación, se establecen fechas de entrega claras, que son tanto un compromiso personal para el equipo de desarrollo como una expectativa que el cliente espera que se cumpla.
Y, por supuesto, en esta fase los requisitos, que ya son bien conocidos y están muy claros, se añaden a la herramienta ALM (application lifecycle management). En mi caso, no puede ser otra que nuestra suscripción a Visual Studio Online (el antiguo Team Foundation Server) de Microsoft. En mi opinión, es una de las mejores herramientas que existen para implementar proyectos de software.

¿Y qué hay de las tecnologías que vamos a usar?
Puesto que tanto yo como el equipo conocemos bien todas las tecnologías relacionadas con .NET Framework, está claro que deberíamos decantarnos por la plataforma Xamarin para desarrollar la aplicación móvil. La decisión no se toma por gusto, sino por productividad. A los expertos en C# les resultará muy fácil, e incluso natural, crear aplicaciones en ese lenguaje, aunque sea para otro framework o API.

Además, Xamarin ha sido adquirido por Microsoft, lo cual parece indicar que su presencia en el mercado se mantendrá durante muchos años; también existe una gran comunidad alrededor de Xamarin.
¿Y cuáles son los siguientes pasos?
Puesto que implemento un enfoque ágil para el desarrollo de software y este proyecto es un claro candidato para ello, definiremos un primer sprint de trabajo en el que montaremos el proyecto y cerraremos una funcionalidad sencilla del catálogo de requisitos (backlog items).
En este primer sprint:
- Generaremos una versión muy elemental de la aplicación que, aunque sencilla, ya se podrá usar desde el terminal móvil elegido.
- Prepararemos un mock para el backend al que debe conectarse la aplicación móvil, basado en servicios REST accesibles dentro de una VPN.
- Mejoraremos nuestro conocimiento de Xamarin para implementar los siguientes sprints.
Y, sobre todo, nos divertiremos currando en este nuevo proyecto.
Hablaré más adelante de su progreso a medida que vayamos cerrando sprints.