Cono Sur, Octubre de 2007

 

Número 20 

 

Del Editor

http://msdn2.microsoft.com/en-us/smartclient/bb232829.redesign_sm(zh-cn,MSDN.10).gif

 

Mejorar se hace impostergable

Desarrollar software es y seguirá siendo una tarea intrínsecamente compleja. Entregar software con un nivel de calidad aceptable, en presupuesto y a tiempo requiere de una constante coordinación entre las diferentes actividades que realizan los integrantes de un equipo de desarrollo. La complejidad inherente a la administración de los proyectos se incrementa aún más cuando las organizaciones deciden basarse en modelos de desarrollo distribuidos o externos como el desarrollo offshore o el outsourcing. Como resultado de todo esto, la cancelación de proyectos, los atrasos, los presupuestos desbordados y la baja calidad de los entregables se han transformado en el común denominador de todas las organizaciones.

El camino hacia un Proceso de Desarrollo de Software Predictivo y Efectivo

Si queremos cumplir con la vieja promesa de satisfacer las necesidades del negocio, mejorar se hace impostergable. Instaurar un proceso de desarrollo de software que sea predictivo y a la vez efectivo debe transformarse en una de las máximas prioridades de cualquier departamento de tecnología. Para alcanzar este objetivo, deberíamos concentrarnos en ciertos aspectos que representan la base para comenzar a mejorar nuestro proceso de desarrollo actual:

-          La multiplicidad de roles

-          Un marco metodológico adecuado

-          Plataforma de desarrollo colaborativa

La multiplicidad de roles

Tenemos que asumir que aquella época en la que todo lo resolvía un programador en solitario ya es parte del pasado. Hoy día, la multiplicidad de roles y los niveles de especialización dentro de cada rol son fundamentales. Dentro de un equipo de desarrollo deben existir múltiples roles como ser Arquitecto, Jefe de Proyecto, Designer, Programador, Ensamblador, Tester, etc. Cada rol debe tener un conjunto de responsabilidades asignadas, independientemente de que un individuo asuma más de un rol. La interacción entre roles debe estar regulada por procesos que aseguren el cumplimiento de las responsabilidades individuales y comunes del equipo. El nivel de formalidad de cada proceso dependerá del marco metodológico adoptado, por ejemplo, las metodologías ágiles se basan principalmente en procesos informales basados en la comunicación oral entre los diferentes integrantes del equipo. Finalmente, nuestro proceso de desarrollo debe contemplar que cada uno de estos roles cuente con las herramientas adecuadas para poder desempeñar de la mejor manera posible las tareas asignadas a cada rol.

 

Un marco metodológico adecuado

Las metodologías de desarrollo de software definen las prácticas o disciplinas que aplicamos diariamente en nuestro trabajo como ser Project Management, Análisis, Diseño, Especificaciones, Testing, Aseguramiento de la calidad, etc. Actualmente, existen en la industria 2 tendencias vinculadas a este tema, las metodologías formales y las metodologías ágiles. Dentro de las metodologías formales encontramos Waterfall, Microsoft Solutions Framework for CCMI, Open Unified Process, etc. Bajo el marco de las metodologías ágiles tenemos Extreme Programming, SCRUM, Agile Modeling, etc. Mal o bien, todos trabajamos bajo algún tipo de marco metodológico. La clave en relación a este punto radica en adoptar y personalizar la metodología que más se adecue a las necesidades y características de mi empresa para posteriormente integrar las prácticas y disciplinas definidas por dicha metodología dentro de las actividades y herramientas que utilizamos día a día.

 

Plataforma de desarrollo colaborativa

Como mencionaba anteriormente, nuestro proceso de desarrollo debe contemplar que cada uno de los integrantes del equipo cuente con las herramientas adecuadas para desempeñar el o los roles asignados. Los desarrolladores necesitan utilizar un repositorio común de fuentes, integrar capacidades de testing unitario y vincular los trabajos realizados a las tareas asignadas. El Project Manager necesita administrar los requerimientos del proyecto, publicar la documentación, acceder fácilmente a dicha documentación y obtener automáticamente las métricas de avance generales del proyecto. El arquitecto debe poder definir y documentar visualmente la arquitectura de la aplicación. El Tester necesita integrar y automatizar las pruebas funcionales y las pruebas de carga del proyecto. La persona encargada de la integración y del ensamblaje del proyecto necesita automatizar las tareas de building para que se ejecuten en horarios donde el equipo no se encuentra trabajando. Los sponsors del proyecto necesitan acceder a los reportes de avance y a la información estadística que respalda el estado de salud actual del proyecto. Todos los integrantes del grupo necesitan compartir una infraestructura común para la asignación y el cumplimiento de tareas. Adicionalmente, todas las actividades realizadas y los entregables generados deben estar vinculados al marco metodológico definido. La metodología debe transformase en un elemento activo que ayude a regular el desempeño y el cumplimiento de las actividades realizadas durante todo el ciclo de vida del proyecto.

 

Microsoft Visual Studio Team System

