Mostrando entradas con la etiqueta ALM. Mostrar todas las entradas
Mostrando entradas con la etiqueta ALM. Mostrar todas las entradas

domingo, 10 de enero de 2016

Año nuevo, nuevo diseño, nuevos contenidos



La verdad que el diseño anterior del blog, en tonos verdosos, me parece que no era un muestra del mejor gusto. Incluso el más antiguo, en rojo, me gustaba más.

Pero es que le estaba dedicando tan poco tiempo a este blog, que la verdad me importaba más el poquísimo contenido que le estaba añadiendo, que el formato del continente.

Pero las cosas cambian y, ahora, necesito dos nuevos blog donde publicar nuevo contenido. Este, en donde me voy a centrar en ALM y DevOps, y otro nuevo que se va a centrar en Azure y desarrollo para Cloud.

¿Esto a qué viene? Por un lado intentar cubrir el hueco de los grandes maestros de ALM sobre arquitectura Microsoft, que se están yendo al extranjero o andan desaparecidos. Por otro, mi nuevas responsabilidades en Avanade, que pasan por adquirir un conocimiento profundo en desarrollo para Azure.

Y qué pasa con GenbetaDev y XatakaWindows? Pues XatakaWindows lo he dejado, y GenbetaDev estoy escribiendo poquísimo ya que no me siento motivado. Y menos ahora cuando quiero escribir sobre dos aspectos tan específicos de la tecnología.

En cualquier caso, voy a añadir un gran factor de material multimedia (vídeos en youtube) porque así me lo han pedido y es algo que no he hecho nunca más allá de HangOut.

Bueno, el tiempo dirá si finalmente cumplo mis propósitos para este año.

Feliz año 2016!!

viernes, 14 de febrero de 2014

BootCamp Iniciación al ALM con Visual Studio Online, en Tajamar

Aunque me haya costado dormir más bien poco durante tres días, he de reconocer que mi primera bootcamp en solitario ha sido todo un éxito.

Durante más de 5 horas, que se me han echo muy cortas, he llevado de la mano a más de los 30 participantes en un viaje iniciático en la creación de un repositorio de código, sus primeros checkin, checkout, el primer etiquetado y la primera rama.

En la segunda parte rozamos la gestión de tareas en ScrumBut, construyendo una Pila de Producto sencilla, definiendo la iteración, entendiendo lo que es una historia de usuario, una tarea y una Pila de Sprint. Todo ello sazonado de “cuentos del abuelo cebolleta” y muchos consejos basados en mi experiencia personal.

La verdad que deseo expresar mi agradecimiento a Rafel Ansino por ofrecerme la oportunidad de disfrutar de las instalaciones de Tajamar, y del gran apoyo que me dio durante el largo evento. Al igual que a Cristian y a todos los asistentes.

Espero veros en el segundo capítulo, ya con ALM Avanzado, que voy a celebrar el próximo 1 de Marzo (en las mismas instalaciones) siendo coparticipante de Luís Fraile

WP_20140208_002

jueves, 20 de diciembre de 2012

Migrando de TFS11Beta a TFS2012 with Update 1

Ha llegado el momento ineludible y me pongo a migrar un TFS11Beta de producción – si, ya sé que no debiera – a un TFS2012.

Primer escollo, no se puede instalar un TFS2012 actualizando un TFS11 Beta. Hay que desinstalar el TFS11Beta antes. Lo cual – menos mal que tengo todo en máquinas virtuales – implica hacer una backup en forma de snapshot de la máquina virtual.

Segundo escollo NO SE PUEDE ACTUALIZAR HASTA UN TFS2012 con UPDATE1… debes primero actualizar al TFS2012 y después aplicarle el Update1.

Asegurado que no voy a perder más de una hora en volver al punto anterior, desinstalo el TFS11 Beta. Y, sin necesidad de reiniciar la máquina, me pongo a instalar desde la Web el TFS2012.

image

Al instalar el .NET 4.5 pide un reinicio inmediato… es decir que se reinicia en cuanto pulses OK. Al volver al sistema continua guardando en local los ficheros de instalación. (Tal vez debiera haberme tirado del todo al rio y haber actualizado el Windows 2008 server R2 a un Windows 2012 Server, lo cual puede dar para otro artículo). Y, finalmente se pone a instalar – sin preguntarme aún si quiero actualizar.

