Comenzando un nuevo producto - Smart TPL
Un artículo de Rafa G. Blanes
El año comienza cargado de proyectos y de mucho, muchísimo por hacer. Tengo pendientes muchas lecturas por realizar, 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 distintación clara entre "productos" y "proyectos", ya que sus ciclos de vida no tienen nada que ver. Personalmente me gustan más los primeros, ya que tienes que pensar de otro modo para afrontarlos, considerar su mantenimiento de una forma radicamente 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 suspuesto, 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, integrar un modelo mixto entre productos y proyectos.
Hemos dado lo primeros pasos para el desarrollo de un nuevo producto, de nombre Smart TPL para el que además tenemos ya comprometidas la comercialización de varias licencias. Aunque lo que me interesa aquí es hablar más de cómo lo hacemos que lo que hace realmente. No obstante, aquí indico una breve descripción del mismo.
Smart TPL es una aplicación para móvil que se usará para la lectura en local de contadores digitales de tecnología PRIME. Esto es necesario ya que 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: los contadores de los que hablo con 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étrico, 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 seguir las buenas prácticas, que resumo a continuación.
Después de un tiempo en conversaciones con el primer cliente que nos has cumplido su adquisición, hemos intercambiado una serie de documentos con los que hemos consesuado las característias que debe cumplir el producto. De aquí se extraen los requisitos.
Estos requisitos software tienen que consensuarse con el cliente y, sobre todo, me tengo que asegurar que todo el mundo entiende el mismo lenguaje, es decir, 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 que después no termines cayendo en la clásica viñeta de la rueda y el "yo entendí"...
A continuación, se establecen fechas de entregas 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 managemente). En mi caso, no puede ser otra que nuestra suscripción al Visual Studio Online (antiguo Team Foundation Server) de Microsoft. En mi opinión, de las mejoras herramientas para la implementación de proyectos software que existen.
¿Y qué hay de las tecnologías a usar?
Puesto que conozco y el equipo conoce bien todas las tecnologías relacionadas con .NET Framework, está claro que nos debeíamos decantar por la plataforma Xamarin para el desarrollo de la aplicación móvil. La decisión de esta elección no se hace por gusto, sino por un asunto de productividad. A expertos en C# les va a resultar muy fácil, e incluso natural, realizar aplicaciones en ese lenguaje aunque sea para otro framework o API diferentes.
Además, Xamarin ha sido adquirido por Microsoft, lo cual todo hace indicar que su presencia en el mercado se va a mantener durante muchos años y existe una gran comunidad alrededor de Xamarin.
¿Y cuáles son los siguientes pasos?
Puesto que implemento un acercamiento ágil al desarrollo de software, y este proyecto es un claro candidato para ese enfoque, 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, pero aunque sencilla, se podrá usar ya desde el terminal móvil elegido.
- Plantearemos un mock para el backend que el que debe conectar la aplicación móvil, y que estará basado en servicios REST que estarán accesibles dentro de una VPN.
- Tendremos un conocimiento mejor de Xamarin para la implementación de 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.