[#ALM] Trabajando con equipos elasticos (IMHO)

ALM 03

Hola.

AGILE, SCRUM y casi todas las metodologías (o guías de trabajo, o como esté de moda llamarlas hoy) suelen intentar ser predictivas de una forma bastante coherente.

Aclaración: las próximas líneas intentarán definir lo que los grandes expertos han analizado hasta los huesos durante los últimos años. Yo lo haré en 4 líneas y de la forma en la que se lo explico al Valentino.

Estimando o Adivinado que son gerundios

La forma de poder ser predictivos en relación al trabajo a realizar se basa en la experiencia sobre trabajos realizados! Así de simple! Si por ejemplo, te dedicas a la pastelería y tardas unos 30 minutos en hacer 6 muffins (denominación hispter para una magdalena), es probable que tardes 60 minutos para hacer 12, 90 minutos para hacer 18, y así sucesivamente.

Cuando tienes un poco de experiencia en el mundo de la pastelería, seguramente agregarás unos 15 minutos entre tanda y tanda para tareas triviales como la preparacion de los materiales. Luego también agregas unos 60 minutos al día para poder preparar los materiales, limpiar la cocina, etc. Al final todo suele reducirse a una fórmula muy simple para estimar el trabajo.

Cuidado! en este punto suele aparecer un iluminado que piensa que si una persona hace 6 muffins en 30 minutos, pues 2 personas harán 6 muffins en 15 minutos! Aquí toca armarse de paciencia, explicarle al iluminado que SOLO HAY 1 HORNO, que el tiempo de horneado ES FIJO y que por poner más manos no se hará el trabajo más rápido. Pero si es cierto, que estás dos personas pueden comenzar a trabajar en forma paralela y tal vez puedan rebajar los 15 minutos de espera entre tanda y tanda. Si además compramos un 2do horno y ponemos a una persona más a ayudar, ya tenemos un equipo “complejo” que nos puede dar sorpresas (de las buenas) cuando comiencen a trabajar.

Luego de un tiempo trabajando juntas, ES EL EQUIPO EL QUE MEJOR PUEDE ESTIMAR UNA TAREA. Aquí nos pasamos un poco al mundo AGILE, donde las estimaciones las hacemos en base a la experiencia y al equipo. Como además incorporamos el concepto de iteraciones o sprints, es más fácil poder adivinar o estimar cuantos muffins podremos hacer en una semana.

Estoy completamente seguro que en este escenario de trabajo con 3 personas y 2 hornos, luego de un par de meses, si alguno dice “hoy haremos 176 muffins”, es el resultado final que harán. Los Sprint Burndowncharts serán de libro !!!

Equipos elásticos

Sin embargo, ¿qué podemos hacer cuando trabajamos con equipos elásticos? Con equipos donde hay un flujo constante de personas entrando y saliendo del equipo. La cosa se complica bastante si queremos ser predictivos.

Supongamos que traemos al mejor pastelero del mercado junto a un par de personas más y un par de hornos más. Basados en los resultados de semanas anteriores podremos estimar la capacidad de creación de muffins de nuestra pastelería. Sin embargo, en el camino nos damos cuenta de que el pastelero major utiliza una harina especial que no poseemos; hay que comprarla. Luego tenemos que tener en cuenta que uno de los hornos es “especial” hay que tratarlo con cariño, porque sino hace unas subidas de temperatura un poco extrañas … casuísticas como éstas pueden hacer que se nos vaya las estimación inicial para la semana al garete.

Eso sí, luego de 2 semanas cocinando muffins, seguro que la pastelería ya se atreve a dar un número de muffins por semana con los que podrían comprometerse. Sin embargo, si una semana salen personas del equipo, entran nuevas y tienen una rotación alta, lo tienen complicado al respecto.

Aclaración: estoy simplificando bastante al pensar en una pastelería que solo haga muffins. Si además de muffins, esta pastelería tuviese que encargase de pedidos con productos que no conoce … pues ya te imaginas.

Retomando, ¿qué puede hacer la pastelería para ser coherente con su capacidad en este escenario?

Una recomendación es dejar de pensar en la pastelería como “un todo”, y crear equipos pequeños, casi autónomos. Cada equipo será responsable de definir su capacidad. Ojo! no estoy hablando de crear equipos Rangers de 1 persona, sino más bien equilibrar las personas de manera tal que sea posible tener un objetivo predecible.

Otra recomendación, es olvidarse de la duración de los sprints, dejar de trabajar orientados a sprints fijos y trabajar orientado a objetivos. ¿Para qué necesito saber cuantos muffins puedo entregar cada semana, si lo que me han pedido es tener 200 muffins para el jueves? Frente a este escenario, toda la pastelería debe tomar una decisión: SI y se afronta el desafío; o NO y se pasa página.

Y por último, intenta crear un escenario de colaboración que no dependa de las personas. Volvemos al escenario del horno que debe recibir un tratado especial. Si cada 15 días cuando hay cambio de personas en la pastelería, los “nuevos” pierden tiempo hasta que se dan cuenta de cómo funciona el horno; pues esto es tiempo de producción que ha perdido (menos muffins son menos €uros). Imagina que cada persona que aprende una lección de este tipo, la comparte en una pizarra con PostIts, o que deja un super PostIt al lado del horno con el detalle de su funcionamiento. Pues esta colaboración seguro que ahorra muchos dolores de cabeza a las nuevas generaciones de pasteleros.

Aclaración: lo de super post-it no es por el tamaño … solo piensa que que pasa si pegas un PostIt a un elemento que se calienta y se calienta y se calienta y se calienta y ….

Seguro que hay muchas otras consideraciones y consejos que tener en cuenta; yo desde mi pasteleria me he apuntado estos 3 durante estos últimos 6 meses. A ver si me animo a bajar a papel algunos relacionados con trabajos remotos, imaginad que una pastelería en un sitio se prepara la masa, en otro se hornea y en un 3ro se decora y se prepara para la venta … fácil no es Winking smile

Saludos @ Home

El Bruno

image image image Google

[#WINDOWS] Favorites en el registro de Windows? (novedad para mi!)

image

Buenas,

mira que llevo años y años peleandome con el registro de Windows y solo recién, gracias a este post, me doy cuenta que soporta favoritos.

image

Como estoy trabajando en una build “raruna” de Windows 8.1, he vuelto atrás hasta un Windows 8 y allí estaban los favoritos. Luego involucioné un poco más hasta un Windows 7 y … sorpresa, allí también estaban !!!

Supongo que encontrar un Windows Vista es una tarea imposible en este momento para probarlo. Vamos, que será más fácil encontrar un Windows XP … y bueno, ver en que versión del editor del registro se agregaron los FAVORITOS !!!

Fuente: http://blogs.msdn.com/b/johnguin/archive/2013/07/29/regedit-added-favorites.aspx

PD: Dato friki, en la versión RT de Windows 8 también están Winking smile

Saludos @ La Finca

El Bruno

image image image Google

Technorati Tags:
WordPress Tags: WINDOWS

[#VS2013] HowTo: Generar Code Snippets desde el Source Code Editor

image

Hola,

menuda sorpresa que me llevo con Visual Studio 2013 al hacer un drag & drop de una porción de código a la Toolbox. Esta acción tan simple te crea un code snippet básico con el código que has seleccionado y … listo ! ya lo tienes para poder reutilizarlo cuando quieras Winking smile

Esto parece una tontería teniendo las plantillas de ReSharper a mano, sin embargo hay escenarios muy útiles para esta funcionalidad. Por ejemplo, si das charlas o eventos, esta es una forma muy fácil de acelerar el tiempo code writing en las mismas. Te ahorra el copiar el código desde un archivo de texto, y además quedas muy cool !!!

Como siempre un video vale más que 4298 palabras

VS2013CodeSnippet

Por cierto, a ver que tal se ven los videos en formato GIF animado … veo que Camtasia ha hecho un buen trabajo y me apunto un par de mejoras para el próximo

 

Saludos @ Home

El Bruno

image image image Google

[#AZURE] Gana un Aston Martin V8 Vantage Coupe con tu suscripcion #MSDN

Hola,

La siguiente imagen vale más que 491 palabras, no?

image

La promoción está dirigida a las personas que tienen suscripciones MSDN, y solo con crear un WebSite o una Virtual Machine, ya eres parte de la misma y tienes derecho a entrar en el sorteo de un Aston Martin. Todo esto hasta el 30 de Septiembre del 2013. Las bases del concurso se pueden ver aquí.

Y si por algún motivo extraño no conoces al Aston Martin V8 Vantage Coupe, en este link puedes ver un par de fotos del mismo.

image

Homepage: http://www.windowsazure.com/en-us/campaigns/car/

Fotos: http://www.bing.com/images/search?q=2013+aston+Martin+V8+Vantage+Coupe&qpvt=2013+aston+Martin+V8+Vantage+Coupe&FORM=IGRE

Saludos @ Home

El Bruno

image image image Google

[#VS2012] HowTo: Align Assignments (casi casi en #VS2013)

image

Hola.

Después del post de ayer sobre el auto completado de llaves en Visual Studio 2013, hoy vía twitter Ramon Ordiales (@ramoneeza) me propuso otro par de cambios interesantes para el editor de C# en VS2013. Uno de ellos era el alinear las asignaciones de valores “=” en el editor de código.

Tirando de memoria, y de bing.com me acordé que las Productivity Power Tools 2012 para Visual Studio 2012, lo hacen. Transforman esto:


en esto:

Ojo, deshabilitando las opciones por defecto de “Insert space after … “ en el formateo de C#.

image

Luego se me dio por modificar el vsix para ver si podría funcionar en Visual Studio 2013. Una vez descomprimido el paquete, he modificado el manifiesto para que soporte VS2013 (líneas 19 a 23)

   1:  

   2: <Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010">

   3:     <Identifier Id="VSProPack.Microsoft.e7b28bb4-a322-47da-9f4e-0902d8Ba276e">

   4:         <Name>Productivity Power Tools 2012</Name>

   5:         <Author>Microsoft</Author>

   6:         <Version>11.0.60403.00</Version>

   7:         <Description xml:space="preserve">A set of extensions to Visual Studio 2012 Professional (and above) which improves developer productivity.</Description>

   8:         <Locale>1033</Locale>

   9:         <MoreInfoUrl>http://go.microsoft.com/fwlink/?LinkId=271503</MoreInfoUrl>

  10:         <License>EULA.rtf</License>

  11:         <Icon>ProPowerTool_Thumb.png</Icon>

  12:         <PreviewImage>ProPowerTool_Preview.png</PreviewImage>

  13:         <SupportedProducts>

  14:             <VisualStudio Version="11.0">

  15:                 <Edition>Ultimate</Edition>

  16:                 <Edition>Premium</Edition>

  17:                 <Edition>Pro</Edition>

  18:             </VisualStudio>

  19:             <VisualStudio Version="12.0">

  20:                 <Edition>Ultimate</Edition>

  21:                 <Edition>Premium</Edition>

  22:                 <Edition>Pro</Edition>

  23:             </VisualStudio>

  24:         </SupportedProducts>

  25:         <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.0" />

  26:     </Identifier>

El instalador funciona de perlas … todo genial-

image

image

Sin embargo lo que te encuentras luego de instalarlo es lo menos parecido a Visual Studio 2013. Vamos que esta solución no funciona …. salvo que quieras jugar con fuego, aunque eso es tema para otro post.

Saludos @ Home

El Bruno

image image image Google

[#VS2013] New Feature: auto completado de llaves

image

Hola,

recién terminados los Coding Dojo de Avanade Spain en Madrid, Malága y Barcelona, me quedan pocas energías para un post en el que tenga que pensar (ojo que de esos solo hay uno al mes !)

Así que hoy dejo una feature que causa estragos entre la comunidad de desarrolladores que, o no conoce las Power Tools, o no usa Resharper (que por cierto acaba de lanzar la version 8.0!)

Como me disperso, autocompletado de llaves en el editor de código:

Impresionante !!!

Saludos @ Home

El Bruno

image image image Google

[#XDUINO] Arduino vs Netduino vs Gadgeteer (VII) conclusiones, Pros y Cons de .Net Gadgeteer

image

Series

  1. Introducción.
    http://elbruno.com/2013/07/13/xduino-arduino-vs-netduino-vs-gadgeteer-i/
  2. Ejemplo con Arduino
    http://elbruno.com/2013/07/15/xduino-arduino-vs-netduino-vs-netgadgeeter-ii-usamos-el-arduino/
  3. Comenzando con Netduino
    http://elbruno.com/2013/07/16/xduino-arduino-vs-netduino-vs-netgadgeeter-iii-empezamos-con-netduino/
  4. Ejemplo con Netduino
    http://elbruno.com/2013/07/17/xduino-arduino-vs-netduino-vs-gadgeteer-iii-el-ejemplo-con-netduino/
  5. Ejemplo con Gadgeteer
    http://elbruno.com/2013/07/18/xduino-arduino-vs-netduino-vs-gadgeteer-v-ejemplo-con-gadgeteer/
  6. Conclusiones sobre Arduino
    http://elbruno.com/2013/07/22/xduino-arduino-vs-netduino-vs-gadgeteer-vi-conclusiones-pros-y-contras-de-arduino/
  7. Conclusiones sobre Netduino
    http://elbruno.com/2013/07/23/xduino-arduino-vs-netduino-vs-gadgeteer-vi-conclusiones-pros-y-contras-de-netduino/

Hola. 

Después de la revisión de ArduinoNetduino, hoy cierro con .Net Gadgeteer

.Net Gadgeteer

Pros

La principal ventaja de .Net Gadgeteer es la velocidad con la que podemos prototipar. Por un lado la placa tiene sensores del tipo plug & play, lo que tenemos en Arduino con un Groove Shield. Además dentro de Visual Studio tenemos un entorno visual donde podemos ver como van las conexiones y que PIN tenemos que usar para cada sensor. Este modelo de trabajo Drag&Drop realmente hace que cualquiera pueda prototipar de forma rápida.

Otro tema importante es el código. El DSL visual donde conectamos los sensores se encarga de generar el código de inicialización de los mismos, luego un programador solo tiene que centrarse en la lógica de negocios que quiere aplicar en el prototipo. Una vez más Gadgeteer gana en velocidad.

Otra ventaja, desde el punto de vista académico es que es ódigo abierto. Lo puedes encontrar en http://gadgeteer.codeplex.com/ y ver como funciona por dentro. Y no quiero olvidarme que nació como un proyecto de MS Research para prototipados rápidos que a pedido de la comunidad se convirtió en un producto comercial para entusiastas y personas con poca vida social.

Cons

Creo que la principal contra es el precio. Un Kit completo para comenzar a trabajar es mucho más caro que uno de Arduino o Netduino, haciendo números rápidos es casi el doble. Lo siguiente no es una contra, pero si lo que quieres es trabajar a bajo nivel, ni pienses en Gadgeteer. 

Conclusion

Gadgeteer es el Visual Basic de los sensores. Y no lo tomes por el lado malo de Visual Basic, te permite hacer cosas potentes y de una forma muy rápida. Si esto es lo que quieres, es genial. Si por otra parte quieres trabajar en un nivel inferior puedes bajar a Netduino y si te gusta al hardcore Arduino es tu amigo.

 

Saludos @ Barcelona

El Bruno

image image image Google

[#XDUINO] Arduino vs Netduino vs Gadgeteer (VI) Conclusiones, Pros y Contras de Netduino

image

Series

  1. Introduction. http://elbruno.com/2013/07/13/xduino-arduino-vs-netduino-vs-gadgeteer-i/
  2. Example with Arduino. http://elbruno.com/2013/07/15/xduino-arduino-vs-netduino-vs-netgadgeeter-ii-usamos-el-arduino/
  3. Starting with Netduino. http://elbruno.com/2013/07/16/xduino-arduino-vs-netduino-vs-netgadgeeter-iii-empezamos-con-netduino/
  4. Example with Netduino. http://elbruno.com/2013/07/17/xduino-arduino-vs-netduino-vs-gadgeteer-iii-el-ejemplo-con-netduino/
  5. Example with Gadgeteer. http://elbruno.com/2013/07/18/xduino-arduino-vs-netduino-vs-gadgeteer-v-ejemplo-con-gadgeteer/
  6. Conclusiones sobre Arduino, http://elbruno.com/2013/07/22/xduino-arduino-vs-netduino-vs-gadgeteer-vi-conclusiones-pros-y-contras-de-arduino/

Hola.

Ayer le tocó mi review a Arduino, hoy vamos con Netduino ..

NETDUINO

Pros

Los Pros comienzan con un “Netduino mola” para España, o “Netduino es un show” para Latinoamerica. Es un device pequeño que te permite hacer prototipos rápidos en C#. Puede parecer raro, pero oder programar en C# es la 2da mejor ventaja, siendo que contamos con todas las ventajas de un lenguaje de programación buenísimo (Generics, Linq, etc). La primera es que Netduino está montado sobre .Net Micro Framework, y de fábrica tiene todo lo que es muy díficil de implementar en Arduino: Timers, MultiThreading, orientación a eventos, etc. Por otra parte, tampoco es mucho más caro: un Arduino (€20) y el Netduino (€34,95), prototipar con Netduino no es muy caro.

Otro punto a comentar que .Net Micro Framework es Open Source, así que si quieres ver como funcionan “las tripas”, está disponible para todo el mundo en CodePlex. Y no me quiero olvidar que con Netduino tienes:

– Depuración

– Un Emulador integrado en Visual Studio

– Un chip a 48MHz (vs los 16MHz de Arduino), un chip ARM de 32 bits (vs el ATmega de 8 bits), etc. Vamos que es más potente.

Cons

La principal contra de Netduino es que está montado sobre .Net Micro Framework. Y si en algún momento quieres hcaer algo que no está incluido en el NETMF, pues o te creas una rama propia de NETMF a tu gusto, o te esperas a que alguien lo haga por tí. Además la colección de sensores que hay para Netduino es inferior a la de Netduino. Si bien, muchas veces hay un par de tutoriales sobre como implementar un controlador para NETMF de un sensor, a partir de código C++; la realidad es que no es tan fácil.

Otro problema que tiene es el precio (pero si arriba pusiste otra cosa melón!). No se si hay chips Netduino baratos, pensemos siempre en €35 por cada uno; en cambio es posible prototipar con Arduino y luego implementarlo en chips AVR de menos de €10.

Conclusion

Netduino está muy pero muy bien. Si no quieres pasarte al mundo de los hombres y escribir código en C/C++; netduino es una excelente opción. No es muy caro, tiene todas las ventajas de los lenguajes de Microsoft y se integra muy bien el mejor IDE actual: Visual Studio 2012. En este punto, alguno me castigará con un “eso es de pago” pues usa las versiones Express que son gratis! Yo creo que Netduino está muy bien y más aún si quieres hacer prototipos rápidos en un IDE conocido.

 

Mañana algo sobre .Net Gadgeteer …

Saludos @ La Finca

El Bruno

image image image Google

[#XDUINO] Arduino vs Netduino vs Gadgeteer (VI) Conclusiones, Pros y Contras de Arduino

image

Serie

  1. Introducción. http://elbruno.com/2013/07/13/xduino-arduino-vs-netduino-vs-gadgeteer-i/
  2. Ejemplo con Arduino. http://elbruno.com/2013/07/15/xduino-arduino-vs-netduino-vs-netgadgeeter-ii-usamos-el-arduino/
  3. Comenzando con Netduino. http://elbruno.com/2013/07/16/xduino-arduino-vs-netduino-vs-netgadgeeter-iii-empezamos-con-netduino/
  4. Ejemplo con Netduino. http://elbruno.com/2013/07/17/xduino-arduino-vs-netduino-vs-gadgeteer-iii-el-ejemplo-con-netduino/
  5. Ejemplo con Gadgeteer. http://elbruno.com/2013/07/18/xduino-arduino-vs-netduino-vs-gadgeteer-v-ejemplo-con-gadgeteer/

Buenas

después de la serie de posts donde mostré como hacer una aplicacion simple con un LED y un BUTTON con Arduino, Netduino y .Net Gadgeter, ahora me toca presentar mis conculsiones al respecto. Veamos …

ARDUINO

Pros

Arduino es la plataforma más extendida de las 3. Es casi imposible pensar en un ejemplo y no encontrar información relacionada en Arduino.cc, google.com o bing.com. Hay muchos ejemplos, muchos foros y mucha comunidad detrás de Arduino que hace que no tengamos que dedicar mucho tiempo a la investigación.

Otro punto importante es que, si bien hay componentes que se pueden reutilizar entre las 3 plataformas, la base de todos los sensores y actores, es siempre para Arduino. Es la plataforma que tiene más “versiones”, más sensores y un punto importante final: Es la más barata.

Contras

Aunque claro, no todos son rosas para Arduino. Hay que usar C para programar las aplicaciones en Arduino, olvidate de programación orientada a eventos, de multithreading, y de todo lo que estamos acostumbrados en el siglo XXI. Es cierto que hay muchas soluciones en foros y comunidades para estos “problemas” sin embargo te puedes encontrar con que una solución es incompatible con otra, y toca sentarse a pasar una buena tarde y noche con el device al lado. Por cierto, si sos de los que les gusta depurar … olvidate en este caso.

Conclusión

Arduino es la plataforma más popular y la más barata. Eso ya hace que sume muchos puntos y además, si te acostumbras al entorno de programación (una vez más recomiendo Visual Micro) puedes pasar un buen rato. Además si buscas trabajar a bajo nivel, o con sensores no estandars, Arduino te da una base muy potente para poder comenzar.

mañana Netduino

Saludos @ Home

El Bruno

image image image Google