Me pide el número de serie, y cómo no lo tengo a mano, le digo que me ponga un Trial de 90 días. A lo cual me abre el Configuration Center y selecciono Upgrade y Start Wizard.

image

Lo primero que me pregunta es cual es la base de datos de TFS que voy a actualizar. Para comprobar que es la correcta pulso en el enlace de List Available Databases y me tiene que salir, como poco, la de Tfs_configuration. Además, ya que estoy utilizando un snapshot como copia de seguridad, hago check en la casilla inferior en donde le digo que tengo un backup actual.

image

La siguiente pantalla trata de la cuenta de servicio que voy a utilizar para mi Application-Tier, la cual (por si no te acuerdas) debería ser algo como TFSSERVICE. No es buena práctica utilizar una cuenta de sistema.

image

Continuamos con la configuración del Reporting Server en donde le indico cual es el servidor que voy a utilizar y le doy al enlace de Populate URLs para que me añada el solito las URL adecuadas.

image

Ahora empezamos con chicha, le tengo que indicar cual es la base de datos que soporta el Team Foundation Warehouse. Lo pruebo pinchando en el enlace de Test y a continuación compruebo las bases de datos pinchando en el enlace List Avaliable Databases. Al menos debe aparecer una.

image

Continuamos indicando cual es la base de datos que soporta los Analisys Services, y comprobamos su correcto funcionamiento pinchado en Test.

image

Continuamos por la configuración de la cuenta de servicio que va a ser utilizada para contactar con el servidor de Reportes, la cual no debiera ser de sistema y debería ser algo como TFSREPORT.

image

Ahora configuremos el acceso a SharePoint para los portales de los proyectos, lo cual es muy sencillo: los dejo como estaba.

image

Ahora nos vamos a la pantalla de Review y lanzamos la verificación de todos los datos que hemos introducido.

image

Aquí me salto la alerta avisándome que no se podía actualizar la base de datos y, buscando en internet, encontré que era a causa de que no se puede actualizar directamente de TFS11 beta TFS2012 con Update 1. Hay que pasar primero por TFS2012 normal, que puedes encontrar aquí: Team Foundation Server 2012 without Update 1 en el enlace superior derecho, no en el listado de TFS a descargar.

Le doy a verificar y, si todo está correcto, deberían salir todos verdes.

image

Le damos al botón Configure, y se pone a configurar el TFS2012 en la base de datos y a hacer sus cosas raras que hace por dentro. Es el momento de la verdad, si algo rompe aquí la cosa va a pintar bastos.

image

Y después de un rato de redoble de tambores… tachan!!! Lo que estaba esperando de agua de Mayo: la pantalla de Sucess. La alerta que me sale es que no se puede cambiar el grupo Contributor de SharePoint, lo cual está bien.

image

Ahora a por el Update 1, pero eso será otro artículo (si merece la pena).

martes, 4 de octubre de 2011

Novedades en Visual Studio 11 para ALM (I), por el Bruno. En GenbetaDev

 

Para mí es un honor y un placer echarle una mano a un excelente profesional como es Bruno Capuano y publicar una excelente serie sobre ALM en GenbetaDev, mientras negocia el colaborar como columnista como hace otro “ilustre” del Testing y el ALM, Luís Fraile.

http://www.genbetadev.com/actualidad/novedades-en-visual-studio-11-para-alm-i

Espero que lo disfrutéis tanto como yo.

domingo, 13 de marzo de 2011

Cloud Day 2011–ALM Sessions. Lab Windows Azure.

By David Salgado.

Al llegar al evento me encontré con Víctor González, y vimos en la lejanía a David. Nos acercamos ya que le quería dar las gracias a David por su ayuda para poder venir al ALM y nos pusimos a rajar sobre un poco de todo. Me llama siempre la atención lo “Conan” que está echo David. Como para un concurso de Master del Universo. Pero como eso es poco, ahora hay una nueva “tortura” que es capaz de hacerte vomitar en 10 minutos del esfuerzo a la “patata”. Y es interesante como la conclusión es que a partir de cierto punto de dolor es cuestión de voluntad. Luchas contra tu propio cuerpo y tus sensaciones, queriendo ir un poquito más allá del limite cada vez.

Una vez echa esta reflexión sobre los sitios en donde encuentra uno perlas del conocimiento, volvamos a la siguiente sesión después de la excelente ponencia de Luís Fraile. Justo a la hora de comer. (Perdonad la foto pero es que David no se está quieto ni un segundo).

074

