Mostrando entradas con la etiqueta Software Factory. Mostrar todas las entradas
Mostrando entradas con la etiqueta Software Factory. Mostrar todas las entradas

martes, 9 de marzo de 2010

Fábricas de Software – El Diagnóstico

En mi post anterior sobre fábricas de software escribí un poco de lo que  estas son a nivel general. Como comenté, la primera etapa para la implementación de estas es conocida como Diagnóstico. Pero concretamente, ¿qué aspectos son los que debo diagnosticar? bueno, son estos aspectos los que empezaré a comentar:

La Metodología: este aspecto suele ser el más básico201003-01-FabricaSWDiagnostico. Pero muchos piensan que hablar de metodología es hablar de algo complejo o pesado, de documentación en abundancia y artefactos por doquier. Realmente no es así, metodología es hacer que los métodos comúnmente aplicados por miembros de mi equipo se formalicen e implanten no a nivel individual, sino de equipo. Es por ello que cada método o procedimiento debe ser analizado por todos los miembros, se deben comparar y así determinar el más adecuado (basándonos en criterios como eficiencia, calidad, esfuerzo requerido, etc.), posteriormente esto se puede documentar aunque sea en un formato checklist (ojo también pueden ser plantillas más elaboradas) y aplicar el versionamiento respectivo.

El Equipo: es fundamental conocer al equipo que se posee, conocer sus competencias técnicas y de aptitud. Es necesario tener claro el perfil de cada miembro del equipo, así como los temas de su preferencia o dominio (línea de negocio que más le guste o aplique). El conocer el equipo me permitirá identificar a su vez aspectos claves como: roles con los que cuenta el equipo (a veces todos son programadores, y resulta que también necesito Analistas Funcionales, Testers, etc.), si conocen la tecnología que requiere el cliente, si se encuentran actualizados, si encajan con lo que ofrece mi servicio. En base a esto debería apuntar por lo menos a cubrir los siguientes roles: Jefe de Servicio, Jefe de Proyecto, Arquitecto de Software o al menos Líder Técnico, Analista Funcional, Analista Desarrollador o al menos Desarrollador, Analista de Control de Calidad o al menos Tester, y Help Desk. Si no tengo cubiertos todos estos roles, dificilmente pueda cumplir con el servicio que debería ofrecer una fábrica de software.

Las Herramientas: hay herramientas principales que debería identificar como: software de gestión de proyectos (por lo menos algo como MS Project), control de código fuente, portal de colaboración (administrador de contenido del proyecto), software de modelado BPM/UML/Diagramas de Flujo que me permita modelar el negocio y sistema, software de modelado de ER/base de datos, entorno de desarrollo integrado (popularmente conocido como IDE) de la tecnología a utilizar, software de pruebas unitarias (generalmente incluido en el IDE), software de documentación de observaciones (al menos algo como MS Excel) y software de incidencias (que me permita generar tickets de atención a usuarios del sistema). Todas las herramientas identificadas deben documentarse brevemente; además, debe tenerse información de soporte como How To’s, ayudas, videos, manuales, etc.

La metodología, el equipo, las herramientas y el workflow de servicio son los aspectos claves que debo diagnosticar. La calidad de estos determinará, en mayor o menor medida, el cumplimiento adecuado del servicio de mi fábrica de software“

El Workflow de Servicio: este aspecto es clave, practicamente es el que determina si ciertamente cumpliré con lo mínimo requerido por mi cliente. Un flujo de servicio determina, o debería determinar, el flujo de atención de mi fábrica. Hay que desarrollar aspectos claves como: tipos de proyectos que se atienden, duraciones, documentación a generar para cada tipo, roles que intervienen (sobre todo para las aprobaciones), entregables e indicadores de medición de mi servicio.

Como consecuencia del diagnóstico debería obtenerse conclusiones que me permitan tomar medidas preventivas, de seguimiento y control, y correctivas del servicio brindado por mi fábrica de software.

domingo, 21 de febrero de 2010

Fábricas de Software - Introducción

Hoy en día el término Fábrica de Software, o bien conocido en inglés como Software Factory, viene asomándose con fuerza en la mayoría de empresas que tienen un área de sistemas o consultoras que brindan servicios en tecnologías de información. Sin embargo, como parte de mi experiencia en este rubro he podido corroborar que a veces esto sólo queda en un término debido a que en la práctica, por ejemplo, no se aplican criterios de control de calidad del software que se produce, o aún peor, los miembros del equipo no saben que deben hacerlo.

En efecto, todo esto me ha llevado a sentir en muchas oportunidades que el término "Fábrica de Software" lo utilizan más para efectos de marketing o ventas y no para lograr producir software de calidad bajo un esquema de eficiencia en el servicio.

Con este post busco iniciar lo que será el tema de Fábrica de Software debido a que existen muchos aspectos por abordar y temas por tocar. Seré bastante conciso en los puntos principales, sin embargo, advierto que en la realidad para que una empresa se vuelva Fábrica de Software pueden pasar años y no sólo es necesario incluir al equipo que desarrolla el software sino a toda la organización.

En mención a todo lo anterior, es necesario situar un punto de partida para una fábrica de software, en la práctica ese punto de partida resulta ser la estrategia de la organización. Por ejemplo, si una empresa como estrategia para el cumplimiento de su misión y visión decide apuntar a una certificación internacional como CMMI entonces será necesario alinear todos los procesos y personas a las metas de cumplimiento de CMMI (en el nivel requerido); asimismo, será necesario contar con la tecnología necesaria para poder cumplir con dichas metas de manera eficiente.

Pero no sólo es necesario conformar el triángulo Procesos-Personas-Tecnología que le permita ejecutar la estrategia de una organización sino que también todo esto debe estar inmerso en un marco de trabajo medible y certificable. Medible porque para tomar decisiones de mejora deben existir indicadores claros para las respectivas gerencias. Por otro lado, debe ser certificable porque obtener un certificado internacional como CMMI, ISO u otros brinda un valor sustancial a la organización de cara a sus competidores en el mercado.

Entonces, luego de analizar todos estos puntos podemos concluir que una fábrica de software resulta ser un tema mucho más complejo de manejar que el sólo hecho de producir software. Más de una vez he podido apreciar como una organización ofrece sus servicios como fábrica de software y sin embargo el grado de satisfacción del cliente es muy bajo, y es que el mejor indicador de que tan bien nos va resultan ser los mismos clientes.

Como recomendación final quisiera decir que lo más sensato antes de iniciar este díficil proceso que es convertirse en fábrica de software se debe hacer un diagnóstico detallado de la situación de la organización, de los equipos de desarrollo, de nuestros servicios y de nuestros clientes pues sólo de esta forma sabremos de manera más certera que es lo que necesitamos para cumplir con los objetivos estratégicos.