
Ingeniería de Software (1/5)
Que tal!
Durante mucho tiempo se ha hablado del tema de “¿Cómo hacer software correctamente?” la respuesta a todo esto es que aun no lo sabemos con certeza, pero debido a la evolución de nuestra disciplina han emergido nuevos conceptos a lo largo del tiempo, como buen ejemplo podríamos hablar de las metodologías de software, procesos y herramientas que no solo ayudan a realizar un mejor código si no a también ayudar durante este complejo proceso.
Ingeniería de Software
¿Cual es el área de especialidad de la Ingeniería de Software?
Las Personas, Los Procesos y las Herramientas que intervienen durante todo el proceso de desarrollo de un producto de Software.
Personas
El pilar más importante del proceso debido obviamente a que el software aun no se programa solo, además que el resultado pende sobre sus hombros durante todo el proceso. Por otro lado al igual de importantes también complejas esto debido a que no son lineales, refiriéndonos a esto podríamos decir que las personas funcionan de acuerdo a diversos factores, por ejemplo su estado de animo, motivación, enfermedad, entre otras.
Dicho esto podríamos decir que el cambio más complicado al implementar cualquier mejora en el proceso será el que afecte directamente a las personas, puesto que como buen ejemplo, si una persona viendo conveniencia directa al plantearse un habito de mantener una dieta no puede lograrlo, no podremos pensar en modificar los hábitos de 30 desarrolladores que no ven un beneficio directo.
Entonces podríamos decir que el verdadero éxito no es lograr que un proyecto salga a tiempo, si no formar un equipo a un nivel tal que independientemente de las circunstancias puedan sacar cualquier proyecto adelante.
Procesos
Este es el tema más hablado en lo que refiere a Ingeniería de Software. “CMMI”, “Agile”, “Scrum” yo creo que son las palabras más sonadas cuando a proceso se refiere, debido claro esta a la promesa implícita que en los enormes manuales de las mismas podemos encontrar.
La pregunta más sonada podría ser entonces “¿Cual de todas las metodologías ágiles o no ágiles me recomiendas?” y con esta pregunta pueden venir muchas otras. La verdad a todo esto es que no hay metodología perfecta para una empresa perfecta, el objetivo de todas las metodologías siempre a sido ser un marco de referencia para que las mismas empresas las adapten a sus necesidades. Sin embargo lo que hemos visto a través del tiempo es que las empresas son las que se transforman para ajustarse a cumplir con una metodología, totalmente a la inversa de como debería ser.
“De la moda lo que te acomoda” Entonces podríamos decir que no por que a Microsoft le funcione utilizar Scrum significa que todas las empresas deberían usarla, debido claro esta a que cada una de ellas es como un organismo viviente, con sus problemas y virtudes; Por lo tanto no lo que le funcione a una le va a funcionar a otra.
Herramientas
VSTS, Herramientas de Rational, Subversion… y muchas otras más forman el amplio especto de herramientas que están diseñadas para ayudar a los usuarios y facilitar el proceso. Por esto mismo podríamos crear varias métricas para definir cual es la mejor de ellas, sin embargo a mi punto de vista la mejor herramienta siempre será la que permita adaptarse a las necesidades de la Empresa y por lo tanto del proceso.
“Para gustos se hicieron los colores” Ese comentario es claro, nos puede gustar mucho una u otra herramienta sin embargo el problema reside cuando decidimos dejar de experimentar con otras herramientas.
Otros principales rubros a analizar antes de implementar cierta tecnología siempre serán:
- La curva de aprendizaje
- El ROI (Return on Investment)
- Costo de customización
- Madurez Tecnológica de la Empresa (Y si tienes dudas, preguntale a Gartner)
- Entre otros…
Con esto concluimos con la primera parte de un ensayo acerca de Ingeniería de Software.
Saludos desde un Sprint!
¿Cómo Microsoft usa Team Foundation Server?
Si bien esta pregunta podría parecer un "Secreto Industrial" o que realmente algunos pensaran ¿Microsoft usa Team Foundation Server?. Pues la respuesta es positiva y el equipo de Project Managment, Work Item Tracking y Reporting nos explica cómo se utiliza en una serie de blogs.
Esta bastante interesante conocer el proceso y seria más interesante implementarlo algún día. Déjenme saber que piensan.
How Microsoft / DevDiv uses TFS - Chapter 1 (Our Process)
How Microsoft / DevDiv uses TFS - Chapter 2 (Feature Crews)
How Microsoft / DevDiv uses TFS - Chapter 3 (Addendum)
How Microsoft / DevDiv uses TFS - Chapter 4
How Microsoft / DevDiv uses TFS - Chapter 5 (Tracking Progress)
Saludos Malignos (En honor a un excelente blog Un Informático en el Lado del Mal)
Mono se acerca a Team Foundation Server
"OpenTF" un proyecto Open Source que tiene como objetivo crear un Cliente de Conexión para Team Foundation Server, entre sus características más visibles es un Plug-In para MonoDevelop para que pueda conectarse con Team Foundation Server. Por otro lado hace una implementación de los comandos de TFS para el manejo de la configuración del mismo.
Ya podremos ver ahora Proyectos de Mono en Team Foundation Server.
Más Información acerca de Mono: Mono - Wikipedia
Más Información acerca de OpenTF: OpenTF - Google Code
Saludos
TFS Power Tools - Release de Marzo
Ya está disponible la nueva versión de las TFS Power Tools, pero esta versión no es solamente una nueva Feature o algunos detalles corregidos. Realmente trae consigo una valiosa mejora en cuanto a personalización de Process Templates y Monitoreo del Servidor de Team Foundation Server. Entre las nuevas características se encuentran:
- El Process Template Editor soporta ahora Custom Controls (Si… lo sé!!, Custom Controls!!).
- Best Practice Analyzer con soporte para Windows Server 2008.
- La Power Tool "TFSServerManager" que entre otras cosas nos permite realizar un monitoreo del servidor de Team Foundation Server. Más Información: http://blogs.msdn.com/bharry/archive/2007/01/22/tfsservermanager-powertool.aspx
Espero disfruten de estas nuevas herramientas y les saquen el mayor provecho posible.
Saludos @ Ciudad Trafico










