Crónica de una muerte anunciada, por estrangulamiento – Parte II

En la introducción ya mencione los móviles y las justificaciones por la cuales creo que lo correcto es renovar casi desde cero un sistema. Ahora en este post nos toca describir al sistema a renovar, junto con las herramientas y una idea del nuevo sistema, comencemos.

La Victima

El sistema a remplazar técnicamente no es un sistema en si, en este momento son un conjunto de herramientas separadas pero que son usadas en conjunto para ayudar a los desarrolladores de la empresa donde estoy trabajando a que puedan completar las tareas de puesta a punto de sus entornos, actualización de código y debugging.

Se preguntaran cuan grande es el sistema que manejan acá para necesitar herramientas extras, a parte del IDE y el repositorio de código con su respectivo cliente, y bueno, solo les puedo decir que es enorme y se necesitan mas de 100 desarrolladores trabajando en paralelo para poderlo mantener.

Para simplificarlo, dividiremos nuestro requerimiento en tres secciones:

  • Entorno de Desarrollo
  • Debugging
  • Testing

Todas estas herramientas están construidas para ser ejecutadas sobre el escritorio de Windows y en su mayoría están escritas con C# y Windows Phone. Muchas de las aplicaciones tienen toda la lógica en sus code-behindes y en un solo archivo, generando una baja reutilización de código.

Con esta división por secciones, se nos simplificara la tarea de buscar denominadores comunes e identificar las funcionalidades repetidas o las funcionalidades que existen únicamente para la comunicación entre las aplicaciones isla, además de que podremos identificar el flujo de trabajo de los usuarios y así intentar simplificarlo.+

Características del nuevo sistema  y las herramientas

El nuevo sistema que vayamos a crear debería de cumplir un conjunto de características para que sea lo mas exitoso posible en su ciclo de vida, y de tal manera de que sea fácil de mantener y que cuando cumpla su ciclo de vida sea fácil de estrangular, esta parte es muy importante, ya que si nuestro sistema nace con la concepción de que en algún momento a mediano plazo debe morir (con mediano plazo, me refiero a un tiempo no muy lejano, donde gran parte de los desarrolladores que lo hicieron aun estarán trabajando en el proyecto al momento de estrangularlo y casi de seguro ellos mismos harán esa tarea), deberemos pensar que lo mas conveniente será que podamos reutilizar sin demasiado cambio un gran numero de secciones del sistema, para facilitar la migración. En analogía con el tema de loa autos, podríamos decir que lo mas conveniente es reutilizar sin mucho cambio la tecnología que creamos para las ruedas o para los seguros de las puertas o para la llave de encendido.

Ya definidas las características, pasemos a las herramientas que nos ayudaran a crear nuestro sistema:

  • Windows Presentation Foundation
  • PRISM
  • MEF
  • Microsoft Enterprise Library
  • xUnit
  • CruiseControl .NET
  • MSBuild
  • Unity

El sistema debería de trabajar de la siguiente forma:
mock
Donde tendremos una barra de accesos directos a los módulos, cada modulo es independiente y gracias PRISM es cargado en tiempo de ejecución como un Plug-in de tal forma que fácilmente cada modulo puede ser mantenido independientemente.

En la siguiente entrega hablaremos en profundidad de algunas herramientas y la puesta a punto del proyecto básico.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s