lunes, 30 de junio de 2008

Scrum en 15 min - Episodio 2: ¿Qué es Scrum?

La segunda entrega de la serie Scrum en 15 min responde "¿Qué es Scrum?" para la charla de ascensor.

Espero les sirva! Vean el videos y la ppt.

Para una descripción de ¿Por qué Scrum? y la idea general de esta serie de webcast, pueden ver este post.


Scrum en 15 min - Episodio 1: ¿Por qué Scrum?

Siguiendo una idea de Microsoft Argentina (Martín Salias, Ezequiel Glinsky y Juan Ladetto), inicio una serie de webcast con el objetivo de ayudar en la difusión de Scrum.

La intensión es poner disponible material (en general presentaciones tipo ppt) y la presentación verbal, para que quede disponible para ser usada y/o reusada, por cualquiera que quiera difundir Scrum.

Siguiendo el espíritu de Scrum, las presentaciones son de tiempo fijo (15 min) y las iré haciendo en forma incremental, según interés propio y ajeno. Por lo tanto, les pido que comenten sobre las presentaciones, para mejorarlas, como también pidan temas para próximos webcast.

Este episodio presenta las motivaciones para el uso de Scrum, y su área de aplicación.

Espero les sirva! Vean el videos y la ppt.



Curso “Administración de proyectos de software” - Día 1

Hablando de planificación y manejo de riesgos!
Ya que no había rutas cortadas por chacareros, ni por camioneros, ni por incendios... tuvimos niebla.

A pesar de las 5 hs de espera en la ruta, iniciamos el curso (más datos del curso aquí).
El primer día consistió en la presentación de la idea de proyectos, de donde surge, y el contexto en el que se aplica. La idea principal es la importancia de la visión compartida y lo que implica en cuanto a medidas de éxito del proyecto; y la importancia de tener en cuente el contexto en el que está el proyecto.

La presentación queda disponible aquí.
Sobre la medida del éxito, pueden ver este post.

Nos volvemos a ver el viernes (usando otra mitigación de riesgo!)

Reportaje a Mary y Tom Poppendieck

Este es un resumen de un podcast (entrevista hecha por Scott Hanselman). Espero tentarlos para que lo escuchen (al podcast) y para que vengan a Agiles 2008 para escucharlos en vivo (y quizás hacer el curso de Lean!)

Medida del éxito

Parten hablando de los criterios de éxito de los proyectos (y el famoso CHAOS report).
¿Es el cumplimiento de (costo, funcionalidad, tiempo) la medida del éxito? ¿Y por lo tanto el no cumplirlos es fracaso?
¿Qué pasa con la calidad, que pasa con el valor de negocio / satisfacción del cliente?

Podría ser mejor definir el criterio de éxito basado en:

  • Éxito del negocio
  • Para productos: participación en el mercado, rentabilidad
  • Cuán rápido soy para generar soluciones (aprovechar oportunidades)

Para esto, debo armar el equipo para que trabaje desde el Análisis de la necesidad del mercado hasta la producción del producto rentable que cubra esas necesidades.

La trampa de algunas implementaciones de metodologías ágiles es que se limitan a la construcción de un producto basado en requerimientos, y esto es en muchos casos solo una parte de la cadena de valor.

Complejidad

Los P tienen una teoría llamada Measurement Up: si al triángulo el hierro (costo, funcionalidad, tiempo) no es suficiente para medir el éxito, y le agrego más variables (calidad, satisfacción) ¿cómo balanceo todas? ¿cuáles mido para administrar mi trabajo?

La propuesta es tratar de extraer alguna métrica más importante, que guíe a las otras. Por ejemplo, satisfacción del cliente, y el equipo debe derivar las otras métricas y sus relaciones y tradeoff. Esta complejidad es inherente al problema y no puede ser resuelta “mecánicamente”, con alguna receta.

¿Ágil es moda?

De los lenguajes compilados a estructurado a 4ta generación a CASE a objetos a CMM/I a Ágil ….

Cada 7 años (una generación de managers) tenemos una nueva “moda”, ¿por qué? Algunos por la búsqueda del Silver Bullet, otros por la mentalidad de crisis (ya que estamos mal, algo tenemos que hacer para mejorar). Pero lo más saludable es tener presente la complejidad y las tensiones inherentes a nuestro trabajo: arquitectura o entrega rápida, entender el problema (analizar) o explorar, etc.

Tenemos que buscar el balance que sea apropiado para nuestro caso. Pero tendemos a pasar de un extremo al otro.

¿Ayudan los consultores externos/tercerización?

Si nuestro negocio de resolver problemas de negocio/oportunidades de forma redituable lo hacemos a través de consultores o tercerizamos, porqué no podría hacer lo mismo nuestra competencia?

