sábado, 7 de septiembre de 2013

Extractos 3 - del libro SCRUM Y XP DESDE LAS TRINCHERAS de Henrik Kniberg

Por qué insistimos en que todos los equipos hagan retrospectivas 

Lo más importante de las retrospectivas es asegurarse de que tienen lugar. Aun así, todo el mundo coincide en que las retrospectivas son extremadamente  útiles. De hecho, yo diría que la retrospectiva es el segundo evento más importante de Scrum (siendo el primero la reunión de planificación de Sprint) ya que ¡es tu mejor oportunidad para mejorar! 

Difundiendo las lecciones entre los equipos
Reglas importantes para la persona que actúa como “puente de conocimiento”:

• Debería ser bueno escuchando. 
• Si la retrospectiva es poco activa, debería estar listo para realizar preguntas simples pero bien apuntadas para estimular la discusión dentro del grupo. Por ejemplo, “si pudierais rebobinar y hacer este Sprint otra vez desde el día 1, ¿qué haríais de forma diferente?” 
• Debe estar dispuesto a pasar tiempo visitando todas las retrospectivas de todos los equipos. 
• Debería tener algún tipo de autoridad, de forma que pueda actuar sobre las sugerencias que estén fuera del control del propio equipo.

Descansos entre Sprints 
Como mínimo, intentamos que la retrospectiva y la subsiguiente reunión de planificación de Sprint no ocurran el mismo día. Todo el mundo debería tener al menos una buena noche de sueño sin Sprint antes de comenzar el siguiente Sprint.

Scrum se enfoca en las prácticas de organización y gestión, mientras que XP se centra más en las prácticas de programación. Esa es la razón de que funcionen tan bien juntas: tratan de áreas diferentes y se complementan entre ellas. 

Ritmo sostenible / trabajo enérgico
Hace cosa de un año uno de nuestros equipos (el más grande) estaba trabajando un número insalubre de horas extra. La calidad de la base de código era pésima y habían pasado la mayor parte del tiempo apagando fuegos. El equipo de pruebas (que también estaba haciendo horas extra) no tenía ninguna 
posibilidad de hacer aseguramiento de la calidad en condiciones. Nuestros usuarios estaban enfadados y la prensa nos estaba devorando vivos. Después de unos meses conseguimos disminuir las horas de trabajo a un nivel decente. La gente comenzó a trabajar en horarios normales (excepto durante 
algunas crisis de proyecto, a veces). Y, oh sorpresa, la productividad y la calidad mejoraron notablemente. Por supuesto, reducir las horas de trabajo no fue en absoluto el único aspecto que condujo a la mejora, pero todos estamos convencidos de que tuvo mucho que ver.

Cómo hacemos pruebas 
Nuestra experiencia nos dice que eso rara vez funciona. Habrán errores graves. Si la calidad tiene algún valor para ti, es necesario algún tipo de fase de pruebas de aceptación manuales. Se trata de que encargados de pruebas dedicados que no son parte del equipo machaquen el sistema con ese tipo de pruebas que el equipo de Scrum no pudo imaginar, o no tuvo tiempo de hacer o no contaban con el hardware necesario para implementar. Los encargados de pruebas acceden al sistema en la forma exacta en la que los usuarios finales lo harán, lo que significa que debe hacerse manualmente (asumiendo que tu sistema sea para usuarios humanos).

Así que ¿cómo maximizamos la calidad del código desarrollado por el equipo Scrum? Bueno, hay muchas maneras. He aquí dos que nos funcionan muy bien: 
• Incluir encargados de pruebas en el equipo Scrum - Me parece una buena práctica aunque las empresas consideren que no es necesario.
• Hacer menos cosas en cada Sprint.

El encargado de pruebas es quien da el visto bueno.

Un bonito efecto secundario de esta práctica es que el equipo tiene ahora una persona que está perfectamente preparada para organizar la Demo del Sprint.

martes, 13 de agosto de 2013

Extractos 2 - del libro SCRUM Y XP DESDE LAS TRINCHERAS de Henrik Kniberg

