Herramientas, Métodos y Procesos

Equipo QA – El recurso oculto

Posted on 4 marzo 2009. Filed under: Calidad del Software, Ingeniería del Software, Metodologías de Desarrollo, Opinión, Procesos Ágile, Recursos Humanos, Roles, Trabajo en Equipo, Waterfall |

¿Que es lo primero que viene a mente cuando mencionamos Ingeniero QA o Tester?

Hay quienes piensan y asumen que las actividades típicas del Tester, las puede llevar a cabo cualquiera, ya sea utilizando procesos de desarrollos tradicionales o Agiles.

La razón puede estar fundada en el concepto erróneo de que cualquier persona puede determinar si una aplicación funciona o no. Sin embargo con este pensamiento se deja de lado la naturaleza destructiva de las actividades de Testing y el no centrarse en el funcionamiento correcto, sino en los aspectos fallidos del software.

También se está asumiendo que el aseguramiento de calidad es solo cumplir con actividades de Testing. Nada más lejos de la realidad.

En las metodologías tradicionales de desarrollo de software, se tiene especial cuidado con la planificación de las pruebas, de modo tal que esta sea acorde a la definición temprana de los requerimientos (obviando las verificaciones y validaciones QA) y en base a un aprendizaje oportuno de como debería funcionar el sistema, de modo tal que según lo planificado, en ciclos de pruebas de sistemas se valide la completitud y correctitud del sistema en base a tales requisitos.

Como contrapartida, se supone un Plan de Pruebas rígido, con muy baja adaptabilidad al cambios de requerimientos y a aparición de nuevos requisitos.

En la vereda del frente estarían las metodologías Agiles, donde la planificación del Testing debe ser adaptativa, acorde a la velocidad de cambios en los requerimientos del sistema, lo cual puede presumir una mayor participación de los miembros QA en etapas tempranas del proceso de desarrollo, inclusive en la misma formación de los requisitos, su analisis y estimaciones, lo cual comprensiblemente podría ser deseable.

Esto es en resumen como se comporta el Testing en metodologías no Agiles.

De este modo, conceptualmente la participación del QA cambia de un rol de “full-control” a “full-partner” del resto de los miembros del equipo.

Esta concepción permite revalorizar los roles QA debido al uso petenciado de los mismos, aportando un valor más estratégico para las necesidades de los negocios que atienden los sistemas que se construyen.

Los Testers, podrían ser utilizados a su máxima potencia, con actividades operativas que ayudan a los desarrolladores a promover la generación de soluciones más eficientes y en instancias tempranas.

A su vez los miembros del equipo QA podrían ser fuentes de información constante referido al comportamiento del sistema en construcción, permitiendo adelantarnos a cambios en los requerimientos, requerimientos mal concebidos o desarrollados en modo no deseado, promover mejoras y una lista larga de etcs. que en definitiva orientan a traves de todo el ciclo de vida del proyecto.

Pero no confundamos esta revalorización del personal QA tratando de abarrotarla detrás de las metodologías Agiles, ya que el concepto puede ser aplicado a cualquier proceso de desarrollo. De hecho, las metodologías Agiles no han planteado este paradigma ni es algo que les pertenece, aún cuando se utilice la terminología “Testing Agile”. Inclusive muchos “pseudoagilístas” consideran a un Tester como a cualquier otro recurso QA, un recurso de menos rango y hasta despreciable para la organización.

QA se da cuenta de la evolución por la misma adaptación que debió sufrir acorde a la velocidad de respuesta que requieren los procesos de desarrollos actuales.

Asumamos que un cambio de paradigma QA es posible aún dentro de procesos tradicionales. Aún así, el cambio no puede gestarse por si solo, debe surgir de un cambio en el paradígma organizacional.

Fuentes de inspiración:
Testers: The hidden resource

Anuncios
Leer entrada completa | Make a Comment ( Comentarios desactivados en Equipo QA – El recurso oculto )

Agile. La evolución de las metodologías tradicionales?

Posted on 9 febrero 2009. Filed under: Empresa, Gestión de Equipos, Gestión de Proyectos de Software, Herramientas Colaborativas, Herramientas, Métodos y Procesos, Metodologías de Desarrollo, Procesos Ágile, Project Management, Trabajo en Equipo, Uncategorized, Waterfall | Etiquetas: , , , , , , , , , , |

“Agile se ha vuelto tan popular entre los profesionales del software, que muchos se abstienen de criticarlo por miedo a ser etiquetados como “retrazados”, “de la vieja escuela”, o incluso “estúpido”.
Afortunadamente los profesionales IT con experiencia saben mejor y reconocen las limitaciones de Agile”

Así rezan las las declaraciones en un blog de Project Management, bastante conocido TheProjectManagmenteHut

Agile fue creado en gran parte en reacción al modelo predominante, WATERFALL, y en menor medida al resto de las tradicionales metodologías y aunque está en boca de todos y en manos de muchos, Agile hasta el día de hoy no ha demostrado ser superior a estas metodologías que le dieron razón y motivo para su existencia.
De hecho existe amplia y variada información que puede avalar tanto el éxito como el fracaso de las metodologías tradicionales, más su acoplamiento con los modelos y estándares de calidad reconocidos mundialmente y las culturas organizacionales más importantes del mundo, inclusive hablando de la industria del software.

Aunque no prentendo ser defensor de lo indefendible, ni “abogado del diablo” de Agile, es conveniente hacernos las siguientes preguntas:

  • cuando Agile es comparable con metodologías tradicionales?
  • cómo podemos combinar Agile con procesos tradicionales para abordar mejor una situación concreta?

Para responder a estas preguntas, es mejor reconocer las limitaciones de Agile

Un equipo de estrellas

Agile ha sido diseñado por experimentados y para experimentados.
Este es un aspecto a considerarse si se ha de intentar una incursión en las metodologías Agile, no como regla general, sino como un ítem de peso, sobre todo si se debe sostener el concepto de “equipo autogestionado”.

En lo personal y por la experiencia de participación en equipos Waterfall y en equipos en búsqueda de la agilidad, puedo decir que es mucho más dificil adaptarse a procesos Agile que a los procesos Waterfall, inclusive si se sigue un modelo de calidad como CMMI.

En los procesos Waterfall, el atributo de “equipos autogestionado” no es remarcable y aunque puede existir mucho trabajo individual, se hace bajo las premisas estrictas de la planificación, siguiendo los métodos y técnicas sugeridas y aceptadas por la organización. No se hace de otro modo o no lo estarías haciendo correctamente.

En estos procesos tradicionales, es cierto que existe también una gran carga administrativa pero en realidad no todos están afectados por ella y solo lleva una porción pequeña de tiempo y a muy baja complejidad realizarlas, principalmente para quienes no lideran los proyectos y solo rinden su progreso del día.

En los equipos Ágile, es un tanto más complicado la adaptación de las personas, siempre hablando de aquellas que no tienen la experiencia suficiente y el tren de trabajo disciplinado sin controles estrictos.
Aquí las entradas de algunos son fuertemente dependiente de las salidas de otros, no existe un trabajo individual o “individualista”, o no debería existir.

Las técnicas de gestión de tareas tradicionales pueden perder por completo su sentido y también debe existir una readaptación del mecanismo de estimación, de equilibrio de carga y del seguimiento. Los controles aunque parecieran ser menores, en realidad se incrementan por que el ciclo de vida en si mismo es mucho más corto y los cambios se presentan con mayor velocidad, pero parecieran ser de otra naturaleza y los resultados deben ser inmediatos, como también deben ser inmediatas las correcciones y a gran velocidad para que en la misma jornada laboral se tenga una aproximación del resultado, cuando no el resultado en si mismo.

El cáos está siempre al acecho…pero en que proyecto no lo está? La diferencia es la velocidad de detección de los inconvenientes, el análisis del problema y las soluciones, más su implementación, verificación y/o validación.
Entonces, preguntas simples pueden ser:

  • Tiene tu equipo el potencial para Agile?
  • Tienes el potencial para Agile?
  • Tienes la materia prima en las personas, para formar un equipo Agile?

Si la respuesta es “no” a algunas de estas preguntas, no significa que no puede transformase en Agile, solo quiere decir que puede haber algunos pasos intermedios a tomar antes de llegar allí.

Estos pasos suelen incluir la adaptación de la cultura del trabajo por equipos y la progresiva potenciación de los individuos, la formación y la contratación de las personas adecuadas.

Encaje con la cultura organizacional (los procesos son secundarios a la gente)

Habilitar el comportamiento Agile requiere de una gran dosis de libertad individual (no individualismo) y de equipo, que se traduce en una cruz funcional en constante adaptación del trabajo y funciones de conmutación, según sea necesario.

Se trata también de ajustar continuamente los procesos a fin de reflejar la situación actual. Más que nada, significa que los procesos son secundarios a la gente.

Otras organizaciones hacen incapié con estrechéz en los roles y responsabilidades, políticas y procesos, y han sido la clave de la supervivencia las mismas.

Aunque estas empresas estén bastante alejada de las dogmas de la agilidad, no es imposible que algunas unidades puedan realizar un trabajo diferenciado para experimentar, conocer y adaptar el nuevo paradigma.

Dado que la innovación es parte de la cultura de cualquier organización exitosa, entonces las personas que la integran tienen buenas habilidades y potencial para realizar “adaptaciones situacionales” y saltar de un modelo a otro.