Primera sorpresa, la comida es un enorme catering por cortesía de Microsoft. Segundo, en el Lab de Azure éramos unos cuantos. Vamos mucho más que unos cuantos. Tercera sorpresa, Víctor tiene un gran conocimiento de Azure y me dio una clase magistral personal sobre todo el tinglado. Muy, interesante.

Así, entre escapada a coger platitos con todo tipo de viandas, Víctor me contó sobre un alucinante patrón de arquitectura de base de datos: CQRS.

Simplificando enormemente podría dar el siguiente ejemplo: Tengo un página web, tengo una tabla noSQL que los campos coinciden con los campos de la página, tengo una base de datos relacional en donde persisto la información. Al hacer una entrada en la base de datos relacionar, se lanza un evento que realiza una escritura en la tabla noSQL dejando los datos listos y preparados para ser servidos a una velocidad de rayo a la página Web. Wow!!

Tienes cierta latencia en la actualización de los datos, pero la velocidad de recuperación ha de ser brutal por necesidad.

David, nos hizo una descripción y comparativa de Azerus con otras opciones de Cloud como amazone o Google. Y me ha quedado claro que aún en mi empresa no tenemos el tipo de necesidad que nos haría útil Azure, porque es ideal para producto o servicios. Cosa que a nosotros aún nos queda en el horizonte. Pero que hay que hacerle un seguimiento muy cercano porque esto corre que vuela. Otra cosa que me quedo muy claro es que, una vez más, Microsoft hace fácil lo complejo y la facilidad de uso de Azure es una gran baza de esta Cloud.

También nos señaló las particularidades del desarrollo en la Nube. Por ejemplo, no se pueden utilizar persistencias que utilicen la memoria del servidor, porque en el momento en que haya más de una instancia dichas persistencias pierden la comunicación entre las diferentes máquinas levantadas. Para ello hay que sacar esas persistencias a la base de datos o a mecanismos no dependientes de la instancia. Así mismo, y como ejemplo, las CSS debieran estar en un repositorio diferente al de la instancia para que fueran común a todas ellas.

Vamos, que es mucho más crítica la separación en capas de las aplicaciones y que hay que tener muy en cuenta los acoplamientos entre instancias para que la arquitectura no sea un impedimento de la, por cierto, pasmosamente fácil escalabilidad en Azure.

Hay una serie de Training Kit en la red sobre Azure, pero David nos ha comentado que se van a desarrollar nuevos Kit mejorados de forma inminente.

Aún quedan las presentaciones de Boris Amenta y de Daniel Seara… (pero me da que eso mañana o luego en la tarde.)

Cloud Day 2011–ALM Sessions. Testing Exploratorio.

By Luís Fraile.
073
A Luís lo llevo siguiendo desde hace mucho tiempo. Junto con Rodrigo y Bruno, fueron los tres cantores que me introdujeron el gusanillo del TFS y ALM por allí por finales del 2007, principios del 2008. Y, hasta el momento, a Luís siempre lo había visto mostrando sus enormes conocimientos teóricos y prácticos en el área de gestión del ciclo de vida de proyectos.
 
Luego, con el tiempo y la cercanía, descubrí que es un hombre renacentista. Es decir, sabe prácticamente de todo y de prácticamente todo sabe bien. Por lo cual, y ahora que su nueva empresa es especialista en todo lo relacionado con el testing de aplicaciones, no dudé ni un segundo en irme a escuchar lo que nos iba a enseñar durante dos horas.
 
Me voy a permitir un breve inciso para darle un tirón de orejas a Microsoft en su vertiente de organizador. No se le puede quitar media hora a una ponencia de este estilo. Y menos para saltar de un interesantísimo tema técnico a uno de venta comercial puro. A mi, personalmente, me pareció mal. Un pequeño detalle que no quita valor a un excelente evento pero que, sin este feo detalle, hubiera sido perfecto.
 
Luís inició la ponencia contándonos por encima lo que significa Agile y específicamente Scrum. Para que, partiendo de la filosofía Agil, lleguemos a una automatización y optimización de las labores del testing funcional. Ojo, la charla versaba sobre Tst funcionales. Ese lado tan olvidado del test. O que a tantos les he oído decir que no son recomendables por su fragilidad. Y que a mi, personalmente, me parecen mucho más útiles que una batería de test unitarios.
 
Han sido muchos conceptos conocidos, y muchos a los que me ha abierto los ojos y por ende la curiosidad. Y entre ellos quisiera destacar los siguientes:
 
