Desplegando software de manera segura

El despliegue de software de manera segura implica que las características funcionales y no funcionales del software que se estas desplegando cumpla con los requisitos, he aquí la importancia de varios factores:

Los ambientes involucrados en el siclo de vida de desarrollo de software:

Antes de llegar a producción una aplicación debe pasar primero por distintos ambientes que certifiquen la calidad de software, los ambientes mas típicos por los que pasa una aplicación son el ambiente de desarrollo, el ambiente de test, el ambiente de aceptación por parte de los usuarios, el ambiente de pre producción y el ambiente de producción. Según las necesidades de cada organización se dara el caso en el que algunos de estos ambientes no sea necesario.

Para determinar si necesitamos todos estos ambientes hagamos un repaso rápido de cada uno.

El ambiente de desarrollo: es donde se crean el software y generalmente esta conformado por los ordenadores de los desarrolladores mas los servidores de desarrollo como por ejemplo los de base de datos o cualquier otro servicio.

El ambiente de test: es donde se prueban las aplicaciones por parte del equipo de QA, es donde se deben detectar todos los bugs  o incidencias funcionales y no funcionales, de manera que el software pueda llegar a producción libre de bugs y cumpliendo con todos los requerimientos funcionales.

El ambiente de aceptación: en este ambiente un grupo de usuarios prueba el software y se asegura de que funcionalmente cumple con los requisitos y con la lógica de negocio de la empresa además se comprueba que software sea usable y robusto.

El ambiente de pre producción: es el ambiente final antes de poner el software en producción, aquí las aplicaciones son probadas en condiciones de hardware muy parecidas a las de producción.

El ambiente de producción: es donde finalmente se despliegan las aplicaciones.
Seguir leyendo

Errores comunes cometidos por malos gerentes de proyectos informáticos.

Leyendo el blog Making Good Software me conseguí con este articulo que habla sobre errores cometidos  por el 99% muy comúnmente por los gerentes de proyectos de software o jefes de proyecto, aquí les dejo un resumen sobre el articulo, para leer el articulo completo en ingles puedes hacerlo aqui.

1. Creer que la productividad esta asociada a la cantidad de empleados o a las horas trabajas.

Creo que si no es el error mas común es uno de los más comunes, no esta basado en ningún hecho científico y además estudios han demostrado que esta práctica inclusive puede afectar de manera negativa la productividad.

2. Ningún manejo de las expectativas del cliente.

Los gerentes de proyectos necesitan estar seguros de que el cliente entiende que características del producto se entregaran y cuando.
Es normal que los gerentes de proyectos oculten los retrasos en el desarrollo de las aplicaciones, esperando que estas puedan ser corregidas y así no decepcionar al cliente, lo que suele pasar es que el cliente se termina enterando demasiado tarde o cuando no hay mas opción de los retrasos en lugar de disminuir la expectativa del cliente a medida que surgen retrasos y así no comprometer el proyecto entero.

3. Ignorar el feedback de los desarrolladores.

Esto suele traducirse al final en menos productividad y productos de baja calidad debido a que muchas veces el desarrollador no cuenta con todos los recursos o herramientas necesarias para realizar bien su trabajo.
4. Controlar en lugar de empoderar.

Lo desarrolladores necesitan ser creativos y pro activos y estas son dos cualidades que los gerentes controladores destruyen. En este caso empoderar se trata sobre hacer que los desarrolladores se superen así mismos y sean mejores de lo que ya eran.

5. Miedo a la toma de decisiones.

Un gerente de proyecto generalmente gana más dinero que los desarrolladores ya que tiene la responsabilidad de mantener el proyecto dentro de los lineamientos de calidad, tiempo, etc… Los gerentes de proyecto que no toman las decisiones difíciles en el momento preciso le están fallando al equipo, ya que posponer acciones y decisiones importantes se vera reflejado en el futuro del proyecto de manera negativa.