Agile está restringido a equipos pequeños

  • Los equipos deben ser autogestionados, lo cual implica un orden eficiente emergente de un caos temporal. Este tipo de adopción del orden será mucho más prolongado en equipos grandes y perdería efectividad.
  • Los miembros del equipo de trabajo deben estar habilitados para comunicarse entre ellos espontáneamente, e inclusive con clientes y otros interesados en los proyectos.
  • La gestión diaria del equipo depende por completo de todo el equipo y no está centralizada en una sola persona. Es necesario el reconocimiento y visualización por parte de todo los miembros del equipo, de los cronogramas, tareas, cambios, impedimentos, etc.
  • Los miembros del equipo deben conocer exactamente que es lo que otros miembros están realizando, ayudar a otros que el proceso de su trabajo sea fácil, en forma colaborativa y sin un control centralizado.
  • Los miembros del equipo deben trabajar en la misma locación, facilitando el trabajo cara-a-cara y fortaleciendo los canales de comunicación inmediatos, sin tener las limitaciones típicas de las distancias, diferentes horarios e inclusive herramientas de gestión.

    Lo que se quiere expresar con estos puntos, es que equipos que superan un cierto límite en el número de integrantes (típicamente ocho) pierden eficiencia en las habilidades comunicacionales requeridas para equipos Agile. Así mismo la tarea de un Scrum Marster, se vería dificultada si tuviera que gestionar tareas, avances e inconvenientes de más cantidad de miembros y otros atributos como conocer las tareas y actividades entre todos los miembros se verían cada vez más en merma.

    Una forma de adaptación de equipos mucho más grandes, sería la división del mismo en equipos cross-funcionales más chicos y dinámicos.

    En este sentido necesariamente se deberá contar con un “nivel de gestión superior” que permita centralizar la información de todo el proyecto. Sin duda esto está lejos de ser puramente Agile, sino más bien una combinación de metodologías tradiciones y agilísmo.

    Hay que tener en cuenta también que si se divide un proyecto grande, se minimiza la dependencia arquitectónica del proyecto, para pasar de una medición del avance típicamente medido por su avances arquitectónicos, a una medición basada en la entrega de características funcionales. Esto da como resultado que la definición de “progreso” de Agile, deba ser adaptada a un nuevo contexto con un nivel de gestión superior.
    De nuevo la adaptación situacional “es un buen jugador”.

    Una gran limitación tiene que ver justamente con el especto comunicacional, dado que Agile promueve la comunicación cara-a-cara, con resoluciones dinámicas y proactivas, sin documentación más que la que oriente al desarrollo.

    El trámite comunicacional con otrás áreas es un trastorno que Agile debe aprender a dominar, puesto a que los modelos agilístas actuales exigen que otros interesados del proyecto deban siempre estar en la misma locación de trabajo, inclusive evitandose el traslado desde una oficina a otra para realizar simples consultas.

    La tecnología colaborativa y de multimedios, permiten actualmente realizar trabajos perfectamente coordinados y con esquemas de reuniones cara-a-cara, aunque virtualizadas, muy eficientes. Sin embargo esto no está bien aceptado en el mundo actual del agilísmo.

    Donde está mi metodología?

    Metodologías de desarrollo de software, tradicionalmente incluyen procesos como, Análisis, Arquitectura, Implementación, Gestión de Proyecto, Gestión de la Configuración, Gestión de Riesgos, Gestión de Cambios y una larga lista de procesos dependientes de Áreas de Procesos y Grupos de Procesos. Sin embargo, las metodologías

    Agile no promueven estos grupos de procesos y de hecho no los definen para sus marcos de trabajo, como tampoco definen un marco de gestión de proyectos.

    Esto puede verse justificado por el hecho de que las metodologías Agile tienen como insignia, que lo que demuestra y garantiza el proceso es el producto entregado y no la documentación que puedas presentarle a tu cliente.

    Las metodologías Agile delinean un marco conceptual, pero no explicitan de ninguna manera la exclusión de alguna de las prácticas tradicionales, aunque se asume que solo sobrevivirá lo estrictamente necesario para la obtención de los incrementos (entregables de software)

    Metodologías Agile completas parecen estar emergiendo y el soporte a la organización podrías ser total con adaptaciones sencillas de ambos metodologías, donde la substracción de las buenas prácticas de ambas, de como resultado el éxito y calidad total de la organización.

    Dado el contexto planteado es que me hago las siguientes preguntas para reflexionar:

    • ¿Existe la evolución de las metodologías Agiles?
    • ¿Surgieron por si solas o son adquiridas y formadas en reacción a la complejidad propuesta por las metodologías tradicionales?
    • ¿Las metodologías Agiles de alguna nueva generación no serán en si mismas las adaptaciones y evoluciones de metodologías tradicionales?
    Leer entrada completa | Make a Comment ( 3 so far )

    Agile Open Córdoba – El EVENTO que se viene en Argentina

    Posted on 6 febrero 2009. Filed under: Gestión de Equipos, Gestión de Proyectos de Software, Ingeniería del Software, Procesos Ágile, Trabajo en Equipo |

    Agile Open Córdoba 2009

    ¡Ya podés inscribirte en Agile Open Córdoba 2009!

    “¿Y por qué querrías hacerlo?”, te preguntarás.

    • Porque nos juntaremos 100 personas con muchas ganas de implementar metodologías ágiles en nuestros trabajos
    • Porque tu participación será activa, con el formato Open Space
    • Porque lo organizamos de manera tal que te permita asistir sin depender de otros (gratuito, fuera del horario laboral, en un lugar de fácil acceso)

    Fecha: 17 y 18 de abril, 2009

    Horarios (a confirmar)
    Viernes  17 de 18:30 a 21:00 Hs.
    Sábado 18 de 10:00 a 18:00 Hs.

    Tema: Implementando Metodologías Ágiles

    Sede:
    Colegio Universitario IES Siglo 21
    Buenos Aires 563
    SUM – Salón de Usos Múltiples (a confirmar)

    Contacto: por consultas o sponsoreo, comunicarse con eventos en agiles.org

    Además, y dentro del marco de este evento, se dictará por primera vez en Córdoba el curso de Certificación Scrum Master (CSM), con reconocimiento oficial de la Scrum Alliance.
    Ud. puede registrarse para realizar este curso aquí.

    Leer entrada completa | Make a Comment ( 2 so far )

    QA & Testing en SCRUM

    Posted on 24 enero 2009. Filed under: Actitudes, Aptitudes, Calidad del Software, Comunicación, Entorno de Pruebas, Gestión de Equipos, Gestión de Proyectos de Software, Herramientas Colaborativas, Herramientas, Métodos y Procesos, Ingeniería del Software, Metodologías de Desarrollo, Opinión, Organización del Trabajo Personal, Procesos Ágile, Project Management, Soporte Colaborativo, Testing, Trabajo en Equipo | Etiquetas: , , , , , , |

    Estimado tester del mundo,

    Dando vueltas por “la red” veo repetidamente tus preguntas que reniegan de las metodologías Ágile, principalmente de  SCRUM:

    “¿Cómo es posible que me digas que las iteraciones deben ser tan cortas? ¿si una iteración dura cuatro(4) semanas, tres (3) serán de desarrollo y una (1) de testing? ¿como se gestionan los defectos? ¿como es la comunicación en la gestión de defectos en proyectos Ágile? ¿si los desarrolladores deben continuan codificando los próximos incrementos, cuando corrigen los defectos? ¿cuando se los verifica?

    NO ME QUEDAN CLARO LOS CICLOS!!!”

    Como te habrás dado cuenta no obtuviste respuestas concretas ni en los mejores foros estos últimos dos años. Eso es así por que QA no tiene una definición concreta y formal en los entornos Ágile y me arriesgo a decirte que en SCRUM no está bien estipulado como es el proceso de testing y calidad.
    Leí varios libro sobre agilísmo y en todos ellos dicen “la calidad no se negocia”, pero en ninguno de ellos explican como evitan la merma de calidad con iteraciones tan cortas, o dicho de otra manera, como la obtienen y garantizan.

    Alguna respuesta lógica podría ser:

    1. la intervención temprana del equipo de testing en el ámbito del proyecto.
      Esto quiere decir que hay que apartarse de la idea de esperar a que los requisitos estén maduros para tomar el documento de requerimientos y realizar el diseño de casos de pruebas. En este tipo de metodologías, debemos tener en cuenta la mutación de requerimientos, como también la eliminación de algunos de ellos y la aparición de nuevos en tiempos muy cortos.
      Aquí debemos ingresar en el preciso momento en el que nace un requerimiento, es decir cuando el requerimiento es expuesto al equipo. Nuestra fase de análisis comienza al mismo tiempo que para el equipo de desarrollo.
      Prontamente estaremos en la fase de diseño de las pruebas, donde también es extremadamente dificultoso ser veloces y preciso con iteraciones tan cortas. Es debido a ello que verás muy pocas propuestas serias para trabajar, aunque hoy en día se están abriendo paso…
    2. …herramientas colaborativas donde los encargados de indicar criterios de calidad, criterios de aceptación, modos de fallos, modos de prueba y demás, son todos los miembros del equipo e interesados.
      Esto es así dado a que la industria se dió cuenta que las mejores pruebas las hacen nuestros clientes y en todo el ciclo de vida de un requisito, los distintos tipos de analistas (negocios, requerimientos, sistemas, soporte, pruebas) representan algún aspecto de los clientes, aunque no todos.
      Estas herramientas ayudan a…
    3. … automatizar el proceso de desarrollo, donde la generación del requisito es el inicio natural, pero está acompañada su evolución por aspectos de la gestión de proyectos, tales como criticidad y priorización, estimaciones, asignaciones, control de cambios, control de estados, gestión de recursos, desvíos, replanificación y métricas. Todos elementos para sostener un curso razonable de la calidad del proceso y del proyecto.

    En relación a tus preguntas te diría que:

    • Tres semana de desarrollo y uno de testing es posible. Debes contar con los recursos necesarios y adecuados. El problema aquí nuevamente es la planificación del testing y la calidad.
      ¿tendrás tiempo de planificar algo que garantice cobertura sobre los requerimientos? dificilmente del modo tradicional.
    • Mientras se hace testing los desarrolladores codifican. Para eso están, salvo que también sean testers, ya que aunque está mal visto en los paradígmas tradicionales, puedo asegurar que visto con un pensamiento lateral es positivo, imprime rítmo, genera velocidad y ayuda al crecimiento técnico del equipo QA.
      También adoptan perspectivas diferentes que le ayudan en sus próximos enfoques para el desarrollo de las soluciones.
      Tiene sus aspectos negativos que se pueden ir puliendo. Por ejemplo un desarrollador que eventualmente pasa a testing, al detectar un defecto lo analizará desde el aspecto que más conoce. Querrá acceder a la base de datos y debaguear el código, y si fuera posible corregir y recompilar inmediatamente.
      Bueno, eso también lo hemos hecho, pero en otras situaciones, por ejemplo cuando se hace la verificación de las correcciones de defectos.
    • Particularmente yo me salto “el aparato comunicacional” y  digo al desarrollador: “master, tengo un defecto persistente. Que te parece mirarlo juntos y resolverlo de buenas a primera?”
      La herramienta de gestión de defectos es como cualquier otra o como una planilla Excel si lo quisieras llevar a extremos precarios (habrá quienes me discutan lo de precario por Excel) y en ocaciones suele ser una importante barrera comunicacional burocrática, puesto a que nuestros defectos deben “atravezar el espacio-tiempo” mientras esperan ser atendidos. Yo prefiero la interacción y la proactividad, inicialmente hablar con quien lidera el proyecto mostrando los defectos detectados, dándole información precisa y concisa, ayudándole a priorizar su resolución y a medir los impactos.
      También interactuo con los desarrolladores planteándoles un modo de uso, uno modo de fallo, un modo de prueba y ayudando a desarrollar una mejor solución.
    • Al respecto de cuando se solucionan los defectos, opino que no es buena cosa pasar a un próximo ciclo de desarrollo si no se cerró el anterior. De manera tal que decir que tenemos un incremento va ligado de la frase “está hecho!!!”.
      Sin embargo en la vida real, notarás que es común iniciar la próxima iteración antes de corregir todos los defectos. Esto será válido si el incremento desarrollado fue aceptado por el cliente (Product Owner) aún a sabiendas de los defectos de la entrega.

    Como elemento QA debes ser lo suficientemente analítico para iniciar el ciclo de vida de los proyectos, estudiando los requerimientos, detectando sus falencias, investigando modos de pruebas y modos de fallos. Mientras tanto deberás ir generando los criterios de aceptación funcional, generando un modelo de pruebas y si tuvieras el tiempo, los casos de pruebas.

    También será menester gestionar los ambientes de pruebas netamente funcionales, aislados de accesos a bases de datos e IDEs de desarrollo, ya que lo que se pretende al menos en las pruebas de funcionalidad, es utilizar el sistema como lo haría nuestro cliente final, pero con mucho más rigor.

    Entonces, como verás hay muchísima tela para cortar al respecto. Solo hemos “tocado por encima” algunos aspectos QA & Testing. Imagina si tenemos que hablar de pruebas unitarias, de componentes, de integración, métodos y técnicas…. en fin.

    Lo cierto es que SCRUM es solo una metodología de gestión de proyectos, bien sinérgica, orientada a equipos maduros, autogestionados, con altísimos conocimientos técnicos, con gran dominio del negocio que genera los requerimientos y no pretende indicar como se hará el arte de desarrollar, ni de probar, mucho menos se hará de conceptos para el mundo QA & Testing.

    Saludos,
    Javo.

    Leer entrada completa | Make a Comment ( 2 so far )

    Predictivo contra adaptativo?

    Posted on 20 enero 2009. Filed under: CMMI, Gestión de Proyectos de Software, Ingeniería del Software, Metodologías de Desarrollo, Procesos Ágile, Project Management, Waterfall |

    CMMI indica que una organización evaluada en nivel 3, es una organización con proceso DEFINIDO, es decir que la organización cuenta con una base de conocimientos que le permite gestionar proyectos cuyas decisiones sobre alternativas de solución técnica, tiene una tendencia histórica organizacional.

    Una organización cuyo proceso está definido, indica a su vez que ese proceso esta sustentado por documentación reutilizable, prácticas repetibles y métricas objetivas para la consecución de resultados concretos.

    Poder predecir es algo que todo administrador de proyectos desea y debe hacer. Entonces, ¿por que negarnos a los elementos que facilitan y favorecen tal característica primordial de maduréz en la organización?

    PREDECIR es el primer nombre del administrador de proyectos.

    Predecir no es perder la capacidad adaptativa, no significa evitar la introducción de cambios en los requisitos, ni evitar que nuevos requisitos surgan, tampoco es ser rígido con una replanificación.

    Claro no es tan simple ser predictivo, pero mucho menos lo es ser adaptativos. De hecho, pienso que no se puede ser adaptativo sin ser predictivo o más bien serás intuitivo, pero mejor atenerse a los resultados fortuitos.

    Sin duda el esfuerzo del cambio es superior, pues la organización deberá adquirir conocimientos sobre las prácticas para los procesos que hay que implantar:

    * Desarrollo de requisitos * Solución Técnica * Integración del producto * Verificación * Validación * Desarrollo y mejora de los procesos de la organización * Definición de los procesos de la organización * Planificación de la formación * Gestión de riesgos * Análisis y resolución de toma de decisiones.

    Ahora, ¿alguno de ustedes ve un proceso de los que menciona CMMI para el nivel 3, diferente a los procesos que se utilizaría en Ágile?

    Leer entrada completa | Make a Comment ( 1 so far )

    LOGS de errores reflejan el funcionamiento del nucleo de nuestras aplicaciones

    Posted on 2 enero 2009. Filed under: Calidad del Software, Entorno de Pruebas, Herramientas Colaborativas, Herramientas, Métodos y Procesos, Resolución de Problemas y Gestión de Incidentes, Soporte de Aplicaciones, Testing | Etiquetas: , , , , , , |

    Algunas estrategias de detección de errores en nuestras aplicaciones pueden parecer demasiado sencillas o desactualizadas, sobre todo con el auge y advenimiento de herramientas potentes, con cientos de reportes, gráficas y métricas para analizar.

    Sin embargo prácticamente ninguna herramienta permite a desarrolladores, analistas funcionales y testers de aplicaciones, reconocer la causa raíz de los problemas que aquejan a nuestros desarrollos.

    Una técnica sencilla y pronta a aplicar, es la generación de logs de errores en formato TXT. A partir de allí mejorar el proceso de construcción en base a información obtenida del núcleo de funcionamiento de nuestras aplicaciones, es cuestión de solo dejar volar la imaginación.

    Aunque un conjunto de nuevas herramientas podrían ser la solución para el ahorro de tiempo y dinero en la resolución de defectos, estas herramientas principalmente deben tener la capacidad de generar reportes que permitan aislar los problemas raíces, haciendo mucho más sencillo el diagnóstico y resolución, sin tener que invertir en costosos ambientes de aislamiento ni tiempos de reproducción.

    Estas soluciones no están del todo presente en las actuales herramientas disponibles, ni diseñadas para el comportamiento dinámico de los defectos y solo se permite un análisis estático basado en la mayoría de los casos, en pruebas orientadas de “caja negra”.

    Pero tal vez la productividad se vería acelerada exponencialmente si no solo pudiéramos introducir herramientas con estas características dinámicas, sino que a su vez tuviéramos la capacidad de darle a nuestras aplicaciones la capacidad de resguardo y notificación de errores.

    Desde el análisis y diseño y bajo un planteo de pruebas que orienten la construcción de los componentes, es posible introducir ciertos niveles de detalles que serían plasmados en “logs de errores”, los cuales pudieran ser de gran utilidad para el diagnóstico de problemas raíces y resolución temprana, es decir en fases de pruebas tempranas.

    Al finalizar cada ciclo de prueba, testers y desarrolladores pueden interactuar con mejor foco en las causas raíces de los bugs, errores de construcción e inclusive errores de interpretación de requisitos o detección de requisitos mal formados.

    La verdadera potencia de tales “logs de errores” se manifestarán solo si esta solución es diseñada y aplicada en forma armonizadas para que no se entorpezca el trabajo y los resultados sean positivos y bien significativos.

    Un beneficio central es que los “tiempo ventana” demasiados cortos para la resolución de defectos, sean mejor aprovechados y el proceso se optimice significativamente.

    Hay quienes opinan que se deben modificar significativamente los requerimientos para incorporar estos elementos a los procesos de desarrollo, pero yo creo que el esfuerzo no es tan grande como para evitarlo y los beneficios son tremendos como para dejar de hacerlo.

    No piensen en tecnificar demasiado ni en agregar complejidad, orienten esta solución a la simplicidad y facilidad de lectura y comprensión y bastará con utilizar un notepad o archivo tabulado para comenzar a obtener resultados que mejoren la visibilidad del comportamiento erróneo de nuestras aplicaciones.

    Potenciar la solución  es cuestión de imaginación.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en LOGS de errores reflejan el funcionamiento del nucleo de nuestras aplicaciones )

    CMMI/Agile. Un híbrido que se viene – I

    Posted on 23 diciembre 2008. Filed under: Calidad del Software, CMMI, Gestión de Proyectos de Software, Herramientas, Métodos y Procesos, Metodologías de Desarrollo, Testing, Trabajo en Equipo | Etiquetas: , , , |

    He sido participe de certificaciones CMMI 4 en una empresa del Cluster Informático de Córdoba en Argentina y actualmente estoy como Responsable de Calidad y Mejora de Procesos en una empresa donde intentamos implantar metodologías ágiles.

    Conceptualmente son dos modelos distintos en cientos de aspectos, siendo imposible considerarse ágil al modelo CMMI.

    Quiero ser tajante en la diferenciación de esto, pues ahora se habla mucho de CMMI Agile y tal concepto no es más que un híbrido y no está formalizado. Esto es así, por que habría que decidir que parte de CMMI utilizamos y que proceso de los existentes tomaremos para recoger lo mejor de los ágiles.

    Notemos que los frameworks que la gran mayoría de las empresas ofrecen, se enfocan en uno u otro modelo.

    Pero vamos a ejemplos vivos. Bajo CMMI, siendo líder de testing, no tenía más participación que la ejecución de las pruebas, previo planning encapsulado y siguiendo una estricta ERS, no era partícipe a nivel horizontal del planning inicial y los criterios de calidad no se establecían por el líder de testing sino hasta que la documentación tuviera ya un alto grado de definición (documento maduro) e inclusive la participación de mi rol seguía siendo escueta y debía tomar los criterios establecidos por el arquitecto.

    Posteriormente, en CMMI, los cambios de requisitos no son aceptados con la amplia libertad con la que son aceptados en un proceso ágil y por lo general deben ser de bajo impacto para que ingresen en el catálogo de requisitos y siempre bajo un estricto circuito de análisis y revisiones de un comité de cambios, el cual está formado por una cantidad de personas y roles que en empresas que pueden seguir un proceso ágil, no hay.

    Las reuniones (ICE) en CMMI tienden a ser verticales y la participación de los roles transversales no es tan significativa como lo es en un proceso ágil, es decir que las decisiones normalmente pasan por una situación elitista donde desarrolladores y testers no tienen una grandilocuencia aceptada. Esto se contrapone con el precepto que indica que para ser ágil se debe tener un fuerte énfasis en las pruebas sobre la aplicación que se desarrolla y una continua integración de sus componentes.

    Con esto no pretendo decir que en CMMI no se tenga énfasis en las pruebas, pero se llega a ser tan robótico que la creatividad se destruye y proyecto tras proyecto tienes la misma documentación, los mismos estilos de pruebas, los mismos resultados y esto ya da para la desconfianza.

    En procesos ágiles debes anticiparte por eso participa todo el equipo de pruebas en las primeras reuniones donde se definen criterios de calidad, métodos de pruebas posibles, modos de fallos y otros elementos que puedan definir mejor la calidad de los productos. Recuerdo que trabajando bajo el proceso CMMI todo esto me venía llovido, y se suponía que el líder del testing era yo, un elemento SQA.

    Otro precepto que aleja CMMI de ágile (keep it simple).

    Uno más, documentar solo lo estrictamente necesario y centrarse en lo más crítico del producto, que es el código fuente.

    Por otro lado y para ir cerrando al menos este post, si un híbrido CMMI-Agile debe existir, ya sabemos que partes podemos tomar de CMMI según su nivel, pero… ¿que parte de Àgile tomamos? ¿Programación Extrema, Scrum, DSDM, Crystal Clear, …?

    Hablando de Framworks, hay algunos que ofrecen la posibilidad de trabajar con una metodología Ágile con documentación formal y que mediante un esfuerzo (considerable) se podría alcanzar un nivel CMMI-3 en el mejor de los casos, utilizando otra parte del mismo Framework. Es más complejo que eso.

    Pero aqui me acoplo a lo que algunos dicen por la red. Lo más importante que toda organización o persona debe tener en cuenta, es que no existe una metodología ideal para cualquier escenario en la que se aplique. La metodología de desarrollo que se seleccione, bien sea ágil o no, siempre dependerá directamente del equipo de trabajo, la cultura organizacional, lo cambiante del medio ambiente y la aceptación del usuario final.

    Leer entrada completa | Make a Comment ( 4 so far )

    Quien es quien – I

    Posted on 22 diciembre 2008. Filed under: Actitudes, Aptitudes, Habilidades Personales, Metodologías de Desarrollo, Opinión, Recursos Humanos, Roles | Etiquetas: , , , , , |

    Pensando los Roles y Competencias para definir nuestro proceso de trabajo

    Las metodologías de desarrollo de software suelen establecer roles y delimitar sus competencias,  remarcar sus responsabilidad, indicar interdependencias, definir elementos de entrada-salida y proponer la repetición constante de estos ítems, con variantes que le dan alguna particularidad a los distintos procesos.

    El objetivo es inicialmente presentarse de manera clara al publico usuario, como un mecanismo  estable, controlable, medible y repetible, que garantice en mayor o menor medida, el éxito de los proyectos permitiéndole llegar a su fin, con el uso de la secuencialidad propuesta.

    Suele suceder que los modelos parecieran no tener en cuenta al área QA y Testing como un área independiente dentro los proyectos de productos/servicios, que genera su propio proyecto donde conviven productos/servicios que dan soporte al proyecto matríz.

    Tal es así que las competencias QA y Testing no son tan bien definidas  y explicadas como las compentecias de otros roles, en la mayoría de los procesos. Y aunque algunos presentan detalles excesivos, quizás no encuadran correctamente a los roles QA.

    Independientemente del proceso que se intente aplicar y su definición de roles y competencias, sugiero que las organizaciones consideren la aplicación de roles, pero justificado principalmente por el enfoque y especialización que exista o se desee.

    Por ejemplo, la existencia de Líderes de Proyectos que a su vez sean verdaderos especialístas en los negocios que generan los productos que lideran.

    Los Arquitectos de Sistema los mejores diseñadores y programadores, sobre todo líder especialista en “los aspectos íntimos de los sistemas”.

    El Líder QA de perfil analítico transversal y el principal
    “entrenado” en el uso de los productos en prácticamente todos los
    niveles de los sistemas. También uno de los probadores más
    importantes de la organización, guía de pruebas en todas las fases de revisión.

    El equipo de testing  con competencias técnicas variadas y acabadas, conocedores de técnicas y métodos de pruebas, pero con grandes atributos actitudinales.

    Las principales potencias de un equipo QA bien conformado quizás son:
    capacidad analítica en el sentido transversal a lo que se supone como
    la mejora solución técnica, la obsesión por demostrar que el sistema
    tiene defectos, orientación bien marcada a las pruebas exploratorias,
    proactividad y comunicación eficiente, entrenamiento anticipado en el
    uso del sistema, énfasis en detectar debilidades en los requerimientos, énfasis en reconocer y entender por que y para que existe cada requerimiento, capacidad de proponer nuevas alternativas de uso, control del tiempo y el sentido de fin de fases.

    Creo que habilidades de esta naturaleza no solo en los roles QA, sino en otros que reciben productos de fases anteriores y las destilan a fases posteriores en los procesos de desarrollo, ayudan a definir un proceso bien limpio y delimitado para elaborar, planificar, seguir y finalizar los proyectos.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en Quien es quien – I )

    …mejor utiliza los atajos.

    Posted on 22 diciembre 2008. Filed under: Herramientas, Métodos y Procesos, Metodologías de Desarrollo, Procesos Ágile, Waterfall |

    Muchas veces critiqué falta de un proceso bien definido en las organizaciones de desarrollo de software y fui más enfático con aquellos que con más penas que gloria, se embarcan en constantes intentos de prueba y error para intentar establecer su modelo y se niegan a por lo menos conocer las distintas alternativas que existen.

    No es útil solo imaginar, utilizar ideas vagamente relacionadas, “probar para ver que pasa”, imponer sin consenso, esperar que el resultado de tu proyecto sea el feedback, hacer “borrón y cuenta nueva”, buscar culpables, castigar, ser irreflexivo, someter, monologar, confundir.

    Creo que está muy bien “no casarse” con ningún modelo en particular y perseverar en tangibilizar un proceso que bien le sirva a toda la organización y con el, obtener los mejores beneficios. Pero mejor utiliza los atajos.

    Antes de cualquier emprendimiento, quienes quieren hacer algo bien se introducen en los conceptos, desmenuzan la información que reciben, analizan los contextos de uso y sus aplicaciones, filtran lo no útil, bosquejan, proponen, discuten y buscan concenso, piensan y planifican, ejecutan y demuestran, controlan y corrigen, y así en ciclos de constante perfeccionamiento.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en …mejor utiliza los atajos. )

    CMMI/Agile. Un híbrido que se viene – II

    Posted on 22 diciembre 2008. Filed under: CMMI, Gestión de Proyectos de Software, Herramientas, Métodos y Procesos, Ingeniería del Software, Metodologías de Desarrollo, Opinión, Procesos Ágile, Project Management | Etiquetas: , , , , |

    Tratando de continuar con la saga CMMI/Ágile,  diré que creo que si tenemos en claro que CMMI es el modelo del proceso de desarrollo a seguir y Scrum es el modelo de gestión, entonces en teoría no habría discrepancias ni razones de frustración a la hora de intentar gestionar con Scrum mientras se siguen las prácticas sugeridas por CMMI.

    Sin embargo Scrum se plantea con un conjunto de prácticas bien definidas, que bien podrían no ser compatibles con las prácticas CMMI, las cuales desde un principio parecieron ser mejor adaptadas a RUP y las “gestiones pesadas” con prácticas al estilo PMBOOK.

    Habría que plantearse si eso de ligar a CMMI con RUP, PMI o procesos Waterfall, no es un fallo conceptual, puesto a que en realidad CMMI no plantea restricciones al respecto del modelo de gestión de los proyectos.

    En cierto aspecto, lo interesante es tratar de respetar toda la metodología de gestión Scrum y sus roles, mientras se respetan las exigencias de los roles CMMI.
    Creo que aquí es donde nos damos cuenta de la necesidad de nuevos significados para las cosas y reestructuración de los modelos, si es que los mismos debieran sostener su vigencia.

    Por ejemplo yo partiría los roles en dos capas:

    • una capa de nivel “No Operativa” o administrativa donde por ejemplo, el Product Owner sería todo el Stakeholder de capa superior de los roles exigidos por CMMI (Gerencia, Gerencia Senior, Sponsor, Representante del Cliente, y Gerente QA)
    • una capa “Operativa” donde encontraríamos por ejemplo, al Team (Líder de Proyecto, Arquitecto de Sistemas, Líder de Testing, Testers, Desarrolladores) todos gestionados con Scrum, donde Scrum Master sería necesariamente el Líder de Proyectos.

    Ahora bien, solo estamos hablando de gestionar roles, pero habría que profundizar en las similitudes y diferencias de las prácticas sugeridas o impuestas para cada rol y PA por cada modelo.

    A mi entender por más que se gestione con Scrum, el proceso ya no sería puramente Ágile ni puramente RUP sino uno de los “hibridos que se vienen”.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en CMMI/Agile. Un híbrido que se viene – II )

    El desarrollo de software Ágile y la automatización

    Posted on 11 diciembre 2008. Filed under: Ingeniería del Software, Metodologías de Desarrollo, Procesos Ágile, Pruebas Unitarias | Etiquetas: , , , |

    todo lo que he leído hasta el momento da claros inidicios de que la automatización es un hecho en los entornos de desarrollo Ágiles. Tal es así que pareciera que no existe programación sin Pruebas Unitarias o sin Intengración Contínua, ni pruebas de sistemas sin automatización, inclusive si las mismas fueran manuales.
    También se está hablando a pleno de los ambientes colaborativos y automáticos para la generación de requerimientos.
    Por experiencia puedo decir que en muchas fabricas de software no se utilizan tales herramientas y se utilizan procedimientos y técnicas “artesanales”.

    Inclusive siguiendo metodologías de desarrollo Ágile para la gestión, tal como Scrum, no se ejecutan otras prácticas Ágile. 

    Cual es el límite para decir que somos verdaderamente Ágile o que no lo somos?

    Mi amigo Juan Carlos Sanchez Miralba, nos da desde XING una respuesta con un punto de vista completo y claro:
    Primero debemos diferenciar entre modelo de desarrollo y de gestión. El modelo de gestión puede ser Scrum sin desarrollar utilizando metodologías ágiles.

    Si miramos algunos Principios Ágile no forzosamente debemos automatizar todos los procesos. Por lo tanto podríamos aplicar perfectamente el manifesto agile a un proceso de desarrollo cascada iterativo en el que cada iteración sea de una o do semanas como mucho.

    No obstante la metodología de programación extrema XP involucran prácticas y herramientas de test unitario e integración continua, las cuales son excelentes para dar soporte a un verdadero proceso de desarrollo Ágile. 
    Aquí la automatización de las pruebas y la integración contínua son inobjetables.

    Otras Metodologías Ágile no hacen referencias directas a la automatización.

    Básicamente aplicando dos principios:
    1- Encontrar errores antes en el ciclo de vida es más barato –> Inspección de código y test unitario.
    2- Cuantos menos cambios antes del test fácil es la solución –> Integración continua / test automatico de integración.

    podemos decir que son dos buenos pilares en los que asentar un desarrollo ágil.

    Gracias Juan Carlos
    https://www.xing.com/app/forum?op=showarticles;id=16233872;articleid=16254918#16254918

    Leer entrada completa | Make a Comment ( Comentarios desactivados en El desarrollo de software Ágile y la automatización )

    El impacto de las redes sociales en Argentina

    Posted on 29 noviembre 2008. Filed under: Comunicación, Herramientas Colaborativas, Mercado Tecnológico, Opinión, Redes Sociales, Soporte Colaborativo, WEB 2.0 | Etiquetas: , , , , , |

    Argentina se encuentra liderando el acceso y participación de las redes sociales, aún cuando España es el país que recientemente mas integrantes a sumado a este fenómeno Web 2.

    image

    El fenómeno de la creciente participación en las redes de enlace social, está relacionado principalmente por la necesidad de recupero de comunicación interpersonal, muy probablemente ligado a la gran dispersión de las personas al rededor de todo el mundo. Estos medios son la herramienta ideal para localizar y contactar a personas a las cuales se les ha perdido el rastro.

    Otro motivo no menos poderoso para el uso de herramientas sociales, tiene que ver con búsqueda de trabajo y relación profesional o comercial, donde nuevas oportunidades se abren en dos frentes, tanto para quienes buscan un nuevo puesto de trabajo como para quienes buscan nuevos prospectos. Del mismo modo para quienes tienen relaciones de negocios en algún grado.

    Es interesante notar que lo que aparentemente tiene un impacto de corto alcance, en realidad tiene un alcance inimaginable, tal es así que con solo tener unos cuantos contactos directos o de primer nivel, se genera una red de contactos que se disgrega por múltiples regiones del mundo, logrando así disponer de una red verdaderamente amplia, donde localizar a una persona, buscar trabajo, mano de obra califica o promocionar un producto, es mucho más simple y veloz, por no hablar de los costos que aún pagando, tienden a cero.

    Aún no hemos visto más que los inicios de las redes de la Web 2 y los servicios comienzan a escalar para brindarnos capacidades multimedias, aplicaciones de planificación de proyectos globales, coordinación de equipos distribuidos, ambientes colaborativos, soporte de archivos, voice mail, chat y poderosos monitores de estadísticas que nos ayudan a tener mayor visibilidad y definición de los rumbos a tomar.

    No me atrevo a especular sobre todo lo que aún nos deparan estos avances, pero sin duda estamos en un proceso de aprendizaje y adaptación, el cual cada vez es más rápido, tiene más adeptos y el feedback es instantáneo, hasta el punto tal que en cuestión de horas las aplicaciones OnLine perfeccionan sus funcionalidades y potencian sus servicios.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en El impacto de las redes sociales en Argentina )

    Cloud Computing. Mucho más que un BUZZWORD!

    Posted on 19 noviembre 2008. Filed under: Artículos sueltos, Cloud Computing, Herramientas Colaborativas, Mercado Tecnológico, Opinión, SaS, Soporte Colaborativo, Soporte de Aplicaciones, WEB 2.0 | Etiquetas: , , |

    Virtualización fue una de las primeras palabras que se escucharon varios años atrás y cuando nadie lo entendía, creímos que era algo para las mega corporaciones, inaplicable para un usuario común y corriente o para pequeñas organizaciones y muchos se resistieron a la idea.
    Hoy nadie se resiste, todos abogan por esa tecnología por que abarata terriblemente los costos y de la negación nadie se acuerda.
    “Cloud Computing” es el buzzword del momento y algunos nos metimos a usarlo aún a costa de que nuestra información personal pudiera perderse o caer en manos irresponsables.
    Particularmente yo necesité años atrás una solución para poder generar mis documentos y disponer de ellos en cualquier momento y lugar, así fue que me sumé a EYEOS como algo experimental. Hoy el sueño es más tangible o está  hecho realidad. Utilizo dos servicios alternativamente: google doc y Office Live Workspace, ambos con muy bueno resultados y criticables en ciertos aspectos.
    Las acciones de hoy ya dejaron de ser meras iniciativas y son bien serias. No son simples prototipos por que el usuario ya dijo “SI”.
    Aplaudo a las corporaciones por su competencia y garantizo que pequeñas organizaciones daremos soluciones alternativas basados en el mismo modelo.
    Levanto mi copa por que pronto las grandes y pequeñas compañías puedan decir que utilizan los servios OnLine de “…..” sin discriminación.
    Pagar? lógico y moderado.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en Cloud Computing. Mucho más que un BUZZWORD! )

    Está hecho y lo voy a comprobar

    Posted on 18 noviembre 2008. Filed under: Comunicación, Metodologías de Desarrollo, Testing, Trabajo en Equipo |

    No confundir los hitos de pruebas

    La revisión par de componentes intenta validar la completitud y correctitud de los componentes generados, es decir marcar el hito de finalización de la construcción por componentes. De ninguna manera representa una integración de los mismos con otras unidades, esto lo sabemos por la experiencia del momento, por que cada uno supo el alcance y los límites de su caso de uso y aunque hubo cierta integración necesaria con otros componentes, los fallos imputados solo atañen al componente en revisión.

    Todos defienden sus implementaciones.

    Es por eso importante finalizar y avisar al par revisor tanto como al líder de desarrollo. Este aviso implica principalmente a los conceptos de, “está hecho” (el famoso “done”) y “lo voy a comprobar”. Pasado este hito, ya estamos asegurados para muchas cosas más como, cambios de funcionalidad, mejoras de funcionalidad, acoplamientos exitosos, seguir con otras cosas diferentes, etc. pero todo estará dentro de un “marco de generación de valor agregado”.

    Continuar sin haber validado el componente implica un riesgo importante para la integración y normalmente debemos volver atrás con un cúmulo importante de retrabajo. También implica que la prueba deja de ser de componente y presentaría un sesgo hacia pruebas de sistemas, el decir con una versión del aplicativo el cual ya sin dudas tendría N cantidad de fallos indeseados.

    Es bueno saber para que sirve cada cosa y no confundir los hitos, sabiendo que un momento se desea asegurar los componentes, en otro momento la integración modular y en otro el sistema.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en Está hecho y lo voy a comprobar )

    Fishbowl – parte 2 (Clue Computing)

    Posted on 17 noviembre 2008. Filed under: Comunicación, Fishbowl, Herramientas Colaborativas, IT, OpenSpace, Opinión |

    Habiendo realizado una apertura sobre la temática en mi primer artículo https://javosantillan.wordpress.com/2008/11/16/fish-bowl-parte-1-desarrollo-de-juegos/ me gustaría compartir la segunda parte del Fishbowl realizado en UTN de Córdoba, Argentina. La temática tratada en esta parte, está relacionada a la muy popular y populosa Clue Computing o Nube Informática.

    El debate se abrió con una visión un tanto “oscura y pecaminosa” de lo que son las tecnologías abiertas, donde se pretende llevar al usuario a una dependencia total de los entornos OnLine o Web Based. El expositor argumentó su óptica indicando que no se debería confiar información tan importante como la relacionada a los contactos de negocios, económicos o familiares a organizaciones que hoy ofrecen en forma gratuita sus servicios pero que no ofrecen garantías de que así se sostengan tales servicios. También indicó el expositor, que tales prestadores de servicios incluyen cláusulas en sus CLUF donde está claramente expresado que no son responsables por la pérdida de datos o información y que tampoco se expresa la garantía de sostener el servicio si comercialmente no se obtienen los réditos necesarios.

    Desde otras ópticas, algunos argumentaron que ven que los servicios WebBased son una creciente demanda en evolución, donde en muy corto tiempo lo que menos importará es si tales servicios sean pagos. Se mencionó a Oracle como la primer empresa en prestar servicios OnLine y WebBased para soportar el mantenimiento de grandes bases de datos, donde una gran corporación puede confiar sus datos a la infraestructura IT de Oracle. Esto redunda en que una empresa solo debe dedicarse a su negocios sin preocuparse de tener mano de obra especializada ni infraestructura IT costosa.

    Se habló de seguridad de datos, de disponibilidad e integridad de los mismos y por sobre todo, accesibilidad (curiosamente los pilares fundamentales de la seguridad informática) y en torno a esos puntos se encontraron posturas dispares pero todas orientadas a determinar cual es el beneficio o perjuicio para el usuario final.

    Un última exposición hizo hincapié en los recientes “temas calientes” donde se menciona la privatización de Internet y donde uno de los principales detractores de esta idea es el presidente electo de los EEUU, Obama, quien en uno de sus discursos pre electorales, remarca la necesidad de sostener una red abierta y accesible para todo el mundo y evitar que se genere un “tercer mundo informático” a raíz de servicios diferenciados tanto en los paquetes de software como con el ancho de banda, siendo que se planea que los carriers puedan segmentar por tipos de usuarios para establecer los márgenes de calidad para los servicios de Internet.

    Leer entrada completa | Make a Comment ( 3 so far )

    Informática OpenSpace

    Posted on 7 noviembre 2008. Filed under: Herramientas Colaborativas, Resolución de problemas, Soporte Colaborativo, Trabajo en Equipo | Etiquetas: , , , , , , |

    Algo interesante está ocurriendo en el mundo y es lo que se conoce como “Espacios Abiertos”, donde los profesionales, idóneos o interesados en una temática en particular pueden PARTICIPAR (con todas las letras en mayúscula) en la discución, información, recomendación y conclusión de aspectos y conceptos estratégicos para definir el rumbo de ese asunto.
    En Córdoba, Argentina se llevará a cabo en la Universidad Tecnológica Nacional, en el Salón de Actos el miércoles 12 de Noviembre a partir de las 18:30hs, el primer evento con características OpenSpace, dondeen el inicio del evento se plantean las bases del mismo, para que las personas que no conocen o no saben de la modalidad puedan ponerse al tanto.

    Luego de 15 minutos introductorios, los asistentes deben dirigirse a un pizarrón, o tablón, que contiene una grilla de vacantes y horarios. O sea, algo similar a esto:

    Pizarron

    En esa grilla, cada persona asistente puede proponer un tema. Cada tema propuesto compite con otros en el caso de que existan más temas que los horarios y vacantes posibles. Los demás asistentes votan, si así lo desean, por alguno de los temas ya propuestos o simplemente proponen aquellos temas que les interesan.

    Al finalizar esa etapa las charlas con mayores votaciones son las que se llevan a cabo.

    La idea general es que, en cada charla se colocan 4 sillas. Cada persona que quiere opinar sobre el tema en cuestión debe sentarse en una de las sillas y solo recién emitir su opinión. Siempre debe quedar una silla disponible (para que se siente quien quiere opinar). Si las 4 estuvieran ocupadas, la persona que ya no tiene más que decir, o que ha estado más tiempo, o aquella que simplemente tiene la voluntad de pararse y volver a la “zona” de escuchas lo hace.

    Los asistentes pueden ir pasando por diferentes grupos, y no necesariamente deben quedarse en una charla, o en la charla inicialmente elegida. La persona que propuso el tema de la charla es la que inicia la misma, y al mismo tiempo puede o debería, preferentemente, actuar como moderador.

    Hay que destacar que no es necesario conocer un tema para proponerlo. Puede, por ejemplo, proponerse un tema del cual una persona quisiera obtener conocimientos ya que es posible que dentro de los asistentes se encuentren personas que sepan del mismo.

    En esta oportunidad, cada charla debería tomar alrededor de 45 minutos. Si el mismo se agota antes de tiempo, este se disuelve y las personas pueden ir a observar o participar de otras charlas. Es posible llevar computadoras, y mostrar código y/o presentaciones, bajo la idea de que los asistentes deberán asomarse a la pantalla y tratar de ver algo.

    Si se cuenta con algún medio de proyección, también es posible usarlo, aunque esto dependerá directamente de las instalaciones. Que temas tratar: Los temas son de informática, y no necesariamente de código. Tampoco están relacionados a una empresa, industria, propietario o modalidades de distribución. Simplemente es informática. Se podría hablar de generación automática de código, software factories, test unitarios, análisis estático de código, cloud computing, pair programming vs. revisión de código, test automation, herramientas de productividad, estimaciones, secure programming, XSS y SQL injection, domain specific languages, CMMi vs Agile, store procedures vs SQL inline, web client vs smart clients, lenguajes funcionales, hasta XNA o el mercado del desarrollo de juegos, o lo que sea.

    Extraído de Preguntale al Experto

    Leer entrada completa | Make a Comment ( 2 so far )

    OpenSpace

    Posted on 7 noviembre 2008. Filed under: Comunicación, Herramientas Colaborativas, Herramientas, Métodos y Procesos, OpenSpace, Trabajo en Equipo | Etiquetas: , , , , , , |

    Durante los últimos 15 años, claramente se ha ido percibiendo como el Espacio Abierto puede crear organizaciones inspiradas, donde personas normales trabajan juntas para crear resultados extraordinarios con regularidad.

    face to face meeting

    ¿Qué es?

    La Tecnología de Espacio Abierto es una forma de permitir a toda clase de personas, en cualquier tipo de organización, crear reuniones y eventos que inspiran.

    En reuniones, eventos y organizaciones, de Espacio Abierto, los participantes crean y manejan su propia agenda, de trabajos y sesiones simultáneas, en torno a un tema principal de relevancia estratégica, tal como: ¿Cuál es la estrategia, el grupo, la organización o la comunidad que los “stakeholders” pueden apoyar y trabajar en conjunto, para crear?
    El resultado es poderoso y efectivo a la hora de implementarlo y ayuda a apoyar lo que ya está sucediendo en la organización, no sólo planeando sino actuando, aprendiendo y enseñando, con pasión y responsabilidad, siendo no sólo participantes sino ejecutores.

    ¿Cuándo y Por Qué?

    El Espacio Abierto funciona mejor cuando el trabajo que se debe realizar es complicado, las personas y las ideas que están involucradas son diversas, la pasión por resolverlo (y potencial para conflictos) es enorme, y el tiempo para realizarlo “era ayer”.

    Es llamado “pasión limitada por la responsabilidad”, “la energía de un buen coffee break”, “auto-organización intencional”, “espíritu en el trabajo”, “caos y creatividad”, “evolución en la organización”, y una forma poderosa y sencilla de hacer a las personas y a las organizaciones moverse cuando y donde es más necesario.

    Y mientras que el Espacio Abierto es conocido por su falta de estructuración y abierto a sorpresas, resulta ser que los eventos u organizaciones de Espacio Abierto son, de hecho, muy estructuradas, pero esa estructura es tan perfectamente diseñada para las personas y para el trabajo diario, que pasa desapercibida en sus roles de dar apoyo (no obstaculizar) a un trabajo mejor realizado.

    Aún más, las historias y trabajos que se realizaron en Espacio Abierto son generalmente más complejos, más fuertes, más duraderos, y se pueden mover de manera más rápida y ágil que trabajos realizados por expertos o bajo los diseños administrativos convencionales.

    .

    ¿Cómo se estructura?

    Cuando se abre un Espacio Abierto para un grupo de personas, para que realicen su trabajo más importante, se debe garantizar estos resultados:

    1. Todos los puntos considerados como los MÁS importantes para los participantes, serán tratados;

    2. Todos los puntos que surjan serán sugeridos por los participantes más calificados y capaces de lograr algo en cada uno de esos puntos;

    3. En un período tan corto como uno o dos días, todas las ideas, discusiones, informaciones, recomendaciones, conclusiones, preguntas para discutir y planeamientos más importantes, serán documentados en un reporte muy fácil de entender, impreso y entregado en las manos de los participantes en el preciso momento que ellos se marchan;

    4. Cuando el momento sea apropiado para esto, el contenido de este reporte puede priorizarse en pocas horas, aunque se esté trabajando con grupos grandes (100);

    5. Después de un evento, todos estos resultados pueden ponerse a disposición de toda la organización o toda la comunidad, sin necesidad de realizar el evento, ya que conversando se puede invitar a los “stakeholders” en la implementación, justo en el mismo momento;

    6. Y resultados como estos pueden ser planeados e implementados más rápido que cualquier otro tipo de “intervención para grupos grandes”. Es literalmente posible obtener en días y semanas lo que cualquier otro tipo de técnica dura meses y años.

    Las buenas y malas noticias es lo que funciona. Buenas noticias porque hace que las personas y el trabajo se muevan, malas noticias porque puede significar que muchas cosas pueden llegar a cambiar. Cosas que uno desea, aparecerán y cosas que uno no desea, desaparecerán, y en algunas ocasiones vice-versa-pero así es como la vida funciona. En resumen, el Espacio Abierto trae vida a la organización y trae a las organizaciones de vuelta a la vida.

    Estráido de OpenSpaceWork

    Leer entrada completa | Make a Comment ( Comentarios desactivados en OpenSpace )

    Madurez para reconocer riesgos y trabajar con ellos

    Posted on 7 octubre 2008. Filed under: Gestión de Proyectos de Software, Ingeniería del Software, Metodologías de Desarrollo, Procesos Ágile, Project Management, Trabajo en Equipo, Waterfall | Etiquetas: , , , , |

    Según mis experiencias en el entorno de los proyectos de software, no he vivido un solo proyecto que no haya sufrido modificaciones en el alcance del mismo. Estoy seguro que en la mayoría de las situaciones ese alcance se ve alterado por cambios en los requerimientos en si mismo, ya sea por que detectaron nuevos, se modificaron parámetros restrictivos o nuevos impactos son visibles en fases posteriores del proyecto, entre otros aspectos.
    Esto nos lleva a darnos cuenta que es posible que las estrategias de gestión deban cambiar en el transcurso del proyecto, lo que quizás no implique cambiar el estilo de gestión.
    Sin embargo para minimizar los cambios en la gestión, es que se realizan análisis de riesgos, priorizando los mismos y estimando cual es la chance de convertirse en realidad y cuales serían las estrategias que se aplicarían para aceptarlos, mitigarlos o minimizarlos.
    Es decir que cómo se enfrenta el equipo del proyecto a los cambios, tiene mucho que ver con la madurez para reconocer riesgos y trabajar con ellos.
    Actualmente se plantea mucho el uso de metodologías Ágiles, donde lo que se pretende es manejar un poco mejor la variación del alcance, definiendo entregables de menor tamaño, en tiempos relativamente chicos y donde cualquier modificación del alcance se gestiona como un “incremento” del requerimiento y eso exige la repriorización del
    entregable completo, donde es posible que se deba negociar la introducción a la iteración actual, de “algo de lo nuevo” quitando normalmente “algo de lo viejo” para pasarlo a una nueva iteración o pasándolo al final de la cola.
    Yo pude ver que este tipo de manejo se puede hacer sin que la organización necesariamente esté involucrada en modelos de gestión agilístas, pero si se debe estár insertos en un estilo flexible de gestión y negociación permanente, donde invariablemente el alcance varía y el tiempo también, posiblemente no los costos.
    Pude ver que este tipo de gestión permite generar mayor valor agregado en cada iteración (es notable con solo invocar el interés del cliente) y es posible adaptarse rápido a los cambios. Pero quiero que quede claro que sin gestión de cambio, las adaptaciones apropiadas no son posibles o representan en si mismo un riesgo mayor que los riesgos detectados.
    Quiero que tengan en cuenta algo para pensar. En las metodologías Waterfall (tradicionales) la triple restricción se presenta normalmente de la siguiente manera: 1-Requisitos (fijo), 2-Tiempo (estimado), 3-Recursos (estimado). Siguiendo ésta línea es posible que nuestras restricciones sean muy fuertes en el sentido de que los requisitos son plenamente mandatorios e inclusive el tiempo y es por eso que los PM deben a partir de allí planificar los recursos y “jugar” con las restricciones que este último punto les impone, en relación al carácter mandatorio de los otro dos.
    En las metodologías Ágile, la triple restricción se presenta de la siguiente manera: 1-Recursos (fijo), 2-Tiempo (fijo), 3-Características (estimado). Siendo imperativo conocer de antemano cuales son sus recursos, en segunda instancia cual es el tiempo de respuesta esperado y así decidir que características priorizar para cada iteración, adquiriendo compromisos solo en función de poder cumplir según las restricciones de los puntos 1 y 2. Ahora “el juego” se traslada al punto 3 nuevamente, pero el punto 3 ahora es otro.

    Saludos,
    Javo.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en Madurez para reconocer riesgos y trabajar con ellos )

    …demostrar que sirves para lo que haces mientras logres pertenecer a la organización

    Posted on 4 octubre 2008. Filed under: Herramientas, Métodos y Procesos, Liderazgo, PNL y Coaching, Organización del Trabajo Personal, Project Management, Trabajo en Equipo |

    Tuve la oportunidad de trabajar de distintas maneras en distintas empresas de mi país, principalmente en la provincia de Córdoba, y siempre fui observador de los estilos de gestión, dirección y liderazgo. Pude notar que el tamaño de la organización tiene relación directa con estos estilos y que a mayor tamaño de las empresas, los estilos personales se diluyen para dejar predominar los estilos corporativos.
    En relación inversa, a menor tamaño de la organización se notan de manera marcada los estilos individuales, los cuales notoriamente desnudan la personalidad de los ejecutantes del Management.
    En un corto lapso de tiempo fui empleado en CTI, actualmente conocido como CLARO, la multinacional en telecomunicaciones y voy a utilizar a esta empresa como uno de los extremos que pude vivenciar. En esta organización no tenía que llenar planillas de horario aunque firmaba mi entrada en la planilla de seguridad, el control de horarios de ingreso estaba controlado principalmente por un jefe de área, que de seguro tenía su sistema de gestión de personal.
    Tampoco tuve que describir de ninguna forma mis tareas y actividades, simplemente estaba abocado a actividades de proyecto u operaciones las cuales eran monitoreadas por mi superior a niveles de operaciones o proyecto simples. A niveles más altos de jefatura era de la misma manera, de modo tal que el jefe de área monitoreaba resultados de los subproyectos y el gerente los resultados globales de los proyectos del área.
    El clima laboral era de relativa calma aunque con mucha tensión y esfuerzo laboral. Por si a alguien le suena mi paso por allí, pertenecí a “Interconexiciones” y “Tablas” del área Billing.

    Posteriormente fui empleado de KANAV una software factory del grupo VATES, allí participé en todos los proyectos para la evaluación de CMMI-4, inicialmente como Analista de Pruebas y posteriormente como Líder de Testing. La embergadura de la empresa, considerando a VATES, era bastante menor que CTI pero significativamente grande en comparación con otras empresas en las que también participé.
    Allí el clima era de distención y armonía al menos el 80% del tiempo y nuestra gestión individual era monitoreada con un aplicativo donde se gestionaban todos los proyectos de VATES. Las actividades eran necesariamente imputadas a tareas de proyectos, las cuales requerían de carga de avances y tiempos (trabajo) en la herramienta de gestión. Cualquier producto generado era adjuntado a los “branch” correspondientes y la misma herramienta, configurable por workflows, nos indicaba que entradas requeríamos y que salidas debíamos producir. Los procesos de generación de los productos estaban descriptos en detalle en la documentación de procedimientos.
    Participábamos de reunionnes de control periódico donde se enfrentaban los probemas, se mostraban los rankings, se indicaba todo lo que estaba por venir y como ejecutaríamos todo lo relacionado a próximos proyectos.

    Luego fui contratado por una microempresa y tuve que aprender a convivir con otro tipo de gestión, donde a final del día debía indicar en una planilla Excel cada uno de mis movimientos operativos y actividades de proyecto, de tal forma que la suma de las individualidades debía darme las ocho horas de trabajo, al menos.
    Este tipo de gestión no me permitió respirar, generó un gran stress en todos los miembros del equipo, nos cuestionamos y criticamos duramente unos a otros, nos sentimos absorvidos y controlados y nuestra participación parecía ser de poco valor.
    Luego cualquier conversación nos parecia un despedicio y fuimos truncando nuestra comunicación básica y escencial para nuestros proyectos.
    Los procesos no existieron y “cuando se dibujaron con la mano se borraron con el codo” y nunca nada era repetible. Entonces se introdujeron individualismos y modo de trabajo desnivelados, siendo la gestión personal de algunos, mejor que la de otros y no había una sumatoria a favor.
    El liderazgo no se manifestó y se presentó siempre con un estilo autoritario y poco participativo, con largos monólogos y muy baja interacción en las reuniones. El estilo fue muy separatísta aún cuando nuestro TEAM era chico. La microempresa tenía un estilo de micromanagment para gestionar el trabajo de los empleados, un estilo timonel en las reuniones y un estilo autoritario en las solicitudes de trabajo y al entregar feedback al empleado.
    Me pregunté como una organización así pudo subsistir y la respuesta la encontré en el talento de las personas que formaban el TEAM y la personalidad del grupo ayudó en general, a mitigar cualquier barrera.
    El estilo personal de las personas era demasiado notable y se oían demasiadas voces por lo bajo y por lo alto solo una, con un mandato y con una imposición. Algunos planificaron la huída, otros nos quedamos un buen tiempo.

    En definitiva, un fenómeno de micromanagement parece estar presente en pequeñas organizaciones que “le cuentan las costillas” a los empleados, quizás motivados por un excesivo control de los recursos, seguramente escazos. Quizás facilitado por el desconocimiento de otro tipo de gestión o tal vez por que el ambiente cultural se presta para experimentaciones y se va buscando el límite siempre. Algunas veces sufrí el “micromanagement lateral” pero mi actitud laboral y para con la vida no me dejó ser víctima.
    Organizaciones de mediana embergadura que lograron establecer procesos bien definidos y automatizar la gestión, tienen controles mucho más rigurosos pero que la gente no siente como tales, quizás por que todo goza de claridad y definición.
    Organizaciones mucho más granes parecen carecer de controles pero esto es solo una ilusión, por que los mismos están en todos los niveles, desde que se pasa la tarjeta en la llegada, hasta el café y el cigarrillo de la reunión de compañeros. Aparentemente todo se basa en la confianza que siente el empleado en su empresa y no al revés, pues cuando sientes que tu
    espacio individual es respetado, querrás ser productivo, participativo y sentirte importante para que los proyectos se cumplan.
    Entonces en esta era del management y el liderazgo, por que algunos obligan a sus empleados a caminar por cuerdas flojas, pareciendo querer demostrar que sirves para lo que haces mientras logres pertenecer a la organización.

    Saludos,
    Javo
    .

    Leer entrada completa | Make a Comment ( Comentarios desactivados en …demostrar que sirves para lo que haces mientras logres pertenecer a la organización )

    The Chaos Report

    Posted on 16 septiembre 2008. Filed under: Calidad del Software, Gestión de Proyectos de Software, Metodologías de Desarrollo, Project Management | Etiquetas: , , , , , , |

    “Un proyecto es un esfuerzo temporal que se lleva a cabo para crear un producto, servicio o resultado único, con restricciones de plazo y de costo”


    Sobre la base de los resultados de la dirección de proyectos en compañías de informática se realizo el estudio “The Chaos Report” (Standish Group) que observa de todos los proyectos estudiados, qué cantidad fueron finalizados exitosamente y cuántos no llegaron a cumplir con algunos o todos los objetivos. Y lo más interesante es que hace un análisis de los motivos que originaron esos “fracasos”, permitiéndonos poner foco en ellos al dirigir nuevos proyectos.

    Según este estudio del total de proyectos evaluados:
    El 16% son completados con el alcance esperado, en el tiempo planificado y dentro del presupuesto asignado.
    El 53% de los proyectos son completados con menor alcance, y/o sobrecosto y/o fuera de término.
    El 31% de los proyectos son cancelados antes de terminar.

    Del total de proyectos que se completan:
    El 70% de los proyectos terminan fuera de plazo.
    El 54% de los proyectos sufren sobrecostos.
    El 66% de los proyectos no son considerados exitosos.
    El 30% de los proyectos son cancelados antes de terminar

    Principales factores de éxito:
    1 – Involucramiento del usuario 15.9 %
    2 – Apoyo de la Gerencia 13.0 %
    3 – Enunciado claro de los requerimientos 9.6 %
    4 – Planeamiento adecuado 8.2 %
    5 – Expectativas realistas 7.7 %
    6 – Hitos intermedios 7.7 %
    7 – RRHH competentes 7.2 %

    Principales factores de fracaso:
    1 – Requerimientos incompletos 13.1 %
    2 – Falta de involucramiento del usuario 12.4 %
    3 – Falta de recursos 10.6 %
    4 – Expectativas no realistas 9.9 %
    5 – Expectativas realistas 9.3 %
    6 – Falta de apoyo de la Gerencia 8.7 %
    7 – Requerimientos cambiantes 8.1 %

    Leer entrada completa | Make a Comment ( 4 so far )

    Testing Exploratorio – Cuando faltan elementos en las evidencias de resolución

    Posted on 16 septiembre 2008. Filed under: Calidad del Software, Ingeniería del Software, Procesos Ágile, Pruebas de Integración, Pruebas Unitarias, Resolución de problemas, Resolución de Problemas y Gestión de Incidentes, Trabajo en Equipo |

    Las verificaciones funcionales tuvieron una tónica un poco desagradable el día de hoy, ya que para la ejecución de las pruebas de sistemas requirieron mucho esfuerzo en el levantamiento de elementos que me permitan formar un concepto de cómo realizar el Testing y que resultados esperar.

    La mayoría de las verificaciones no pudieron ser ejecutados por aspectos relacionados a elementos faltantes del despliegue, los cuales no son mencionados en ninguna de las evidencias de resolución. Sin embargo, al revisar la evidencia de cada una de las resoluciones encuentro que tales evidencias no tienen elementos que permitan formar con cierta normalidad los conceptos de Testing Funcional.

    De esta manera solo se consigue dilatar los tiempos de Testing, se tienen más rechazos de soluciones (inclusive por desentendimiento), no cumplir con la entrega planificada y el re trabajo que implica en todas las áreas involucradas. Ni hablar si se aprueba un resolución y luego la rechazan en Despliegue al detectarla como fallida.

    Creo que las evidencias tienen que tener el foco funcional que hace falta, principalmente por que en situaciones como la de hoy, se hace “testing forzado”, sin planificación, sin anticipación.
    Las evidencias no deberían simplemente tener las sentencias SQL que se usan o los valores booleanos que adoptan las variables o los nombres de formularios ocultos, entre otros elementos de bajo nivel, que muchas veces es interpretable y sirve solo en el contexto adecuado, pero fuera de el no es de utilidad.

    Tal como mencioné varias veces, estoy convencido que para ciertos artefactos, no es necesario intentar recurrir a prácticas de Pruebas Unitarias sin el framework adecuado, pero se pueden plantear juegos de pruebas de caja negra, en la cual es posible definir aspectos relacionado a las interfaces, totalizadores, los comandos de acción, etc.

    Dicho de otra manera, las pruebas del desarrollador tal vez deberían declarar el juego mínimo de pruebas de funcionales (caja negra) que indiquen un estado previo, el proceso ejecutado y el estado posterior del juego de datos.

    O en su defecto hay que darnos el tiempo para que luego de notificada la resolución, se asuma “un tiempo de estudio” para generar los conceptos de pruebas funcionales, pero así no se garantiza nada.

    Por otro lado, el día de hoy se vio una debilidad en el traspaso al darnos cuenta que falta la especificación de la corrida de agentes y también el momento de la corrida, lo cual parece ser estratégico para que no se presenten los fallos que se presentaron en Testing.

    En definitiva me doy cuenta de la debilidad que hay en los traspasos y posiblemente tenga que ver con la estrategia que se deba plantear antes de iniciar las resoluciones.

    A mi me sigue costando enterarme con anticipación de que bloques serán entregados y según la experiencia que tengo en nuestra interacción cotidiana (Desarrollo – Testing / Testing – Desarrollo), aún las correcciones más sencillas nos cuesta un esfuerzo muy importante tanto a Desarrollo como a Testing y las verificaciones se demoran de manera no convenientemente, como es lógico.

    Si estos elementos se siguen presentando con tanta dificultad, las estimaciones del esfuerzo de Testing van a quedar subestimadas por la necesidad de estudio de los Testers para cada uno de los artefactos de software, siempre que se efectúen pruebas exploratorias.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en Testing Exploratorio – Cuando faltan elementos en las evidencias de resolución )

    Gestión de Proyectos

    Posted on 5 septiembre 2008. Filed under: Metodologías de Desarrollo, Procesos Ágile, Waterfall | Etiquetas: , , , , , |

    Prácticas del PMBOK relacionadas a prácticas ÁgilesRecientemente lancé el debate en LINKEDIN en el grupo IAAP sobre cuan aplicable son las prácticas de PMI a las metodologías Ágiles. El volúmen de respuesta no fue alto pero los que quisieron aportar lo hicieron bien, y de allí rescato una lectura interesante:
    Relating PMBOK Practices to Agile Practices

    Básicamente en este artículo la autora explica como se ha relacionado de manera indebida a los procesos Waterfall con las prácticas PMI, al igual que se lo ha relacionado al CMMI de manera injustificada, cuando en realidad PMBOK es solo una guía de “mejores prácticas” y debe ser utilizado con criterio organizacional cuando se implementen sus prácticas.
    Por otro lado reprende a los practicantes de metodologías agilístas al tildarlos de “promotores del Cowboy Coding” lo cual conlleva a una situación de caos indeseada para cualquier proyecto.
    Según las observaciones de la autora, si las metodologías Ágiles son seguidas con diciplina y rigor, cumplen con el modelo CMMI y las prácticas PMBOK, tal cual como lo haría una metodología Waterfall. Indica también que más allá de lo visible, la única diferencia entre proyectos bajo controles de planificación PMI y controles de equipos autogestionados, es el momento y la manera en que se ejecutan las prácticas, las cuales son símiles difiriendo más que nada en el léxico pero no en su escencia.

    Al respecto del core de cualquier proceso a ser administrado, en el gráfico de arriba puede visualizarse el mapeo entre las convenciones PMBOK y APM o Agile Project Management Framework.
    La autora explica que existen “Seis Claves de Gestión” definidas en el PMBOK y que merecen especial atención y las cuales tienen sus relaciones en las metodologías Ágiles, aunque se diferencian en su implementación:

    • Gestión de la Integración del Proyecto
    • Ámbito de Aplicación del Proyecto de Gestión de Proyecto
    • Gestión del Tiempo
    • Gestión de la Calidad
    • Gestión de Riesgos
    • Gestión de Recursos Humanos

    Los invito a ver el artículo y sus ampliaciones y a opinar en mi blog.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en Gestión de Proyectos )

    La importancia de las Certificaciones y evaluaciones de los SSI

    Posted on 31 agosto 2008. Filed under: Calidad del Software, Ingeniería del Software, Metodologías de Desarrollo, Procesos Ágile | Etiquetas: , , , , |

    Desde siempre los profesionales que prestamos servicios informáticos nos vimos en la necesidad de constante evolución y así cada vez más, se presentan situaciones en las que un estudiante universitario o terciario o idóneo, logra una certificación que lo acerca a una mejor posición a la hora de prestar sus servicios, mucho antes de finalizar su educación formalista.
    En vista del auge que tienen las empresas dedicadas al SSI (Software y Servicios Informáticos) no es sorpresa que se coticen mejor aquellos RRHH que suman certificaciones y otras capacitaciones año a año. Tampoco es sorpresa que las empresas necesiten certificar sus procesos y/o productos y de esa manera acceder a mejores oportunidades de negocio en el mundo globalizado.
    Muchas empresas accedieron a importantes logros a nivel de evaluaciones CMMI o certificaciones ISO, entre otras calificaciones y debo decir que ya es notable la escalada de proyectos internacionales que recaudan sus agendas de trabajo y la cartera de cliente se globaliza aún más.
    El movimiento agilísta no a presentado ninguna restricción al respecto de que certificaciones y/o evaluaciones son requeridas para dar un formato cerrado de empresa SSI de calidad y garantías de satisfacción. Estos procesos y metodologóas propuestos por los movimientos Ágiles parecerieran ser solamente aditivos para mejorar en ciertos aspectos la productividad, sin representar necesariamente calidad certificada.
    Entonces ¿Por que los clientes deben confiar sus requisitos a empresas que no tienen interés en certificar una norma de calidad de productos finales como ISO o ser evaluados en CMMI para sus procesos de construcción y prestación de servicios informáticos?

    Leer entrada completa | Make a Comment ( Comentarios desactivados en La importancia de las Certificaciones y evaluaciones de los SSI )

    Cursos en Córdoba, Septiembre a Octubre

    Posted on 31 agosto 2008. Filed under: Gestión de Proyectos de Software, Metodologías de Desarrollo, Procesos Ágile | Etiquetas: , , |

    En Córdoba Argentina, se dictarán cursos de Adminsitración de Proyectos, Seminarios Taller de Scrum y Testing de Software Embebido.
    Los cursos son promovidos por el INTI y tiene el siguiente cronograma conocido al momento:

    Seminario Taller SCRUM: Gestión ágil de proyectos de software
    11 y 12 de septiembre de 9 a 18 horas.
    Más información: http://www.inti.gov.ar/capacitacion/software/scrum_cordoba.htm

    Administración de Proyectos de Software
    5, 6 y 7 de noviembre de 9 a 18 horas.
    Más información: http://www.inti.gov.ar/capacitacion/software/adm_cordoba.htm

    Testing de Software Embebido
    5, 6 y 7 de noviembre de 9 a 18 horas.

    Más información: http://www.inti.gov.ar/capacitacion/software/software_embebido.htm

    Leer entrada completa | Make a Comment ( 2 so far )

    Ágile resulta más económico?

    Posted on 18 agosto 2008. Filed under: Metodologías de Desarrollo, Procesos Ágile, Uncategorized | Etiquetas: , , , , , |

    En términos de rendimientos económicos puede demostrarse con relativa facilidad la diferencia entre modelos de gestión Ágiles y Waterfall.
    Basados en la idea de que todo proyecto tiene objetivos concretos que alcanzar en tiempos y costos limitados, es fácil observar que mientras los modelos Waterfall administran sus entregables a lo largo de una escala de tiempo significativamente grande, los modelos Ágile planifican entregas a una escala mucho más corta. Siendo así es entendible que el valor apreciativo de cada entrega pactada se devalúe con el paso del tiempo, por el solo hecho de los cambios naturales en los requerimientos de los negocios que dan vida a los proyectos. Entonces son estos mismos cambios la razón principal para que una solución ofrecida para una versión de software “X.Y.Z” en poco tiempo deje de ser una solución efectiva para el negocio.
    El “
    valor esperado para una solución de negocio” es cada vez menor por cada una de las nuevas versiones promovidas por tales cambios, y aunque esta situación está presente en cualquier modelo de trabajo, hay que hacer una comparativa de la “devaluación” de la solución esperada entre entregables.
    Los modelos Waterfall típicamente tienen espacios
    de tiempos muy grandes entre entrega y entrega, y la depreciación del valor tiende a ser mayor que el revalúo que promueven las próximas entregas. Entonces la línea de valor esperado para una solución de negocio termina siendo sensiblemente menor con el transcurrir de la variable tiempo.
    Los modelos Ágile promueven entregas en iteraciones mucho más pequeñas, con lo cual si bien el cliente puede tener una baja apreciación inicial, a corta data puede observar el verdadero valor de tener soluciones efectivas en mucho menor tiempo, y aún cuando las misma no representan en si mismas la solución general, si representan soluciones integrales que para cada entrega representan mayor revalúo que depreciación.
    En lo particular tengo alta estima por los modelos ágiles, más que nada por el valor agregado que implican las iteraciones recurrentes con el cliente, quien no solo redirecciona los pasos del proceso de construcción de las soluciones, sino que revaloriza el modelo de trabajo al promover mejores alternativas para ser utilizadas en cortos plazos de tiempo. Esta iteración magnifíca la percepción del
    valor esperado” para muchas soluciones del mismo negocio.
    GoogleTech presenta en forma sintética esta idea donde se explica gráficamente como Ágile permite generar valor agregado con iteraciones más cortas:

    Leer entrada completa | Make a Comment ( Comentarios desactivados en Ágile resulta más económico? )

    Olfato e intuición amplificada

    Posted on 5 agosto 2008. Filed under: Calidad del Software, Procesos Ágile, Testing, Trabajo en Equipo | Etiquetas: , , , |

    Fortalezas y debilidades de las Pruebas Exploratorias

    Muchas veces se habla del Testing Exploratorio sin tener una verdadera conciencia de lo que se trata ni del modo en que se debe ejecutar. Los detractores de este tipo de verificaciones, opinan mostrando la práctica como informal, sin procedimiento y fuera de los cánones del Testing y por transferencia intentan establecer que no existe Calidad del Software.

    Les doy la razón únicamente en que este tipo de pruebas del software no están en los cánones del Testing, puesto a que es una actividad extremadamente compleja de interpretar y realizar si no se tienen en cuenta los elementos de soporte que finalmente avalan la práctica.

    Las pruebas exploratorias muestran sus resultados y garantías en base a los resultados y garantías de prácticas previas y del mismo modo, fallan sus resultados y garantías cuando prácticas que le anteceden son ejecutadas en forma endeble o imprecisa.

    Para este tipo de verificaciones y validaciones son necesarios ciertos elementos del lado del QA y Testing:

    • Conciencia de que todo lo que se verifica está orientado a la detección de problemas que impidan satisfacer requisitos funcionales y no funcionales
    • Capacidad de análisis elevado para entendimiento cabal de requisitos en base a la observación y análisis de la evolución de los mismos
    • Abstracción para la elaboración de circuitos de pruebas de verificación y validación
    • Capacidad de ampliación de caminos de pruebas para mejora espontánea de la cobertura
    • Conocimiento y dominio del negocio al que pertenece el problema
    • Alta proactividad y gran capacidad comunicacional para generar ambiente colaborativo
    • Conocimiento cabal del proceso que rige para reconocer las fallas que se manifiestan en los resultados no deseados
    • Gran capacidad para definir y variar las estrategias, tácticas y técnicas de validación y verificación
    • Olfato e intuición amplificada

    Este es un formato simple de ideación de prueba exploratoria y aquí les muestro un breve ejemplo:

    “Se hizo el planteo de ir cambiando fechas del servidor para que las Presentaciones venzan con la regularidad que precisamos y los avisos visuales se evidencien en cada vencimiento, según la parametrización establecida para cada Etapa del Circuito de Aprobación. Con esto tendremos la cobertura necesaria para verificar las funcionalidades relacionadas con el establecimiento de fechas luego de haberse aceptado una Presentación para que ingrese al Circuito de Aprobaciones.
    Será necesario realizar verificaciones también un paso adelante, es decir desde el Circuito de Aprobaciones, para lo cual preparamos el siguiente juego de datos sencillos:
    Se prepararon a nivel de juego de datos para Testing, 16 presentaciones vencidas donde existe al menos una presentación vencida para cada Etapa.
    Se definen seis (6) usuario donde cinco (5) tienen el rol de Aprobador de Circuito, más su rol principal y un (1) usuario tiene el rol de Administrador.
    Se define una cuenta de Test para cada aprobador y se la configura con alias en ThunderBird.
    Cada vez que se cierra una etapa se notifica vía mailing tanto al Administrador como al Aprobador de cada etapa del circuito.
    Cuando una Presentación se encuentre vencida en la Etapa Actual, según los parámetros definidos para la etapa, se notificará vía mailing al Administrador y al Aprobador”

    Hay que considerar que para el éxito de esta verificación se utilizarán las definiciones que se hacen a nivel de requerimiento (por eso es importante la completitud y correctitud del Req.) para verificar mediante pruebas exploratorias (sin script), que el sistema esté haciendo lo que se solicita y se ampliará el grafo de pruebas según criterio de SQA, para verificar que el sistema no haga lo que no debe hacer.
    Es decir que básicamente los requerimientos definidos son los Scripts de ejecución y también evidencia de funcionalidad.

    Según este tipo de proceso de verificación y validación, las evidencias de funcionamiento se deben dar en la fase de construcción e integración, más no pretender que las pruebas funcionales indiquen que el sistema funciona correctamente, sino entender que el concepto es la detección de fallos y errores.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en Olfato e intuición amplificada )

    ¿Cual es la importancia de contar con un proceso bien definido?

    Posted on 28 julio 2008. Filed under: Calidad del Software, Metodologías de Desarrollo | Etiquetas: , , , |

    En la actualidad existen  cientos de Software Factory que no tienen prácticas definidas en casi ninguna área de procesos y aún sin definir puntos de control formalistas como lo demandan los procesos más conocidos (existen muchos y variados), realizan actividades que son las que en escencia la definen como una Software Factory.

    Conocen de requerimientos, análisis y diseño, implementación y testing, tienen definidos sus objetivos para cada proyecto y trabajan contra un “end line”, con un presupuesto limitado, con recursos asignados y todo esto se gestiona de alguna manera, aunque no está claro como. El no tener claro “el como” o ser variable de un proyecto a otro, puede considerarse como un proceso indefinido.

    Estoy de acuerdo que cualquier empresa que trabaja con algún tipo de organización funcional, tiene un proceso que le permite llegar desde un principio hasta un fin. Esta organización funcional no define necesariamente a un proceso.

    Sin embargo no podemos excluir a estas empresas del rubro software factory por el de no tener prácticas moderadas. Inclusive las podemos criticar y comparar pero no podemos ponderar en forma generalizada el grado de éxito o fracaso que estas entidades tienen.
    Puedo afirmar que existen organizaciones pequeñas que no conocen los verdaderos preceptos de calidad (la gran mayoría) y ni siquiera están interezados en los procedimientos formales de verificación, ni en documentación ni en el testing tradicional, ni en métricas y para cada proyecto varía el método de trabajo, el modo de comprobación y sus certificación internas y externas.

    Y aún sin definiciones formales logran entregar sus productos en muy buenos términos, pero con aspectos pocos deseados como son:

    • resultados poco predecibles
    • resultados poco repetitivos
    • alto desgaste de los recursos
    • métricas endebles o inexistentes
    • calidad dudosa o no garantizada

    Nuevamente me pregunto: ¿cual es la importancia de contar con un proceso bien definido?

    Leer entrada completa | Make a Comment ( Comentarios desactivados en ¿Cual es la importancia de contar con un proceso bien definido? )

    Aplicaciones completamente personalizables

    Posted on 23 julio 2008. Filed under: Calidad del Software, Metodologías de Desarrollo, Soporte Colaborativo, Soporte de Aplicaciones | Etiquetas: , , , , , , , , |

    Las aplicaciones WEB están marcando la tendencia inexorable de las UI (User Interface) que pronto deberán ser aplicadas en nuestras aplicaciones de escritorio.

    La riqueza de funcionalidades que actualmente se ofrece en la WEB abarca factores de total personalización desde la primera interacción del usuario con su aplicación. El LOGIN puede hacerse ni bien se abre el SITE pero es posible previamente seleccionar el idioma de preferencia, el esquema de colores y hasta alternativas de gestión basadas en perfiles que el usuario definió en ingresos previos.

    Por ejemplo un SITE puede validar solamente el “nombre de usuario” sin que el mismo haya ingresado aún su “clave privada” y en una especie de juego tienta al usuario identificado a seleccionar algunas opciones de accesibilidad y usabilidad, las cuales solo estarán disponibles si se valida la “clave privada” y en algunos casos un tercer nivel de seguridad como puede ser un “código de validación” que recibe en su cuenta de correo diariamente.

    De esta manera los propietarios de SITE pueden hacer gala de estas potencias mostrando valores agregados de diseño, arquitectura y funcionalidades, mucho antes de brindarles el servicio real para el cual el sistema fue creado. Con estos “Mock-Ups” se logra un alto factor de fidelización y atracción para potenciales nuevos usuarios y clientes.

    Una vez “adentro” continúan las opciones de personalización hasta niveles antes desconocidos:

    • El usuario puede, mediante “Drag & Drop” cambiar el orden de visualización del contenido usando la potencia de lo que se conoce como “Portlets”, mientras que puede determinar que contenidos estarán bloqueados para que no se pueda reemplazar su posición o la visualización de su información interna.
      Bajo el mismo esquema de personalización mientras el usuario mueve su contenido con “Drag & Drop” el SITE propone generar nuevas columnas o nuevas filas o ambas cosas, según disposiciones posibles de orden.
      Esto es posible mientras tiene garantizado que siempre su contenido estará activo y actualizado.
    • El usuario puede ejecutar en pasos muy sencillos “uploads inline” realizando selecciones múltiples de archivos y en el mismo proceso de carga, pausar una o varias cargas planificadas, cancelar una o varias cargas planificadas, visualizar el avance individual de cada carga y a su vez visualizar el avance general de la carga, pausar todo el lote de carga y en esa pausa quitar archivos que aún no fueron cargados y definir otros archivos de su interés y finalmente reiniciar el proceso de Upload.
    • En lo que respecta a catálogo de imágenes es posible realizar operaciones de “Drag & Drop” con el teclado mismo utilizando teclas que el mismo usuario configura para la navegación.
      El teclado pasa a ser una herramienta de uso contemporáneo en las aplicaciones WEB tanto como el mouse.
    • Los “ToolTips” están a la orden del día y es posible que el mismo usuario los genere del mismo modo que en Excel se genera un comentario en una celda.
      Hay que sumarle que los ToolTips son personalizables en color, fuente, el mismo contenido, retardo antes de mostrarse y si además de mostrar la información ingresada por el usuario también mostrará información técnicas del objeto del catálogo.
    • Los “chekboxes” no se limitan a solo permitir la selección sino que ya muestran una variedad de estilos que el mismo usuario puede definir y se combina con la nueva potencia del texto que se puede modificar “inline”. Nuevamente el teclado es fundamental para interactuar con estos elementos.
    • Los “Tabs” aumentan potencia al permitir interacción con el teclado y utilizar las teclas que el usuario mismo define, estableciendo el orden saltos, las teclas de navegación, reordenamiento y un poco más al definir los estilos de foco.
    • Las listas verticales ahora son totalmente ordenables y permiten que el usuario mueva grupos enteros de una lista desde un lugar a otro o bien redefina la posición de un único elemento de la lista, cambiándolo a un nuevo grupo.
      También se pueden mover varios grupos a una nueva posición de orden y la aplicación enumera automáticamente las posiciones según un orden establecido inicialmente o configurable también.
    • Los formularios editables muestran toda las funcionalidades ricas de aplicaciones como Word

    image

    La lista se extiende mucho más de lo que aquí pretendo mostrar y sin duda los diseñadores de aplicaciones WEB utilizan las potencias de las nuevas herramientas que ahora utilizan los estándares más populares y gestores de contenidos para separar justamente el contenido del impacto visual y lograr administraciones mucho más potentes de las aplicaciones.

    Es posible que todos esto haya sido ideado inicialmente habiéndose detectado la necesidad de fidelización de usuario y captación de nuevos, pero el desarrollo y evolución es tan acelerado y significativo que este cambio generacional del WEB, ya impacta directamente en el modo de generar la aplicaciones de escritorio.
    El contagio no se hace esperar y podremos en muy corta data, observar como los lugares donde trabajamos utilizarán la sinergia de las aplicaciones WEB y las aplicaciones de escritorios, siendo irreconocible la división, si es que la hubiera, en lo que respecta a la implementación y mantenimiento de los “acuerdos de servicios”, obteniendo mayor y mejor soporte para disponer de nuestros datos desde múltiples lugares (remotos o locales), compartirlos con seguridad en un “entorno plenamente colaborativo” y orientado a la generación de información sustancial.

    Leer entrada completa | Make a Comment ( Comentarios desactivados en Aplicaciones completamente personalizables )

    10 Mejores Prácticas para la Generación de Software

    Posted on 18 julio 2008. Filed under: Calidad del Software, Metodologías de Desarrollo, Trabajo en Equipo | Etiquetas: , , , , |

    La rapidez con que se construye un edificio es sorprendente, pero detrás de esa aparente facilidad están los siglos de experiencia de la industria de la construcción, y si quisiéremos aplicar los mismos parámetros a los proyectos de software, la desproporción será abismal. A casi tres décadas el desarrollo de software sigue buscando la manera adecuada de desarrollarse para hacerlo más rápido y sin errores.
    Anteriormente las pruebas de software se consideraban sólo una actividad que realizaba el programador para encontrar fallas en sus productos; con el paso de los años se ha determinado la importancia que tienen para garantizar el tiempo, el costo y la calidad del producto, de tal forma que actualmente son un proceso cuyo propósito principal es evaluar en todo momento la generación del software respecto de los requerimientos establecidos al inicio.

    La nueva tendencia consiste en iniciar las pruebas en etapas tempranas dentro del proyecto, y capacitar a especialistas responsables de esta actividad. El primer punto quiere decir que actualmente es una práctica casi generalizada que las especificaciones de pruebas se realicen al mismo tiempo que el diseño de software; la propuesta es iniciar el análisis del testware junto con el análisis del software. Esto habla de pruebas preventivas que ofrecen ventajas como las siguientes:

    a) Se identifica qué se quiere y cuáles son los resultados esperados (criterios de aceptación)
    b) Ejecutar las pruebas tan pronto como el software está listo.
    c) No sólo descubrir errores, sino evitarlos.

    El segundo punto habla de crear conciencia sobre la importancia de las pruebas y tener un equipo de personas dedicadas a esta actividad que puedan integrarse a un proyecto y sean responsables de su calidad. Hoy se tiene ya definida la carrera de ingeniero de pruebas y existen organismos especializados para certificar en esta disciplina.

    Entonces se puede decir que los objetivos actuales de las pruebas no sólo tienen que ver con corregir errores, sino con prevenirlos influyendo y controlando el diseño y desarrollo del software. Las pruebas deben ser empleadas como modelos de los requerimientos de software que se ha de construir; por tanto, en las especificaciones de software deben incluirse especificaciones de pruebas; ambas deberán revisarse en conjunto, y en esta revisión deberá participar un especialista en pruebas.

    La disciplina de pruebas ha evolucionado en una práctica de especialización que puede ser ofrecida como un servicio hacia clientes internos y externos, garantizado que tanto la metodología como las herramientas automatizadas son aprovechadas eficientemente para alinear el desarrollo a las expectativas del cliente.

    Se debe reconocer que las pruebas son una especie de administradores de riesgos; al igual que en los problemas de combinatorias complejas, se puede definir cuál debe considerarse buen resultado, aunque no necesariamente sea el mejor resultado; con esto quiero decir que las pruebas sólo deben obtener un producto práctico con la calidad y funcionalidad requeridas.

    A continuación se sugieren 10 mejores prácticas para la generación de software:

    1. Hacer una evaluación del trabajo de cada integrante del equipo. Concienciar al equipo de la importancia que tienen las pruebas y el valor que tienen para cada miembro del equipo y así generar cooperación y coordinación entre los miembros del mismo.
    2. Establecer un plan maestro integrado. Establecer claramente las funciones y responsabilidades de los equipos de desarrollo y pruebas
    3. Considerar las pruebas preventivas como parte de las especificaciones de trabajo. Diseñar previamente los escenarios de prueba, dentro del desarrollo de software, y realizar revisiones para asegurarse de que lo que se está construyendo cumple con los requerimientos solicitados.
    4. Usar las pruebas como puntos de control y progreso. Realizar pruebas y revisiones formales para verificar y demostrar que todos los productos claves del proyecto han sido realmente terminados.
    5. Inventario de los objetivos de pruebas y diseño para factibilidad. Revisar la factibilidad en la realización de las pruebas.
    6. Probar pronto y frecuentemente. Hay que probar lo antes y más frecuentemente posible; esto permitirá detectar los problemas tan pronto surjan, de esta manera el desarrollador será más eficiente en las correcciones.
    7. Diseñar y desarrollar el testware como el software. Esto implica planear, analizar, diseñar, supervisar, controlar los cambios, administración; en suma, desarrollar el testware con la misma disciplina con que se desarrolla el software.
    8. Proporcionar una herramienta integrada de pruebas, evaluación y de soporte de infraestructura. Proporcionar herramientas que incluyan: Base de datos o repositorio, Administración de pruebas, que permita documentar, ejecutar y clasificar pruebas, Soporte automático, Simuladores, Analizadores de software, Manejadores de pruebas, Herramientas de captura y repetición (playback) y utilerías.
    9. Medir el costo, el alcance, los resultados y la efectividad de las pruebas y evaluación. Coleccionar información que permita conocer el costo, los resultados y los beneficios así como el alcance.
    10. Entrenar y administrar al equipo. Proporcionar el liderazgo y administración al equipo con el fin de que sepa lo que se espera de él para que se tomen las pruebas seriamente. Definir los criterios de “mejores prácticas”.

    La razón principal para implementar esta práctica, es que finalmente todo el tiempo perdido, se convierte en costos que afecta los resultados de un proyecto, pues generalmente se usa más del tiempo planeado para las pruebas. Para los administradores de proyectos, la correcta administración es la que lleva a obtener buenos resultados.

    Publicado por por Elsa Ramírez, Directora de Tecnología y Calidad para Praxis el 6 de marzo de 2008 en http://www.sg.com.mx

    Leer entrada completa | Make a Comment ( Comentarios desactivados en 10 Mejores Prácticas para la Generación de Software )

    Ayudemos a definir un mejor modelo SCRUM

    Posted on 16 julio 2008. Filed under: Herramientas, Métodos y Procesos, Ingeniería del Software | Etiquetas: , , |

    Suena a una cruzada para salvar el mundo o para generar conciencia. Tal vez se ambas cosas. Lo cierto es que alguien se tomó el trabajo de hacer un buen número de definiciones en base a SCRUM y graficó el modelo con la mayoría de los elementos que son partícipes. Pronto los invitaré a colaborar con mi propia metodología, modelo o proceso, según a lo que llegue. Si estas interesado, puedes hacer ingresando en Metodología basada en SCRUM

    Leer entrada completa | Make a Comment ( Comentarios desactivados en Ayudemos a definir un mejor modelo SCRUM )

    « Entradas anteriores

    Liked it here?
    Why not try sites on the blogroll...