Continuación de lo mejor a mi parecer de este libro:

Definiendo la meta del Sprint
"La meta de Sprint debería responder a la pregunta fundamental “¿Por qué hacemos este Sprint en vez de irnos todos de vacaciones?”. De hecho, una forma de obtener la meta del Dueño de Producto es precisamente hacerle esa misma pregunta."

Dividiendo las historias en tareas.
"La diferencia es muy simple. Las historias son entregables de los que el Dueño de Producto se preocupa. Las tareas son no-entregables, o aspectos de los que el Dueño de Producto no se preocupa."

Definiendo el sitio y la hora para el Scrum diario
"Desventaja de Scrums por las tardes: cuando llegas al trabajo por la mañana, tienes que acordarte de qué le dijiste a la gente sobre lo que deberían hacer hoy.
Desventaja de los Scrums por las mañanas: cuando llegas al trabajo por la mañana, debes acordarte de qué hiciste ayer para informar sobre ello hoy."

"En mi opinión, la primera desventaja es peor, ya que lo más importante es lo que vas a hacer, no lo que hiciste ayer.Lo más importante es que sea a una hora a la que todo el equipo acepte con total convencimiento."

Dónde trazar la línea 
"OK, el tiempo se está agotando. De todos los asuntos que queremos resolver durante la planificación de Sprint, ¿qué abandonamos si nos quedamos sin tiempo? 
Bueno, normalmente uso la siguiente lista de prioridades: 
Prioridad 1: Una meta de Sprint y una fecha para la demo. Esto es lo mínimo que necesitas para comenzar un Sprint. El equipo tiene una meta y una fecha de finalización, y pueden trabajar directamente con la Pila de Producto. Apesta, sí, y deberías considerar seriamente organizar una nueva reunión de planificación de Sprint mañana mismo, pero si realmente necesitas que el Sprint comience 
entonces probablemente puedas hacerlo con esto. Para ser honesto, yo nunca he empezado un Sprint con tan poca información. 
Prioridad 2: Lista de qué historias ha aceptado terminar el equipo en este Sprint. 
Prioridad 3: Una estimación para cada historia del Sprint. 
Prioridad 4: “Como probarlo”, relleno para cada historia del Sprint. 
Prioridad 5: Cálculos de velocidad y recursos, como chequeo de la planificación del Sprint. Incluyendo una lista de los miembros del equipo y sus compromisos (de otra forma, no podrías calcular la velocidad). 
Prioridad 6: Un sitio y hora específicos para la realización del Scrum diario. Solo necesitas un momento para decidirlo, pero si te quedas sin tiempo el Scrum Master puede simplemente decidir esto después de la reunión y mandar un correo a todo el mundo. 
Prioridad 7: Historias divididas en tareas. Esta división puede sin embargo hacerse diariamente durante los Scrum diarios, pero interferirá levemente el flujo del Sprint.

Estimando en días vs horas:
1 día-hombre real = 6 horas-hombre reales
(no causa mucho daño sobre-estimar un poco). Elegante y simple. También comparto este apunte pues es mejor quedarle bien al cliente en un tiempo prudente, que satisfacer al cliente con un estimado, y luego empezar a levantar la mano para pedir tiempo que puede no tenerse.




Invitación "Los TLC y las barreras tecnológicas"