* En el equipo ideal debería existir el especialista dedicado al testing. Ya que no es una labor sencilla y necesita, además de experiencia, talento. Es curioso como hay demasiados desarrolladores que caen en “Poner al código en el centro de todo” y se piensan que con sus conocimientos basta y sobra para hacer un buen testing.
 
* En mis primeros pasos en el test funcional, lo he atacado desde las herramientas de Visual Studio. CodedUI. Pero debo de echarle una ojeada larga al Test Manager. Que es la herramienta de test. No el pequeño subconjunto que yo estaba utilizando. También desde aquí un tironcito de orejas a Microsoft por sacar la utilidad para modificar CodedUI en un Feature Pack, ya que no hay forma humana de probarlo a menos que tengas una suscripción Ultimate (que es una pasta impensable para una empresa pequeña)
 
* Aún más fuera del alcance de los mortales está el Lab Management que te permite hacer auténticas virguerías al añadirlo a la fuerza de test del Test Manager y el Visual Studio. Y digo que está fuera de los mortales porque hay que montar un pollo de dinero y de infraestructura de aúpa. Y un master para configurarlo… Pero para eso ésta TestHousing (la empresa de Luís).
 
* Con ello accedemos a virguerías como IntelliTrace. Una caja negra (como la de los aviones) que permite hacer un seguimiento exhaustivo de nuestra aplicación en preproducción (en producción no se aconseja por el gran impacto en el rendimiento) y que nos permite hacer una depuración del código publicado. Si, el código publicado, no el que tengo en desarrollo. Descompila el código y te permite hacer depuración como si fuera el de desarrollo!!.
 
* Ante la pregunta de si podíamos obtener un IntelliTrace de una máquina que no fuera de desarrollo, Luís nos comentó que si. Que tienes los servicios TestAgent y TestRunner que permite ejecutar planes de test y obtener ese chorro de información acerca del funcionamiento de la aplicación.
 
* Partiendo de una historia de usuario, se desarrolló un plan de test compuesto a su vez de test funcionales. Poniéndonos la gorra de tester creamos el test funcional que debe pasar la aplicación, localizamos un bug, lo documentamos y se lo pasamos al tfs en forma de workitem para que, poniéndonos la gorra de desarrollador, flipar en colores del detalle de la información de la causa del bug, corregirlo, lanzarlo en nuestra batería de test codeUI y cerrar el bug. Como tester revisar que esté corregido y cerrar el bug.
 
* Todo esto enlazado con integración continua. En donde me he llevado la sorpresa que tengo que ponerme con Team Build ya que ofrece un montón de ventajas en el desarrollo, aunque sea Web. Y, además, me permite utilizar MSDeploy para publicar mis web de una forma mucho más ordenada y efectiva. No como ahora que lo hago con Publish Web.
 
* Para rematar, estas pruebas se automatizan y se introducen automáticamente en una Build. Para que vayas construyendo una batería de pruebas funcionales y de regresión que, en mi opinión, dejan en un dudoso sitio a las pruebas unitarias. Aunque a mi me resulta muy útil las pruebas unitarias para desarrollar a nivel de método/clase (ojo, no es TDD, hago un mix. A veces antes, a veces después).
 
Fuera del contexto de la charla también me demostró con un simple “Ctrl + ,” la potencia oculta de los atajos de teclado, que creo que me tengo que revisar.
 
Por último, Luís ha dado una clase magistral de cómo mantener a un auditorio interesado durante casi dos horas en algo que haría dormir a las piedras si no se tiene el talento y la experiencia como el ponente. Pena que los compromisos comerciales de Microsoft cerrara con demasiada premura esta excelente ponencia.
 
Y aún quedan dos ponencias mas…
 
P.D. He encontrado él vídeo de la sesión en GlobbTV.

Cloud Day 2011–ALM Sessions. Presentación.

Primero darle las gracias a David por echarme una mano para poder ir en última instancia al evento de Microsoft. Un curioso evento en donde se mezclaron cosas tan dispares como las jornadas de ALM, las de Cloud Computing y las de Partners. Me comentaron que es a causa de ajustes de presupuesto. Que también la crisis la nota Microsoft.

Como en todos los eventos de Microsoft, es impresionante la capacidad de convocatoria de esta compañía. Mientras en Open Source o en Agile nos cuesta horrores juntar un ciento de personas para los eventos, en un acto relativamente pequeño como este… estaba “petao”. Y en lo grandes, como la presentación del 2008, aquello eran miles de personas. Como para que digan que Microsoft está en las últimas…