Entonces, como equipo, debemos aprender a resolver los problemas incorporando ideas, leyendo libros, etc, pero somos nosotros, los del equipo, los que sabemos que es lo mejor para nuestro negocio.

Es importante que el equipo hable de nuestro negocio, no “el negocio”, ya que eso pone al negocio como algo externo al equipo.

En algo pueden ayudar los consultores: trabajo adicional (cuando se hacen cambios, puede ser necesario hacer más que lo habitual), dar una perspectiva externa (incluye comentar ideas que funcionaron en otros lugares, recomendar libros), acelerar la adquisición de conocimiento (aprender de libro lleva más tiempo).

Pero es el equipo el último árbitro de que sirve en su contexto.

Para los que no lo leyeron aún, estos temas están incluidos en los libros de M & T


martes, 24 de junio de 2008

SEPGLA 2008 - Mar del Plata - Convocatoria Ponencias

Copio la convocatoria, y el aviso de extensión del plazo!

Considerando el tema de la conferencia (
Combinando Disciplina con Métodos Ágiles), creo que los lectores de este blog van a estar muy interesados

Lucas Campos y yo presentamos un caso en la versión anterior (SEPGLA 2007- Santiago - Chile), y fue una buena experiencia.
Preparar un abstract no lleva tanto tiempo, aunque tienen que trabajar el título y el contenido para que sea "vendedor". Preparar la presentación tampoco les llevará tanto tiempo, es el tiempo que lleva preparar una charla de 45 min.
Éxito para los que se presenten!

--------------

Se amplía el plazo al día 2 de JULIO.
A lo largo del día de hoy estará disponible el sistema WITAN WEB.


From: SEPGLA mail
Sent: 17 June 2008 11:40
Subject: CONFERENCIA SEPG LA 2008 - 12/14 NOVIEMBRE - MAR DEL PLATA - ARGENTINA

SEPGSM LA Conferencia

Quinta conferencia anual SEPGSM Latinoamérica

12, 13 y 14 de Noviembre, Mar del Plata, Argentina

Combinando Disciplina con Métodos Ágiles

Web: http://www.esi.es/SEPGLA/

CONVOCATORIA DE PONENCIAS PARA PRESENTACIONES, PANELES Y SEMINARIOS


Plazo para la entrega de las propuestas: 25 de Junio, 2008

Tenemos el gusto de anunciar la quinta conferencia anual SEPG Latinoamérica, que será celebrada del 12 al 14 de noviembre, 2008 en Mar del Plata, Argentina.

Invitamos a los interesados, a que nos envíen sus propuestas para presentaciones, seminarios y paneles antes del 25 de Junio.

SEPGSM LA 2008 se dirige a profesionales implicados en actividades de mejora sistemática de personas, procesos y tecnologías en organizaciones donde el software es un elemento clave para la consecución del éxito empresarial. Esta quinta edición interesa tanto a experimentados especialistas como a aquellos que se están iniciando en procesos de software y sistemas.

Este año, el tema de la conferencia es "Combinando Disciplina con Métodos Ágiles". En el actual entorno globalizado y en constante cambio, las empresas deben ser capaces de ofrecer respuestas ágiles a las necesidades de sus clientes y de adaptarse rápidamente a las nuevas tecnologías. En este contexto, es fundamental obtener los beneficios de fiabilidad y calidad de unos procesos de software maduros sin perder agilidad y dinamismo frente a los cambios y nuevas oportunidades. La conferencia se centrará en las lecciones obtenidas de varias experiencias en el campo de la mejora de procesos de software, especialmente en América Latina, pero también en todo el mundo, con el fin de que la industria latinoamericana se beneficie de las mismas.

ESTRUCTURA DEL PROGRAMA DE LA CONFERENCIA

El programa de la SEPGSM LA 2008 se desarrollará a lo largo de tres días con tres sesiones paralelas e incluye presentaciones de keynotes, presentaciones generales, seminarios, paneles de discusión y reuniones espontáneas e interactivas de profesionales ("Birds-of-a-Feather"). El programa ofrecerá diferentes niveles (principiante, intermedio y avanzado) de contenido basado en los temas esbozados a continuación.

Como guía, las presentaciones tendrán una duración aproximada de 45 minutos (35 minutos de presentación, 10 de ruegos y preguntas), la duración total de los seminarios será de tres horas, y las de los paneles de hora y media (1 hora de presentaciones y media hora para ruegos y preguntas. Un moderador y mínimo tres panelistas)

ENTREGA DE PROPUESTAS

Solicitamos la presentación de resúmenes de 600-1000 palabras en español, portugués, o inglés en los que se describan las propuestas de presentaciones, paneles y seminarios, centrándose en al menos uno de los temas de la conferencia. En cada ponencia se ha de indicar claramente la audiencia objetivo: Principiantes (nuevos en procesos), Intermedio (implementación), Avanzado (conocimientos avanzados en procesos)