La Universidad de los Andes realizará el foro “Los Tratados de Libre Comercio y las Barreras Tecnológicas - El Caso de la Compatibilidad Electromagnética”, el día jueves 22 de agosto de 2013, en el Auditorio SD 1003 del Edificio Julio Mario Santo Domingo. EL foro contará con grandes personalidades, incluyendo al Dr. Ghery Pettit, Presidente de IEEE Electromagnetic Compatibility Society.
El objetivo del foro es, en primer lugar, analizar la legislación colombiana en materia de reglamentos técnicos aplicables a la compatibilidad electromagnética (incluidos los TLC ya ratificados y aquellos en proceso de serlo), así como los requisitos en materia de instalaciones y equipos para las pruebas, la formación del recurso humano y la cultura de la gestión de la compatibilidad electromagnética a lo largo del desarrollo de los productos. A partir de este análisis, se pretende identificar políticas públicas que faciliten la reglamentación e implementación de requisitos en materia de compatibilidad electromagnética, cruciales para que las empresas colombianas puedan desarrollar todo su potencial exportador, salvaguardando al mismo tiempo los derechos de los consumidores colombianos.
Estoy convencido de que el tema del foro puede ser de interés para usted, por lo que me complace invitarlo a asistir a este evento. La asistencia es gratuita, previo registro en la página web http://foroemc.uniandes.edu.co, donde también  podrá encontrar información detallada del evento.
Cordialmente,
Roberto Bustamante Miller
Presidente Capítulo IEEE EMC Colombia

lunes, 22 de julio de 2013

Extractos 1 - del libro SCRUM Y XP DESDE LAS TRINCHERAS de Henrik Kniberg

Luego de leer el libro, me tome la libertad de sacar los apuntes más significativos y representativos que me encontré:

"En palabras de Ken Schwaber, Scrum no es una metodología, es un marco de trabajo. Eso quiere decir que Scrum no te va a decir exactamente lo que debes hacer".

"El dueño de producto debe comprender cada historia (normalmente él es el autor, pero en algunos casos otras personas añaden solicitudes, que el Dueño de Producto puede priorizar".

"El propósito de la planificación de Sprint es proporcionar al equipo suficiente información como para que puedan trabajar en paz y sin interrupciones durante unas pocas semanas, y para ofrecer al Dueño de Producto suficiente confianza como para permitírselo".

"Una planificación de Sprint produce, concretamente: 
• Una meta de Sprint. 
• Una lista de miembros (y su nivel de dedicación, si no es del 100%) 
• Una Pila de Sprint (lista de historias incluidas en el Sprint) 
• Una fecha concreta para la Demo del Sprint. 
• Un lugar y momento definidos para el Scrum Diario"

"La razón por la que el equipo y el Dueño de Producto deben asistir a la planificación de Sprint es que cada historia contiene tres variables que son muy dependientes unas de otras".

Dueño de Producto
"El Dueño de Producto comienza la reunión resumiendo cuál es su meta para el Sprint y las historias más importantes. A continuación, el equipo las repasa y les asigna una estimación, comenzando con la más importante".

Planificación de Sprint 
"El propósito de la planificación de Sprint es proporcionar al equipo suficiente información como para que puedan trabajar en paz y sin interrupciones durante unas pocas semanas, y para ofrecer al Dueño de Producto suficiente confianza como para permitírselo". 

"El alcance y la importancia los fija el Dueño de Producto. La estimación la proporciona el equipo. Durante una planificación de Sprint, estas variables sufren un ajuste fino y continuo a través del diálogo cara a cara entre el equipo y el Dueño de Producto".

"Todo en Scrum tiene una duración determinada (time-boxed). Me encanta esa única, simple y consistente regla".

"Aprende a mantener tus duraciones determinadas, aprende a establecer duraciones realistas. Esto aplica tanto a las reuniones como a los Sprints".

"Los Sprints cortos están bien. Permiten a la compañía ser “ágil”, es decir, cambiar de dirección frecuentemente.
Sprints cortos = ciclo de feedback corto = más entregas y más frecuentes = más feedback del cliente = menos tiempo desarrollando en dirección incorrecta = aprender y mejorar más rápido, etc. "

"Pero los Sprints largos tampoco están mal. El equipo tiene más tiempo para conseguir impulso, tienen más espacio para recuperarse de los problemas que surjan y aun así cumplir la meta del Sprint, tiene menos carga de gestión en términos de reuniones de planificación de Sprints, Demos, etc".


sábado, 20 de julio de 2013

Excel en php

Para generar un archivo excel en php se debe crear una tabla la cual contenga la estructura del encabezado y correspondiente se recorre un arreglo con los datos a mostrar se va llenando de posición en posición.