Si acaso, por no decir que todo es bueno, en el registro no indicaron que se iba a utilizar el pabellón contrario al de la entrada habitual al Ifema, y esto representó una larga caminata de unos 10 minutos para cruzarse toda la feria hasta llegar al punto de registro y a los salones.

Allí, por suerte, me encontré con un compañero de Madrid Dot NET – Víctor González, y así estuvimos en varias sesiones juntos y me dio una charla magistral sobre azure (pero eso ya lo contaré en su momento).

Al poco rato se inició formalmente el evento con la presentación inicial que demuestra la capacidad de comunicación de una empresa grande. Pedazo de salón lleno a rebosar, pantallas gigantes, cifras, etc. Vamos, marketing en su esencia.

066

Y al igual que en la presentación de hace casi tres años, ponente estrella para distender y romper el hielo. En este caso un muy buen humorista que nos hizo soltar más de una y de dos risas, o directamente carcajadas. Joaquín Reyes.

067

A continuación un equipo nos mostró las bondades y capacidades de Azure y de la filosofía de nube de Microsoft, dejándonos con un excelente sabor de boca con una aplicación alucinante para que el ayuntamiento controle cada uno de los “agujeros” en donde tiene plantado un árbol y que a los ciudadanos le representa una magnifica forma de perder el tiempo revisando las características de cualquiera de las 250.000 plantas identificadas.

070

En este punto solamente reseñar lo que ocurre si en un mismo salón tienes cientos de personas utilizando 3G con sus móviles… que telefónica no dio la talla y las comunicaciones iban lentísimas. Y les fastidió un cachito de demo a los excelentes ponentes.

En la siguientes entradas de esta serie, que ya estoy escribiendo, hablaré de las sesiones a las que he asistido y que, junto a las reuniones de pasillo, han conformado un día más que provechoso. Gratificante.

jueves, 2 de septiembre de 2010

Agile-Madrid. Septiembre 2010.

De forma sorpresiva me vi con el tiempo libre para ir a la reunión de principio de mes del grupo Agile de Madrid el pasado uno de septiembre. He de reconocer que el saber que, nada menos,  tres MVP de Microsoft iban a asistir a la reunión me despejaron la pereza que siempre me embarga en el último momento y en el sofá de mi casa.
IMAG0160 
La esquina del “lado oscuro”… :)

Los asistentes nos quedamos sorprendidos también al comprobar que nos habíamos juntando un montón (19 personas) y empezamos con las presentaciones justo antes de iniciar el primer tema que trataba sobre “El contrato Agile en la Administración pública”.
Como muy bien reflejó uno de los compañeros, existen dos tipos de contrato:  por Servicios y por Obras. Y el contrato Agile al que nos estábamos referenciando se podría considerar como un contrato por Obra pero con la particularidad de que su alcance y prioridad pueden cambiar.
Yo creo que es impepinable lo de hacer un documento de alcance/tiempo inicial para sentar las bases de la colaboración. Aunque muchos opinen que eso no es una práctica Agile.
También estuvimos de acuerdo en que es necesario un “suelo” de gastos para que las empresas pequeñas y medianas puedan asumir el riesgo de conformar un equipo y no quedarse en perdidas directas por ser paralizado el proyecto en una o dos de las primeras iteraciones.
El debate ha seguido en el foro De Agile-Spain, y está siendo muy interesante.

IMAG0161 
Escogiendo los temas de la próxima reunión.
A continuación entramos a debatir “Cómo vender TDD a los jefes”. Lo cual llevó a la primera conclusión: cuanto menos técnico más fácil de venderlo. Lo cual llevo a la siguiente conclusión, ¿porqué debes venderlo si es una práctica puramente técnica?
Como llevo ya bastante tiempo dubitativo con TDD, pregunté si había alguna mejora en el desarrollo de un proyecto por usar TDD y solamente JMB habló de una cierta métrica que indicaba que los desarrollos con esta técnica son más predecibles. Ante mi pregunta de cuantos utilizaban TDD actualmente, levantaron la mano solamente cinco de las diecinueve personas asistentes (tres de ellos mis “ídolos” de .NET). Por último, las respuestas a las preguntas de David sobre argumentos para convencer a los desarrolladores que utilicen TDD, me llevan a mi conclusión personal:

La Fe es el mejor argumento para pasarse al TDD

Es decir, el saber que gente del nivel de Alfredo o Luís Fraile utilizan TDD, es lo que me puede motivar a utilizar esta técnica. Porque, sin haberla utilizado, la argumentación que la promueva es, a mi entender, poco motivadora ante el enorme esfuerzo que implica el cambio de paradigma.
 IMAG0156 IMAG0158

A continuación, y finalizada la reunión, nos fuimos a beber cervecitas al bareto de al lado, y a eso de las once de la noche cogí mi vehículo para volver a mi casa, henchido de conocimiento y con ganas de ir a la próxima.

domingo, 11 de abril de 2010

Cómo introduje SCRUM en un equipo nobel. Cap. 3.

Cuarto sprint… y la velocidad del equipo se ha multiplicado por tres. Empezamos el sprint 1 con poco más de 80 horas planificadas y ahora estamos en más de 210 horas y, muy posiblemente, tenga que introducir nuevas tareas porque las están devorando.

Pero hay que seguir mejorando y los siguientes pasos a realizar en la conversión de horas estimadas a puntos de historia (aunque le tengo que dar un par de vueltas si tiene sentido en este equipo).

También, en el fragor de la batalla, que han sido múltiples y estruendosas, me he olvidado de la visibilidad del desarrollo para gerencia que, literalmente, están ciegos y no saben qué tal va el proyecto. El cliente si lo tiene claro, pero mi director no hace más que pedirme algún tipo de reporte que le deje tranquilo a el y a nuestros socios. Y con toda razón.

Por lo cual me he cogido otra vez el libro Scrum y XP desde las trincheras y estoy recordando cómo han hecho scrum otras personas y, en especial, reforzar lo que se me ha quedado muy descolgado en este proyecto: la planificación en el sprint 0. Por ejemplo, aún no tengo un producto backlog que describa todas las funcionalidades que el cliente me ha requerido, un planning inicial o un grupo de historias de usuario (análisis funcional) que eviten que convierta en el “héroe” del proyecto (justamente lo que se intenta evitar en esta metodología Agile).

Curioso, tan centrado en que mi equipo entendiera y asimilara la forma de trabajar con SCRUM, que he caído en antipatrones y errores metodológicos básicos.

Otra cosa que debemos mejorar y modificar es la definición de Done. Si bien estamos llegando a finales de sprint con prácticamente todas las tareas realizadas, no estamos cumpliendo de forma rigurosa el que lo obtenido sea un incremento de valor y que las funcionalidades estén listas para ser puestas en producción. Ni tan siquiera en preproducción.  Lo cual me lleva a la duda de si sería conveniente ampliar una semana los sprint. Pasando de de dos a tres.

Bueno, en la próxima entrega compartiré la resolución de estas dudas.

miércoles, 24 de marzo de 2010

Mapear Workspace en TFS2008

Integrando un nuevo miembro del equipo y conectándolo al TFS del proyecto, me llevó la desagradable sorpresa de que en la ventana del Explorador del Control de Código Fuente no me aparece las opciones para quitar o añadir un mapeo en la máquina local.

image

Dándole mil vueltas y no encontrando el permiso que me impide realizarlo en dos máquinas, pero si en otras dos. Entro a las soluciones desesperadas que es modificar a mano el Área de trabajo (Workspaces). En donde tengo el listado de todas las carpetas en el repositorio y su ubicación en el equipo local.

image

image

image

No es el método más limpio pero al menos me ha permitido mapear correctamente los archivos.

domingo, 21 de febrero de 2010

Cómo introduje Scrum en un equipo novel. Cap.2.

Lo bueno y lo malo de las empresas pequeñas es que hay que compartir el tiempo entre varios proyectos y, además, a toda prisa. A mí me pagan para evitarlo. Para que la productividad de la empresa no decaiga a causa de las necesidades comerciales  - trampa irreversible que ha llevado a muchas empresas a la quiebra o a la mediocridad.

Esto viene a cuenta de que he tenido que dejar a mi equipo prácticamente solo durante estas dos semanas, tutelándolos solamente con las reuniones diarias y “sacándolos del nido” mucho antes de lo que hubiera querido. Pero las cosas han ido bastante bien.

Finalizamos el sprint cero con una retrospectiva en toda regla. Tres columnas – positivo, negativo y propuestas – empezando por la más difícil: lo positivo. Me llamó la atención que una de las primeras cosas que saliera es el buen rollito del equipo y mi presencia como mentor técnico y de metodología.