Estas propuestas serán evaluadas por el Comité de Programa de SEPGSM LA. Los ponentes aceptados serán notificados y deberán enviar su documentación final en formato MS Power Point o PDF antes del plazo señalado como fecha límite.

El plazo para la entrega de resúmenes es el 25 de junio

Sistema para entrega de resúmenes (Witan Web): Disponible en breve

FECHAS CLAVE DE LA CONVOCATORIA

· Presentación de resúmenes: 25 de junio

· Notificación a ponentes: 5 de agosto

· Entrega de la documentación final: 2 de septiembre

ENTREGA DE RESUMENES ON LINE: http://www.esi.es/SEPGLA/

TEMAS

Los temas para los que solicitamos resúmenes son:

1. Combinando disciplina con métodos ágiles

2. Que significa competitividad en el mercado global de TI?

3. Mejora de Procesos en situaciones de estrés

4. Mejora de procesos interoperable

5. Cómo prepararse para las evaluaciones y sobrevivir a ellas

6. Iniciación a la mejora de procesos

7. Mejora de procesos en entornos pequeños

8. Mejora de procesos en entornos diversos

9. Mejora de procesos en entornos de servicios

10. Alcanzando y trabajando en entornos de alta madurez

11. Herramientas, técnicas y conocimientos para la mejora de procesos

12. Implementación de procesos específicos

INFORMACION MAS COMPLETA SOBRE LOS TEMAS DE LA CONFERENCIA: http://www.esi.es/SEPGLA/sepglaProposals_spa.php

Los ponentes seleccionados podrán beneficiarse de un importante descuento en el precio de la inscripción.

Para más información: sepgla@esi.es

® Capability Maturity Model, Capability Maturity Modeling,

Carnegie Mellon, CERT, CERT Coordination Center, CMM, and

CMMI are registered in the U.S. Patent and Trademark Office by Carnegie Mellon University.

SM Architecture Tradeoff Analysis Method; ATAM; CMM Integration; COTS Usage Risk Evaluation; CURE; EPIC; Evolutionary Process for Integrating COTS Based Systems;

Framework for Software Product Line Practice; IDEAL; Interim

Profile; OAR; OCTAVE; Operationally Critical Threat, Asset, and Vulnerability Evaluation; Options Analysis for Reengineering; Personal Software Process; PLTP; Product Line Technical Probe; PSP; SCAMPI; SCAMPI Lead Assessor; SCAMPI Lead Appraiser; SCE; SEI; SEI-Europe; SEPG; Team Software Process; and TSP are service marks of Carnegie Mellon University.

domingo, 22 de junio de 2008

Curso: Introducción a la Ingeniería del Software

Voy a dar un curso sobre Ingeniería de Software en la Facultad de Ingeniería de la UBA con algo más que un toque Ágil!

Objetivo del curso

Conocer los conceptos y herramientas de la ingeniería del software.

Dirigido a

Personas que cubren roles de Analistas de Negocio, Tester Funcionales, Administradores de Proyectos, Escritores Técnicos, Diseñadores Gráficos y otros roles, que tienen relación con proyectos de desarrollo de software sin tener educación formal en el área de software.
Personas que desear comenzar una carrera de especialización sobre Ingeniería de Software.

Al finalizar el curso

Los asistentes habrán conocido las áreas de la Ingeniería del Software, teniendo un entendimiento inicial de cada una de ellas, manejando la terminología relacionada. Habrán realizado prácticas en computadores y conocido alguna herramienta de soporte en cada una de las áreas.
Esto les permitirá interactuar en forma más efectiva en equipos de desarrollo de productos en los que el software es un componente importante.
Servirá como base para profundizar en los temas de interés.

Detalle de los contenidos

Conceptos

Detalle

Conceptos generales

Concepto de Proceso y Modelo. Características de producto (software), y de los procesos de desarrollo. Prácticas. La ingeniería del software y su relación con la ingeniería de sistemas y procesos de negocio.

Modelos de proceso

RUP, Incremental, Ágil. Métricas.

Requerimientos

Obtención de requerimientos, escritura, herramientas y modelización. Modelado de datos, modelado de dominio. User stories, Use Cases, especificación basada en ejemplos.

Herramientas y práctica.

Diseño y Arquitectura

Niveles de diseño. Concepto de patrones de diseño. Modelos lógicos y físicos. Patrones de arquitectura: cliente / servidor, multicapas, Orientado a Servicios. UML básico. Diseño de interfase usuaria. Modelos ejecutables. Diseño orientado a la prueba.

Herramientas y práctica.

Codificación