Ej:

Tener una variable  llamada $html_tabla como otra variable se le pasa el borde.

$html_tabla .= ' ';
Dato_1 Dato_2 Dato_3 Dato_4


Luego con un ciclo recorremos el arreglo:


foreach($datos as $i => $dato) { $cant = ($i%2 == 0) ? 'tr0' : 'tr1'; $html_tabla .= ' ' . $dato['ID'] . ' ' . $dato['NOMBRE'] . ' ' . $dato['APELLIDO'] . ' '; } $html_tabla .= " ";

Por último colocamos estas cabeceras que permiten tener el archivo para descargar e imprimimos la tabla

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=InformeIndividualEstado.xls' );
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
echo $html_tabla;

martes, 2 de julio de 2013

La IV Escuela de Verano de IEEE Circuits and Systems Society Región 9

Julio 9 al 12 de 2013
Universidad de los Andes, Bogotá, Colombia

La IV Escuela de Verano de IEEE Circuits and Systems Society Región 9 está dirigiga a estudiantes e investigadores que deseen profundizar en el área de Circuitos y Sistemas biomédicos portátiles e implantables, de la mano de reconocidos expertos académicos y de la industria. Los temas a tratar incluyen diseño de sistemas, circuitos y sensores, sistemas de telemetría, aspectos regulatorios, entre otros. 

Conferencistas Invitados:
 
Fernando Silveira, Ph.D.
Universidad de la República, Uruguay
 
Woulter A. Serdjin, Ph.D.
Delft University of Technology, The Netherlands
IEEE CASS Distinguished Lecturer
 
Mingui Sun, Ph.D.
University of Pittsburgh, USA
IEEE CASS Distinguished Lecturer
 
Fredy Segura, Ph.D.
Universidad de los Andes, Colombia
 
David Prutchi, Ph.D.
Impulse Dynamics, USA
 
Cristina Cornes, Ph.D.
CCC Medical Devices, Uruguay
 
Victor Grimblatt
Synopsys, Chile

Apoyado por:
IEEE Circuits and Systems Society
Depto. de Ing. Eléctrica y Electrónica de la Universidad de los Andes
IEEE Sección Colombia
IEEE Región 9
Synopsys

Más información en http://cass-school.uniandes.edu.co 

miércoles, 12 de junio de 2013

IV Escuela de Verano de IEEE Circuits and Systems Society Región 9

WEARABLE AND IMPLANTABLE BIOMEDICAL CIRCUITS AND SYSTEMS
IV IEEE CASS R9 Summer School

Julio 9 al 12 de 2013
Universidad de los Andes, Bogotá, Colombia

La IV Escuela de Verano de IEEE Circuits and Systems Society Región 9 está dirigida a estudiantes e investigadores que deseen profundizar en el área de Circuitos y Sistemas biomédicos portátiles e implantables, de la mano de reconocidos expertos académicos y de la industria. Los temas a tratar incluyen diseño de sistemas, circuitos y sensores, sistemas de telemetría, aspectos regulatorios, entre otros. 

Conferencistas Invitados:

Fernando Silveira, Ph.D.
Universidad de la República, Uruguay

Woulter A. Serdjin, Ph.D.
Delft University of Technology, The Netherlands
IEEE CASS Distinguished Lecturer

Mingui Sun, Ph.D.
University of Pittsburgh, USA
IEEE CASS Distinguished Lecturer

Fredy Segura, Ph.D.
Universidad de los Andes, Colombia

David Prutchi, Ph.D.
Impulse Dynamics, USA

Cristina Cornes, Ph.D.
CCC Medical Devices, Uruguay

Victor Grimblatt
Synopsys, Chile

Apoyado por:
IEEE Circuits and Systems Society
IEEE Sección Colombia
Universidad de los Andes
Synopsys

Más información en http://cass-school.uniandes.edu.co 

INSCRIPCIONES ABIERTAS!! 

JS -2: Tricks and tips

El objecto global de JS es el window. una varaible vive dependiendo de su scope.