Cuando llegamos a lo negativo, la tecnología se conformó como el bien y el mal del proyecto ya que al – por decisión mía - tener test unitarios, Linq to entities, arquitectura por capas y Scrum, lo ven como un auténtico “mal necesario”. También son conscientes de la necesidad de la autoformación y es una de las decisiones que se unió al listado de cosas que podíamos hacer para mejorar.

Al igual que me pasó en el Open Agile, es muy curioso como pequeños detalles se muestran con una prioridad inesperadamente alta cuando lo expones ante el grupo: la calefacción está demasiado alta. Y a gerencia hemos ido con la petición, y gerencia ha actuado de forma resolutiva.

Entonces empezamos el sprint 1 y aprieto un poquito más las tuercas. Un autentico Sprint Planning compuesto por dos fases diferenciadas: 1. Hablo un par de horas explicando la funcionalidades que quisiera cubrir en las dos siguientes semanas. 2. Cuatro horas en donde vamos detallando las tareas, estimando y comprometiéndonos con el Sprint Backlog. Como son noveles, subo de las 80 horas a 140 horas a cumplimentar en las dos semanas. Pero tened en cuenta que no son horas reales, son puntos de trabajo pero nombrados como horas para que les sea más fácil visionar que el objetivo es acercarse lo más posible al máximo de horas reales en dos semanas. También hay que notar que faltan mis horas, previstas finalmente en unas paupérrimas 20 horas, que finalmente no han cumplido.

Además, les pido que empiecen a insertar los errores en los Work Item para empezar a construir las métricas sobre errores.

Por último, y para ir cerrando este post, he encontrado un error en la lectura del BurnDown Sprint de Cochango. La estaba leyendo al revés. Lo malo es si la línea se queda por encima de las horas previstas. Y yo leía que era malo si se quedaba por debajo. Por lo cual mi equipo es aún mejor de lo que pensaba. Y he añadido un gráfico buenísimo para que sepamos aun mejor qué está ocurriendo: el Sprint Flow Chart. Me indica claramente qué hemos acabado, cuanto estamos en tarea y cuanto queda por iniciar.

Esta semana empezamos la segunda parte del sprint 1 con un retraso importante ya que uno de los dos está demostrando ser más novel de lo esperado. Pero he de sacar tiempo para echarles una mano, ya no tanto para que la tarea se cumpla en tiempos, si no para mantener su entusiasmo en alto.

Ah, el cliente esta CONTENTO de ver que en dos semanas ya tiene algo en las manos.

P.D. Los Daily Meeting SIEMPRE de pié. Se nota una barbaridad.

Cómo introduje Scrum en un equipo novel. Cap. 1
Kanban, Scrum, CMMI Light

jueves, 28 de enero de 2010

Scrum vs Kanban en Castellano

He tenido el privilegio y el honor de participar en el equipo de traducción/edición de este interesantísimo libro sobre ambas metodologías. Sus ventajas e inconvenientes.

Pero para una explicación más completa y entretenida, os remito al blog del coordinador Angel Medinilla.

Y para bajarlo directamente (ojo, pesa unos 74Mb).

Que lo disfrutéis!!

Kanban, Scrum, CMMI light.

“La vida te da sorpresas” decía Rubén Blades en su canción Pedro Navaja. Y llevando casi un mes mirando las paredes en mi antigua empresa, me llegó una oferta de trabajo tan interesante como crítica en su plazo de decisión. Como “las oportunidades solo se dan una vez” y “camarón que se duerme se lo lleva la corriente”, he cerrado una etapa de casi tres años en Alten, donde he realizado de todo tipo de labores. Y empiezo en mi nueva empresa –Quadramqs- como Jefe de Proyecto . NET. Bueno, más bien líder de equipo. Es decir, sigo picando código y además hago la documentación.

Lo bueno es que al ser una empresa joven tengo capacidad de decisión sobre la metodología a utilizar y un equipo de nóveles que me acompañan en el “hambre” por probar cosas nuevas.

En el primer aterrizaje, lo primero es “levantar” el servidor de base de datos y el servidor del repositorio de código/documentación. Es decir instalar un SQL2005 y un servidor TFS. Mientras espero que entre Sistemas y yo montemos el tinglado y quede accesible a todo el dominio – revienta todo cuando a la máquina de un tfs la metes en dominio – tengo que probar el conocimiento y velocidad del equipo que, además, está habituado a la metodología ASM (A Salto de Mata @Rodrigo del Corral)  y más bien llegan justos de conocimientos.

