domingo, 27 de abril de 2008

Último libro leido: Flexibilidad con Scrum.

Este es un libro introductorio al modelo SCRUM. Es un modelo de desarrollo catalogado dentro de los métodos ágiles. Estos son métodos que nos prometen mayor agilidad en los procesos de desarrollo de productos.
En el libro se explica que es SCRUM, en que proyectos resulta más conveniente aplicar este modelo y como se aplica. Resulta un libro ameno, sencillo de leer y marca unas pautas básicas para comenzar a trabajar. Si se quiere tener una visión previa de este método e incluso si se quiere comenzar a aplicarlo es un libro muy recomendado.

Para saber más:
Descarga del libro.
Si quieres una copia impresa.

lunes, 21 de abril de 2008

Niveles de maduración de una empresa de desarrollo de software.

Las empresas que desarrollan software intentan obtener beneficios, al fin y al cabo es la principal misión de una empresa privada con ánimo de lucro. Las técnicas formales de ingeniería del software pueden ayudar a ello puesto que proporciona herramientas para la previsión de costes / tiempo.
Ahora bien, implementar estas técnicas no es fácil, lleva tiempo y esfuerzo. No es sencillo organizar a un conjunto de personas para que actúen de forma unificada y óptima con el objetivo de producir un producto determinado.
Según sea el nivel de implementación de estas técnicas se catalogan las empresas en cinco niveles.

Nivel 1. Inicial.
Es el el que comienzan, se mantienen y por último mueren las mayorías de las empresas. Es este nivel no hay métodos establecidos y se prima la filosofía del 'code & fix' . Se codifica y se corrige de manera continua hasta que el producto ( generalmente de baja calidad ) se termina. El éxito es necesariamente cosa de fortuna y fácil que el producto sea económicamente desastroso. Además el personal suele quemarse debido a la gran cantidad de horas extras gratuitas empleadas para que el producto sea económicamente favorable a la empresa.

Nivel 2. Repetible.
Se establecen un número limitado de mecanismo de ingeniería a nivel de proyectos.

Nivel 3. Definido.
Las herramientas definidas en el nivel dos han sido documentadas y estandarizadas y se emplean en toda la empresa.

Nivel 4. Administrado.
Los resultados del desarrollo son predecibles y la calidad está garantizada.

Nivel 5. Optimizado.
Ahora la organización se encuentra en proceso de mejora continua. El número de empresas que se encuentran en este nivel es del 0.1% .

Se estima que los tiempos requeridos por una organización para pasar de un nivel a otro son los siguientes:
  • nivel 1 a nivel 2 se emplean 23 meses
  • nivel 2 a nivel 3 cerca de 22 meses
  • nivel 3 a nivel 4 unos 28 meses
  • nivel 4 a nivel 5 cerca de 17 meses
Hay un número finitos de factores necesarios para que una empresa se pueda definir como madura, son estos:
Factorización de los resultados. La calidad del producto final está garantizada ya que los procesos de fabricación lo garantizan.
Escalabilidad. Se pueden añadir equipos de trabajo y la calidad sigue garantizada.
Mejora continua. Se tienen los mecanismo necesarios para incrementar la eficacia y la calidad de los productos.
Know-how propio. Los métodos empleados son el mejor activo de la empresa.

Estos niveles de maduración se entienden sobre los sistemas de ingeniería predictiva (o clásica) ya que los métodos llamado ágiles no pueden catalogarse dentro de estos niveles.

viernes, 18 de abril de 2008

Calidad en el software. ISO 9126.

El estándar ISO 9126 define una serie de parámetros de calidad englobados en seis categorías. Dependiendo de cada aplicación y el ámbito para el cual está definido el contenido de estas categorías debería ser completado.
Las categorías son las siguientes:
Eficiencia.

Usabilidad.
Facilidad de uso y aprendizaje del software.
  • Comprensibilidad La aplicación tiene una estructura y lógica comprensible.
  • Facilidad de aprendizaje
  • Operatibilidad Facilidad con la que se opera y controla la aplicación.

Funcionalidad.
Grado en que los requerimientos implícitos o explícitos se cumplen. A su vez se divide en varios factores.
  • Adecuación. Debe tener un conjunto de funcionalidad apropiadas para las tareas que se han especificado.
  • Exactitud. Sus funcionalidad hacer lo acordado de forma correcta y previsible.
  • Interoperatividad. Interactua de forma correcta con otros sistemas especifiados.
  • Conformidad. Cumple con todas las normas, leyes y estándares que se encuentran en su ámbito de actuación.
  • Seguridad de acceso. Protege ante accesos no autorizados al sistema.
Fiabilidad.
Grado en el que el sistema responde bajo las condiciones definidas durante un intervalo de tiempo dado.
  • Nivel de madurez. Frecuencia entre fallos, defectos o errores.
  • Tolerancia a fallos. En caso de producirse fallos como se comporta el sistema ante ellos.
  • Recuperabilidad. Capacidad de recuperar datos en el caso de fallos.


Mantenibilidad.
Esfuerzo requerido para la implementación de cambios. Grado de degeneración del software a lo largo de su vida. Este es un punto importante debido a que la mayor parte de su vida el software está en la fase de mantenimiento.
  • Facilidad de análisis. Facilidad con la que se localiza el origen de un error.
  • Capacidad de modificación. Facilidad con la que se modifica o adapta el software.
  • Estabilidad. Riesgos o efectos surgidos al realizar cambios.
  • Testeabilidad. Facilidad con la que se validan las modificaciones.

Portabilidad.
Facilidad para transportar el producto software a otros ambientes.
  • Adaptabilidad. Facilidad de adaptación a otros entornos sin hacer modificaciones.
  • Facilidad de instalación. Facilidad de instalación en otro ambiente.
  • Conformidad. Grado de soporte de los estándares y convenciones de portabilidad.
  • Reemplazabilidad. Capacidad de reemplazar a otro software en ese ambiente.
Eficiencia.
Tiene un bien ratio entre consumo de recursos y velocidad / tamaño bajo condiciones bien definidas.
  • Comportamiento temporal. Tiempo de respuesta y rendimiento en la realización de una funcionalidad.
  • Consumo de recursos. Cúantos recursos consume y durante cuánto tiempo.

jueves, 10 de abril de 2008

Se buscan astronautas.

Después de sus dos increíbles éxitos (el módulo laboratorio Columbus de la ISS y el carguero espacial ATV ) la agencia europea se ha lanzado a la búsqueda de nuevos astronautas para incorporar en su plantilla.
Y trabajo parece que no faltará, las próximas misiones a la ISS, la exploración de Marte, el regreso a la luna y los retos científicos que se aproximan en el futuro hace que el número de misiones por abordar sea casi infinito.
A mi ya me pilla un poco mayor esta oferta pero si tienes condiciones suficientes o quieres orientar tu carrera profesional ya sabes lo que tienes que hacer.

Más información en:
http://www.esa.int/esaCP/SEMJ8J3XQEF_Spain_0.html

viernes, 4 de abril de 2008

Medición de proyectos.

"Medir el progreso del desarrollo de un programa por líneas de código, es como medir el avance de la construcción de un avión en toneladas."
Bill Gates