Visual Studio Team System (VSTS) es la plataforma de desarrollo integral y colaborativa impulsada por Microsoft. VSTS ofrece un conjunto completo de herramientas especializadas para cada uno de los roles del equipo. Uno de los componentes principales de dicha plataforma es el nuevo servidor de desarrollo denominado Team Foundation Server (TFS). TFS ofrece todos los servicios requeridos para la implementación de un escenario de desarrollo colaborativo entre los que se destacan el repositorio centralizado y seguro de fuentes, la asignación de tareas y responsabilidades basadas en ítems de trabajo (Work Items), la generación y actualización automática del portal del proyecto y la creación de un Data Warehouse estadístico actualizado en forma automática en base a las actividades realizadas por el grupo. TFS combina todos estos servicios con el marco metodológico utilizado para cada proyecto. Ofrece templates para metodologías ágiles y para metodologías formales y la capacidad de personalizar dichos templates para adaptarlos a los requerimientos específicos de cada organización. 

 

Conclusiones

Instaurar un proceso de desarrollo de software que sea predictivo y efectivo debe transformarse en una de las máximas prioridades de cualquier departamento de tecnología. Desde Microsoft seguiremos trabajando en la evolución de Visual Studio Team System como una plataforma de Application Lifecycle Management (ALM) integral y extensible.

 

Será hasta al próximo mes!

 

Martín Cabrera

Arquitecto de Software

Microsoft Cono Sur

Martin.Cabrera@microsoft.com

http://dmartincabrera.spaces.live.com

http://blogs.msdn.com/mcabrera

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Application Lifecycle Management (ALM) Assessment
Para poder mejorar nuestro proceso de desarrollo, debemos partir por determinar en qué estado se encuentra actualmente nuestra organización. A través de esta evaluación, completamente vendor-agnostic, podremos determinar nuestro estado actual y los próximos pasos a seguir.

 

.NET 3.5 viene con Código Fuente

Además de incorporar un montón de nuevas características, el .NET Framework 3.5 será distribuido con el código de fuente de la gran mayoría de sus librerías.

 

Silverlight correrá en Linux

Microsoft y Novell firmaron un acuerdo de colaboración a partir del cual Novell, a través de su proyecto Mono, implementará una versión open-source de Silverlight 1.0 y Silverlight 1.1 denominada Moonlight.

 

Integración entre Project Server 2007 y Team Foundation Server

Ya esta liberada la versión del nuevo conector que permite integrar Project Server 2007 con Team Foundation Server. La integración de ambos productos le ofrece a las organizaciones una administración integral para todo su portfolio de proyectos.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dell adopta Visual Studio Team System
Utilizando Visual Studio Team Foundation Server como plataforma de administración de código, Dell mantiene un repositorio centralizado y consolidado con todo el código fuente de sus aplicaciones. Esto permite que sus desarrolladores trabajen siempre sobre un repositorio común de código, independientemente de su localización.

 

What's New in Visual Studio 2008?
Si quieres informarte rápidamente de las nuevas características de Visual Studio 2008, este artículo publicado en MSDN te resultará sumamente útil.

 

 

 

 

 

 

 

 

 

 

 

 

An Introduction to Windows Server 2008 Server Manager
Una de las características más novedosas que incorpora Windows Server 2008 es su capacidad de administrar servidores en base al concepto de “Roles”. Los Roles determinan las responsabilidades asignadas a cada servidor, ej: Servidor de base de datos, Servidor Web, Servidor de Dominio, etc. Este artículo les ofrece una introducción muy completa a esta y otras novedades vinculadas con la nueva versión de Windows Server.

 

 

 

 

Enlaces

 

Journal de Arquitectura
de Microsoft Corp

 

Microsoft Architecture Resource Center

 

Microsoft Patterns & Practices

 

MSDN Magazine

 

International Association
of Software Architects

 

   The Server Side NET

 

   Channel 9 Videos

 

Conozca las experiencias de éxito de sus colegas:

- Argentina

- Bolivia

- Chile

- Paraguay

- Uruguay

 

 

 

 

 

 

 

Fun Stuff

 

 

 

 

XNA Creators Club Online!

Mix 07
Download the Party!

 

 

Eventos

 

Webcasts de
Arquitectura (español)

 

 

 

 

<Arquitectura>
IT Lifecycle Management, A Focus on Microsoft

 

 

 

En la primera parte de este artículo, Theresa Lanowitz, de vokeStream, analiza la importancia estratégica que hoy día tiene para las empresas el hecho de implantar un proceso de administración del ciclo de vida del software que nos garantice nuevamente el retorno de la inversión y la satisfacción de nuestros clientes. En la segunda parte, Theresa nos introduce en la propuesta que ofrece actualmente Microsoft para implantar dicho proceso en forma exitosa.

 

Leer Artículo…

 

 

 

<Arquitectura>
Visual Studio Team System, Adopting a Value-Up Paradigm

 

 

 

En este artículo, Sam Guckenheimer de Microsoft Corp, realiza un análisis muy interesante sobre los problemas vinculados con la administración casi “artesanal” de los proyectos y de las ventajas vinculadas con la incorporación de herramientas que efectivamente mejoran nuestro proceso de desarrollo.

 

Leer Artículo… 

 

 

  

 

<Desarrollo>
 Introducing Windows Presentation Foundation

 

 


David Chappell, uno de los consultores más reconocidos del mercado, acaba de publicar este excelente artículo sobre Windows Presentation Foundation. En su artículo, Chappell concluye que WPF representa actualmente la base fundacional para el desarrollo de aplicaciones de escritorio de los próximos 20 años.

 

Descargar y leer Artículo…   

 

 

 

 

 


Usted ha recibido este boletín pues está registrado como miembro en nuestro grupo de