Compiladores e interpretados. Tipos: fuerte y débilmente tipados, procedurales, orientados a objetos, programación por eventos. Herencia y encapsulamiento. Cohesión y acoplamiento. Inversión del control.

Herramientas y práctica.

Calidad y Prueba

Inspecciones, desarrollo en pares, técnicas de prueba: caja blanca, caja negra, orientada a riesgos. Administración y métricas: cobertura, densidad de defectos.

Herramientas y práctica.

Procesos de soporte

Control de configuraciones y versiones. Build e integración continua. Administración de proyectos de software.

Herramientas y práctica.

Fecha de inicio

45 hs, 15 clases semanales de 3hs cada una.
Inicio: 1ro de Septiembre (lunes de 19 a 22 hs)

Curso Introducción al Testing de Software

Como comenté en otra entrada, creemos que hay pocas personas con la mezcla de capacidades más apropiada para Tester Técnicos (que son muy importantes en equipos ágiles).
Por eso Lucas Campos y yo daremos este curso en la Facultad de Ingeniería de la UBA. Si querés, podes usar parte del material.


OBJETIVO DEL CURSO

Entrenar a miembros de equipos de desarrollo de software en las técnicas y prácticas relacionadas con la prueba automática de software y ampliar sus conocimientos en relación a aspectos técnicos de la prueba de software. Esto es particularmente importante en equipos que aplican metodologías ágil (Scrum, XP).

PUBLICO AL QUE VA DIRIGIDO

Miembros de equipo de desarrollo de software, tanto a desarrolladores como a testers y analistas, que deben incorporar técnicas y práctica de la Ingeniería de Software relacionada con la prueba y la calidad, con fuerte énfasis en la automatización.

MOTIVO POR EL CUAL DEBERÍA HACERSE

Actualmente se hace imprescindible que la prueba del software sea realizada de manera automatizada y con comprensión de las tecnologías involucradas en el desarrollo. Para esto ser requiere una combinación de conocimiento funcional, de dominio del negocio, conocimiento de técnicas de prueba y conocimientos técnicos.

Esta combinación de características es poco común en el mercado, ya que los profesionales de sistemas generalmente desarrollan un área de conocimiento (dominio, prueba) u otra (programación, conocimiento técnico).

Este curso permitirá a los asistentes:

  • Mejorar la participación en equipos de desarrollo multidisciplinarios donde se requiere que los involucrados posean un alto compromiso con la calidad y a la vez posean conocimientos técnicos.
  • Complementar las habilidades de quienes tienen conocimiento funcional (testers, analistas, etc.) con otros orientados a pruebas de software técnicas.
  • Comprender y poder llevar adelante pruebas de alta carga en forma automatizada (Performance, stress, volumen, etc.)
  • Cubrir perfiles relacionados con la automatización de las pruebas de software (tanto para los perfiles de origen más técnicos como para los más funcionales).


PRERREQUISITOS

Los asistentes deberán tener conocimientos de programación. Es recomendable que además tengan al menos un año de experiencia laboral.

FECHA DE INICIO

A partir del 12/8/2008 (martes de 18:30 a 22:30hs)
Duración: 51 hs

domingo, 1 de junio de 2008

FIUBA - Trabajos Profesionales

Este es un aviso para los estudientes de la Fac. de Ingeniería de la UBA

Para los que quieran hacer Trabajo Profesional, estoy tomando propuesta y tengo temas disponibles que están alineados con la siguiente línea:

Desarrollar mejoras en herramientas de código libre (FLOSS) de soporte para equipos de desarrollo de software, incluyendo pero no limitada a herramientas para:

- automatizar la prueba,

- medir cobertura de la prueba,

- automatizar build e integración continua.

-

Pueden ver como ejemplo el Trabajo Profesional que realizó Carlos Duplaá (Cover@age), que surgió de la necesidade de la empresa Kayxo para probar su producto Kayxo Insight. Ese producto permite medir la cobertura basada en los archivos de configuración XML y los correspondientes XSD.

Todos los trabajos deberán concluir con mejoras en productos existentes o desarrollo de productos nuevos (sólo admisible si no hay un producto equivalente) , y deben tener alta calidad, incluyendo alto nivel de cobertura con pruebas automatizadas, generación de builds automatizado, UAT (pruebas de aceptación) automatizadas, documentación de usuario al menos en inglés.

No hay restricción en cuanto a tecnologías (.NET, Java, …).

Los trabajos son focalizados, con alcances definidos y deben ser hechos en el plazo de 6 meses, con entregas intermedias. Esto es relevante debido a que los productos FLOSS evolucionan, por lo que si se dura más tiempo, o no se hacen entregas incrementales, es posible que el resultado sea obsoleto o redundante al finalizar el plazo.

Si están interesados, les pido se comuniquen conmigo


Saludos

Juan Gabardini