Para ello ataco dos vertientes diferentes de modo simultáneo:

1. Técnica:  Les pongo un ejercicio de construcción de una pequeña aplicación en donde, aumentando la complejidad poquito a poco, veo cuales son sus límites y sus conocimientos. Arquitectura de dos capas, datos y representación. Acceso a los datos por Linq to Entities. Pruebas unitarias para cada método. Cargas de datos con SqlAdapter. Y construcción manual de GridView.

2. Metodología: Con el objetivo final de utilizar SCRUM en el desarrollo del proyecto real, tengo que empezar con un tablero Kanban de tres columnas: ToDo, Doing(2), Done. Y, además, este tablero será virtual en Scrumy ya que aún no tenemos el tablero físico.

Insistiendo un poquito y revisando desde internet en casa o en la calle el tablero y comentándolo al llegar a la oficina, motivo para que lo mantengan actualizado, pero observo cierta tendencia a tenerlo en segundo plano. Más como un reporte qué como seguimiento del flujo de trabajo.

A los pocos días llega nuestra flamante pizarra y plasmamos el tablero con rotulador. Y entonces si que se convierte en un punto en donde sin tener que preguntarme, el propio equipo decide qué tarea hacer y cuando. Ha llegado el momento de darle una vuelta de tuerca a la metodología y les pido estimaciones.

Esto provoca en los noveles incomodidad ya que lo entienden como fiscalización. Pero después de dos o tres previsiones fallidas, pero cada vez más cercanas, se convierte en una motivación más y se les ve como empiezan a sentirse responsables de sus actuaciones. Se implican… :)

La próxima semana empezamos a trabajar en el proyecto real. Las tareas realizadas ahora, sin que ellos lo supieran, son exactamente las mismas que vamos a realizar para construir el primer módulo que nos va a llevar el primer sprint. Y el lunes conocerán que es un planning meeting, e intentaré ser disciplinado con las daily meeting.

Mientras, en mi lado de Gestor del proyecto. Tengo mil reuniones de toma de requisitos en donde lo de las “historias de usuario” es pura ciencia ficción. De todo lo leído he puesto en práctica el recorrerme todos los puestos de los usuarios reales de la aplicación y estar con ellos horas hablando, recabando sensaciones, mejoras y problemas. También realizo actas de reuniones tipo CMMI level2, y quiero realizar análisis funcionales de cada módulo a realizar ANTES de llegar al inicio del sprint, tanto como documentación para el cliente como para el Backlog Product.

Para dar una vuelta de tuerca a la visibilidad del proyecto, además de las entregas de cada iteración, pondremos el servidor de desarrollo accesible al cliente para que nos indique las desviaciones lo antes posible.

Jo!! Que gusto volver a estar en la brecha.

lunes, 28 de abril de 2008

BrainStorming, Post-Tip & Flight Simulator

Ciertamente una imagen vale más que mil palabras. Y que la Red se ha convertido en la mayor y espectacular fuente de conocimiento de todos los tiempos desde que el hombre salió de la prehistoria al descubrir la escritura es algo que nadie puede negar.

Ahora mismo mi ritmo de evolución profesional está por las nubes intentando terminar la certificación, motivo de la apertura de este blog, empapándome de la nueva tecnología de desarrollo que ha traído .NET 3,5 y en especial el Visual Studio 2008 y, sobre todo, intentando actualizarme en metodologías y herramientas de gestión de proyectos y ALM.

Por ello sigo diversos blogs escritos por las mas variopintas personas y que, centrándose en metodologías, repiten conceptos como el de utilizar una pizarra y un buen montón de post-tip para la toma de requerimientos.

Lo que pasa es que me costaba entender que realmente ESE es el concepto exactamente. No una hipérbole ni una aproximación, sino que es simplemente un grupo de gente alrededor de una mesa en una tormenta de ideas, escribiéndolas en pequeños cuadraditos de papel autoadhesivo y pegándolas en la pizarra.

Y hoy, volviendo a viejísimos tiempos, me encuentro en una página de Microsoft dedicada a su simulador de vuelo Flight Simulator la imagen perfecta que me ha despejado todo tipo de dudas y me ha dejado meridianamente claro el concepto.

El futuro del Flight Simulator esta en las tarjetas