Ir al contenido principal

Como Implementar SCRUM en 10 pasos fáciles - Paso #9: Termina cuando dijistes que lo harías

Continuando con la serie: Como implementar SCRUM en 10 pasos fáciles. Creación de Kelly Waters y traducida con la autorización correspondiente por su servidor.


La entrada original de este artículo es: Step 9: Finish when you said you would!


Paso #9: Termina cuando dijiste que lo harías.

Así que tienes tu pila del producto en orden, has estimado la pila, esclarecido los requisitos, planeado tu sprint y has creado un espacio de trabajo colaborativo.

Estás haciendo un Sprint para alcanzar tus metas y estás haciendo reuniones diarias y estás midiendo el progreso con un gráfico.

Ahora solo necesitas terminar cuando dijistes que lo harías.

¡Que gran idea! ¡Que visión! Si solo hubiera pensado en eso, mis proyectos de desarrollo nunca hubieran sido tan dificiles.


Aunque seriamente, hay unos pocos principios de desarrollo ágil de software que ayudan con este paso. Aquí están:

'hecho' significa 'HECHO'

*Completa* cada característica antes de moverte hacia lo siguiente. En el desarrollo ágil, 'hecho' significa ¡HECHO! Con demasiada frecuencia en el desarrollo de software, el software no está en un estado entregable. Tener todas las características al 80% no es de utilidad para nadie. Sin embargo, 80% de las características 100% completas bien pueden ser perfectamente un producto entregable. Aferrate a este principio.

El tiempo no espera por nadie

Particularmente en proyectos de desarrollo BAU(Business As Usual - negocios usuales), estás usualmente en completo control de cuantas características, mejoras y correcciones de errores son entregadas en cada versión. Si te aferras al principio del 'hecho', deberías estar en posición para entregar cuando tu tiempo acabe.

Todos los cambios deberían ser reversibles

Uno de los retos claves en lograr esto, es asegurar que tu software este siempre en un estado entregable, incluso cuando tengas múltiples corrientes de desarrollo al mismo tiempo. Para lograr esto, todos los cambios deben ser reversibles.

Termina cuando dijistes que lo harías

Eso es todo. Completa cada característica antes de moverte al siguiente. Apegate al principio: 'hecho significa HECHO'. Administra tu código cuidadosamente de manera que puedas construir un producto entregable en cualquier momento. E incluso si eso significa variar el alcance(esto es variar el alcance, no la calidad), termina cuando dijistes que lo harías.

Kelly.


Serie completa:
#9: Termina cuando dijiste que lo harías


Comentarios

Entradas populares de este blog

Enumerar filas en una consulta con MySQL

Supongamos que tenemos tablas con la estructura siguiente: documentos (iddocumento, nombre_documento, url_original, idtipo_documento, idproyecto) proyectos (idproyecto, nombre_proyecto, longitud, unidad_medida) tipo_documentos (idtipo_documento, descripcion_tipo_documento) Tenemos necesidad de hacer una consulta como la siguiente: "Enumerar todos los documentos en la base de datos agrupados por proyecto" Parece fácil, excepto por el término "enumerar", aquí tienes un truquito para que logres enumerar tus consultas: SELECT (@rownum:=@rownum+1) AS rownum, nombre_documento, descripcion_tipo_documento, nombre_proyecto FROM (SELECT @rownum:=0) r, documentos AS d INNER JOIN proyectos AS p ON d.idproyecto = p.idproyecto INNER JOIN tipo_documentos AS td ON d.idtipo_documento = td.idtipo_documento Pero que tal si te piden que enumeres los proyectos con sus correspondientes documentos?. Teniendo lo anterior es un poco mas sencillo SELECT IF(@fila=proyectos.idproyecto,

jQuery DataTables y CodeIgniter

Ajax Source Datatables permite configurar fácilmente el origen de datos de la tabla, para que esta sea generada dinámicamente desde el servidor, así que con CodeIgniter tendríamos el siguiente código public function page(){ $data['pedidos'] = $this->pedidos_model->get_pedidos($this->input->post('iDisplayStart')); define('AJAX_REQUEST', 1);//truco para que en nginx no muestre el debug $TOTAL = $this->pedidos_model->total(); echo json_encode(array('aaData'=>$data['pedidos'], 'iTotalRecords'=>$TOTAL, 'iTotalDisplayRecords'=>$TOTAL, 'sEcho'=>$this->input->post('sEcho'))); } Este método producirá algo parecido a esto: {"iTotalRecords":83099,"iTotalDisplayRecords":83099,"sEcho":"2", "aaData":[{"Id":"85514","num":"86109&q

Personalizando Chrome

Cuando hablo de personalizar no me refiero a cambios en el tema, ni modificar algún comportamiento via la configuración, no, me refiero a obtener el código, modificarlo y compilarlo para crear mi propia "distribución". Así que antes de nada realiza esto: Descargar el codigo: http://dev.chromium.org/developers/how-tos/get-the-code Como compilar: https://code.google.com/p/chromium/wiki/NinjaBuild En caso, como a mi, que necesite una version anterior: https://www.chromium.org/developers/how-tos/get-the-code/working-with-release-branches Me encontré con varios errores cuando trate de descargar la versión 37, aquí está el hilo con las soluciones: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/pmki-Uju6Zs La version 37 no estaba preparada para los cambios que vinieron con Yosemite, un error que encontré:  https://codereview.chromium.org/555163002 https://chromium.googlesource.com/chromium/src.git/+/59c4ad104b6f03af9c9acffc0fd9a42707083390/ba