Consejos para la administración de proyectos de software
Si bien es cierto existen muchos modelos para la administración de proyectos, desgraciadamente esta industria es tan flexible y cambiante que no existe una receta a aplicar, es por esto que en muchas ocasiones se utilizan mezclas de modelos y/o diferentes dependiendo de variables tales como: calendario, urgencia, prioridades, recursos, entre otros.
En el caso de la administración de los proyectos estos se pueden hacer por medio de la metodología PMI o de igual forma por la Scrum/Agile (algunos clientes de desarrollo de software prefieren dicha metodología).
Entre los modelos de trabajo se pueden encontrar:
MODELO PROTOTIPO
Este modelo es de mucha utilidad para el desarrollo de software ya que ayuda a minimizar problemas de entendimiento de requerimientos así como ayuda a centrar a los clientes en cuanto a lo que buscan. En este modelo se inicia por obtener los requerimientos funcionales del cliente y seguidamente proceder por la creación de un prototipo muy básica (ni siquiera llega a nivel de beta) en donde se muestran ciertas funcionalidades del sistema según los requerimientos, esto ayuda a confirmar el entendimiento de los requerimientos (máxime cuando se tienen cálculos de por medio). Este modelo se puede trabajar en conjunto al modelo de espiral, lo que permite ir creciendo por fases (y también funciona muy bien con la metodología Agile dado que cada entregable puede considerarse un sprint).
¿Cuáles son las ventajas? Permite confirmar el entendimiento de los requerimientos en una etapa temprana haciendo que los cambios no generen un impacto alto en fases más adelante.
¿Cuáles son las desventajas? La naturaleza del proyecto requiere que sea de una duración moderada dado que se lleva mucho tiempo de revisiones. De igual forma se tiene que tener muy buen control de cambios para tener muy claro los alcances del proyecto (lo pagado versus lo desarrollado).
Más información sobre este modelo la puedes encontrar acá:
http://www.ricardochamberlain.com/2011/04/desarrollo-de-prototipos-de-software/
MODELO CASCADA
Este es de los modelos más comunes y va muy de la mano con la metodología PMI ya que es muy estructurada. Una de las ventajas de este modelo es que posee entregables definidos (conocidos como hitos o milestones) así como etapas definidas las cuales ayudan a llevar un orden cronológico así como una lista de entregables.
¿Cuáles son las ventajas? Ayuda a llevar un orden de entregables y es muy fácil de llevar el seguimiento del estatus del proyecto.
¿Cuáles son las desventajas? No es muy flexible a los cambios dado que es muy estructurada y rigurosa en cuanto a su calendario, lo que puede ocasionar a que los cambios post entrega sean de un impacto alto.
Más información sobre este modelo la puedes encontrar acá:
http://www.ricardochamberlain.com/2011/04/modelo-cascada/
OTROS MODELOS
Acá le comparto otros modelos que se utilizan para el desarrollo de software, son menos “populares” pero lo importante es estudiarlos, entenderlos y tener un criterio de decisión cuando se defina la estrategia a utilizar:
Modelo Espiral: http://www.ricardochamberlain.com/2011/04/el-modelo-de-espiral/
Modelo del Caos: http://www.ricardochamberlain.com/2011/04/modelo-del-caos/
Modelo en V: http://www.ricardochamberlain.com/2011/04/modelo-en-v/
Modelo SDM: http://www.ricardochamberlain.com/2011/04/modelo-sdm-system-development-methodology/
ASEGURAMIENTO DE LA CALIDAD
Un pilar súper importante en el desarrollo de software es el aseguramiento de la calidad. Este factor puede ser en muchos casos el factor distinción entre empresas: una empresa puede ser más barata o más cara que la otra, pero su calidad es la que al final cuenta.
En cuanto al aseguramiento de la calidad existe muchos modelos con diferentes fines, entre ellos: regresión (cuando se asegura que lo nuevo no afecte lo viejo), integración (la unión de módulos, componentes, funcionalidades, etc), matriz de trazabilidad (asegurarse que los requerimientos fueron cumplidos), pruebas de aceptación (es una de las revisiones del cliente para obtener su aprobación).
Puede encontrar más información acá:
Matriz de Trazabilidad: http://www.ricardochamberlain.com/2011/07/matriz-de-trazabilidad/
Pruebas de Regresión: http://www.ricardochamberlain.com/2011/05/pruebas-de-regresion-2/
Pruebas de Aceptación: http://www.ricardochamberlain.com/2011/05/pruebas-de-aceptacion/
ASPECTOS IMPORTANTES EN EL DESARROLLO DE SOFTWARE
A criterio personal a continuación le comparto los detalles más importantes que se debe de tener en la administración de proyectos de software que ayudan a la administración de clientes:
Definición e Identificación de Usuarios
A como para la administración de proyectos es importante definir quiénes son los patrocinadores, para el desarrollo de software es de vital importancia definir e identificar los diferentes tipos de usuarios que interactuarán con el sistema.
Levantamiento de Requerimientos
Una definidos e identificados los usuarios, se deben de realizar entrevistas con cada uno para obtener sus necesidades que el software deberá de satisfacer. Cuando se finaliza dicho proceso y se crea el documento de requerimientos se debe de obtener la aprobación de los involucrados del proyecto.
Control de Cambios
Como todo proyecto es importante de tener un control de cambios en los requerimientos. Por su naturaleza los clientes son indecisos y en muchos casos no tienen claro lo que tienen hasta que empiezan a ver el producto tomando forma. En la industria del software los cambios pueden ser en cascada y lo que parezca sencillo puede no serlo ya que afecta otras áreas del mismo.
Comunicación
El mantener el cliente informado siempre da confianza, es por esto que una comunicación fluida, clara y transparente siempre es de gran utilidad para la administración de las expectativas y relaciones con el cliente. Es por esto que los prototipos sirven de mucho para irle mostrando al cliente el progreso.
Diagramas y Documentación
Toda documentación técnica es de gran utilidad, es importante que los desarrolladores realicen los documentos necesarios para el entendimiento de la estructura, alcance, funcionalidades. De igual forma los diagramas son útiles para que cuando haya que reemplazar, sustituir o añadir un desarrollador pueda tener a mano los documentos que le ayuden a su involucramiento. Entre los diagramas se encuentran: diagrama de clases, de uso, de base de datos, de variables/funciones/procedimientos.
La documentación interna en el código también es de mucha ayuda ya que facilitan el entendimiento de la lógica de los métodos, procedimientos, funciones, entre otros.
Aseguramiento de la Calidad
Hoy por hoy cualquier persona puede ofrecer sus servicios informáticos y pueden entregar soluciones similares entre ellos, pero su verdadero factor de distinción se puede encontrar en la calidad del producto, asegurándose que cumpla con las expectativas y que se encuentre libre de defectos, pulgas y/o errores.
ENLACES
Scrum/Agile: http://en.wikipedia.org/wiki/Scrum_%28development%29
Atentamente:
Ricardo Chamberlain Noboa

Hi there! Someone in my Myspace group shared this site with us so I came to take a look. I’m definitely loving the information. I’m book-marking and will be tweeting this to my followers! Terrific blog and amazing design and style.
Hey! I know this is kinda off topic however , I’d figured I’d ask. Would you be interested in exchanging links or maybe guest authoring a blog article or vice-versa? My website discusses a lot of the same subjects as yours and I think we could greatly benefit from each other. If you might be interested feel free to send me an e-mail. I look forward to hearing from you! Terrific blog by the way!
Hi,
Please feel free to use either the contact form or email me to ricardo@ricardochamberlain.com
Regards
Great write-up, We are an enormous believer in commenting on blogs to support the weblog writers know that they’ve added something worthwhile anywhere int he planet extensive web! (source roblox-cheats.com). Anyway, during my language, you will find usually not much good source such as this.