Érase una vez una persona non grata…

budget-for-the-project

(Fuente: http://www.dilbert.com/strips/comic/2009-12-07/)

Update: El título de este post es metafórico, “persona non grata” significa persona que no es bienvenida, acá significa empresa que no es bienvenida para hacer negocios. Esto porque este post ha generado un hilo de discusión en el forum de ChileAgil con mucha polémica debido entre otras cosas a la interpretación del titulo.

Hace algunas semanas, nos contactó una empresa con el objetivo de contratarnos para la implementación de un sistema. Había recibido buenas referencias nuestras en su búsqueda de empresas de desarrollo que fueran «confiables» y «trabajaran con calidad».

Luego de una primera conversación telefónica nos reunimos. Nos contó de que se trataba el proyecto y yo les presenté nuestra «filosofía» y «métodos de trabajo». Me pidió que le enviará un correo electrónico contando más sobre estas cosas para discutirlas con sus superiores y ver si realmente eramos lo que buscaban, además me entregó «el documento de requerimientos» del sistema que ellos mismos habían escrito y me dijo casi al despedirnos «Necesito una propuesta económica o cotización de los requerimientos que están en este documento» .

Era un documento muy vago, de 9 páginas y escrito con muchos tecnicismos de su negocio, en realidad no decia mucho, bueno en realidad no decia nada.

No ibamos a hacer la cotización, porque sencillamente no sabíamos que había que cotizar, y probablemente esta empresa tampoco lo sabia. Decidimos escribir un mail explicando lo que podiamos hacer para trabajar juntos, y comenzó un diálogo a través del correo electronico.Quiero compartir la conversación de la cual se pueden sacar algunas conclusiones, pero para nosotros la más valiosa fue que a esta empresa la declaramos persona non grata para trabajar.

Nota: La conversación fue editada para ocultar la identidad del cliente. El texto en gris son sus respuestas.

[1] ==================================================

Estimada Empresa,

Lo que sigue es un resumen de nuestra metodología de desarrollo . Esta es una especie de guía que debemos cumplir ambos y que de nuestra experiencia es la única forma de garantizar el éxito del proyecto.

Por favor, si tienes alguna duda podemos reunirnos para discutirlas en detalle.

De nuestra metodología ágil:

“No podemos cotizar lo que no sabemos cuanto va a tomar en esfuerzo aun…”

Partimos cotizando la(s) primera(s) semana(s) de consultoría (desarrollo) donde hacemos “Story Cards” o levantamiento de requerimientos junto a ustedes.

Es un tiempo intenso (exige muchas horas de ambos) donde en reuniones (participan los desarrolladores y los usuarios de negocio) escribimos en tarjetas los requerimientos del software colocando indicadores (número) del valor de negocio del requerimiento en las tarjetas (1 tarjeta = 1 requerimiento ).

Las tarjetas contienen en una especie de template, algo en la forma:

Para obtener <valor de negocio>
Como <role>
Quiero lograr <objetivo>

Además contienen criterios de aceptación en forma de escenario:

Dado que…
y que…
Cuando…
Entonces…

Todo esto sirve como comunicación entre el usuario y el desarrollador y además crea criterios de aceptación del requerimiento que en cada entrega parcial del software se valida (re-leyendo la tarjeta {“card”} ).

Las prioridades la coloca el usuario (o sea ustedes) por el valor de negocio que representa el requerimiento, es posible re-negociar todo el tiempo las prioridades con el equipo de desarrollo.

Una vez terminada la primera semana de levantamientos de Story Cards (este proceso es denominado ’story-carding’), los desarrolladores le colocan peso en esfuerzo (basado en su experiencia en escenarios similares) . Para esto los desarrolladores pueden separar el requerimiento en requerimientos más pequeños (un requerimiento grande es inestimable en esfuerzo)

Es importante definir bien los criterios de aceptación en las reuniones, pues es la única medida de que se ha terminado el requerimiento.

Para todo lo anterior usamos una herramienta online llamada “Pivotal Tracker” http://pivotaltracker.com

—–

De la implementación:

El entregable de esta primera etapa son los “Story Cards” del sistema más el esfuerzo de construirlo.

Si se aprueba, entonces en la segunda parte (construcción) partimos con el desarrollo de los requerimientos en orden de prioridad. Se crean iteraciones de un máximo de 2 semanas (puede ser de 1 semana). Cada semana tiene un entregable o release donde se ejecutan los criterios de aceptación del sistema junto al usuario de negocios (ustedes).

Si hay cambios (nuevos requerimientos), se crean nuevos story card, se valora la prioridad y en caso de ser alta, se estima y se re-organiza el backlog (pool de requerimientos a implementar en la próxima iteración.)

Del pago del proyecto:

Es siempre contra avance o entregable. El primer pago es una vez terminada la o las semanas de story carding. Los próximos pagos una vez entregados el release en cada iteración.

Se cobrán los avances en cada iteración (cada 2 semanas).

[2] ==================================================

Estimado continuum,

Me parece excelente la metodología AGIL, con la cual he trabajado en el desarrollo de proyectos, pero necesitamos tener una estimación de esfuerzo lo mas pronto posible, de acuerdo a los requerimientos entregados, si tienes dudas al respecto favor enviarlas a la brevedad, para acotar lo mas posible las actividades a desarrollar, ya tenemos la cotización de otros y con toda esta información tomaremos una decisión esta semana a más tardar la siguiente, por lo tanto necesitamos un orden de magnitud de costos para desarrollar este proyecto.

[3] ==================================================

Estimada Empresa,

¿Como puedes estar seguro que las demás empresas que dices que te enviaron cotizaciones entendieron los requerimientos y que estimaron el esfuerzo real?, ¿no has tenido ya pesimas experiencias con esta forma de trabajar?

No podemos estimar lo que no sabemos estimar, sería mentir (que en mi opinión es lo que están haciendo los otros con las metodologias clásicas de cascada) pues los requerimientos que tenemos son muy vagos y una reunión o una llamada telefónica no nos va a ayudar.

De la reunión que tuvimos lo único que rescaté fue que necesitan levantar los requerimientos junto al equipo que los va a desarrollar para poder comunicar que es lo que quieren e incluso para que a ustedes les quede más claro y puedan ordenar las prioridades.

En el mail anterior está la forma en que lo hacemos, si quieres una cotización para competir con los otros en tiempo o esfuerzo entonces preferimos quedar fuera, yo si tengo malas experiencias cuando trabajé en empresas que usaban este modelo y ahora tengo excelentes experiencias usando este nuevo paradigma, pero ambos tenemos que estar convencidos que es lo mejor, sino no funciona.

[4] ==================================================

Estimado continuum,

¿Cuanto tiempo necesitas para hacer el levantamiento que tu indicas y a que costo?

[5] ==================================================

Estimada Empresa,

Un equipo de 2 desarrolladores analistas. Nosotros trabajamos 35 horas semanales, y estarían disponibles para hacer el story-carding, pero ustedes tiene que garantizar el mismo tiempo de disponibilidad del usuario de negocios.

Si no es posible, tenemos que buscar una alternativa como por ejemplo 3 días corridos por 2 semanas o 3 semanas; Esto último en caso que no logremos escribir todo los requerimientos. Lo que si creemos necesario trabajar todo el día (sin interrupciones) para garantizar continuidad.

Entonces el costo aprox del “Story Carding” sería:

2 desarrolladores x [costo-desarrollador-hora-en-UF] UF/h x 24h x [2, 3] semanas = entre xxx.xx UFs (2 semanas) y xxx.xx UFs (3 semanas)

[6] ==================================================

Estimado continuum,

Eso seria factible si decidiramos hacer el proyecto con uds,  lo cual aún está en evaluación junto con otros proveedores, en esta etapa del proceso necesito una estimación de parte de uds de que significa hacer el proyecto en tiempo y costo, pero no es factible que incurramos en un costo (esta semana que llamas story-carding), para que uds nos entregue este dato.

Te invito que nos hagas llegar tus dudas de los requerimientos o tener otra reunión para acotarlos, de manera que con su experiencia en el desarrollo de estos proyectos puedan hacer una estimación

—————–

Notas: En este punto ya tuve deseos de enviar un mail agradeciendo el contacto y que abandonabamos la negociación, esta empresa sencillamente no habia entendido nada y no queria entender. Esperé entonces algunas horas, debatí los mails con algunos de mis colegas en continuum y decidimos que enviariamos un correo más, esta vez un correo estratégico del cual sabiamos que o obteniamos una respuesta esperanzadora o terminaba la negociación, y así lo hicimos.

—————–

[7] ==================================================

Estimada Empresa,

En unas horas más te envio un correo de definición donde te daré algunas cifras y como podriamos hacer para mitigar el riesgo de ambos.

PD: No tenemos dudas en los requerimientos, porque no existen, hay que levantarlos (¿recuerdas los Story Cards?). Al documento que me entregastes le falta mucha información.

[8] ==================================================

Estimada Empresa,

Como lo que estás buscando es tener “Presupuesto en frente” te propongo lo siguiente:

En continuum creemos que cualquier desarrollo de más de 2 meses es demasiado grande para estimarlo adecuadamente en el largo plazo. En nuestra experiencia, siempre se cae en los problemas de:

(A).- Terminar construyendo cosas que en realidad se descubre posteriormente que no son importantes o nunca se usan.
(B).- No poder implementar las sugerencias o requerimientos nuevos que inevitablemente surgen.

En esos casos (proyectos grandes) lo que hacemos es estimar por 8 semanas primeramente y sino alcanzamos, re-estimar por 8 semanas o menos más, y así iterativamente hasta terminar o alcanzar un punto de “Valor de negocio confortable” (a veces ocurre que el cliente se conforma con una parte del sistema que le sirve para operar). Sin embargo no faltan los clientes que piden requerimientos sin valor de negocio porque “creen” que algún día les servirá sin pensar en que estan  afectando el presupuesto.

Entonces, nada garantiza que en 8 semanas se implementen todos los requerimientos con “Valor de negocio” de tu sistema.
La semana de Story Carding (que está incluida en los 2 meses) dirá que tamaño tiene el sistema que quieren construir, ustedes deberán decidir que requerimientos tienen más valor de negocio y por tanto mayor prioridad.

Nosotros estimamos los tiempos de estos requerimientos y los requerimientos que no puedan ser implementado dentro de las 8 semanas debemos renegociarlos en la forma:

(1).- No lo hacemos.
(2).- Estimamos el costo del nuevo desarrollo. Como otro proyecto de X tiempo más (el tiempo que demoren los nuevos requerimientos).

Costo x 2 meses = 2devs x [costo-desarrollador-hora-en-UF] UF/H x 35H/semana x 8 semanas = xxx.xx UF (Total)

No obtuvimos respuestas. Fin de la negociación y declaración de persona non grata.

¿Porque apostar por las empresas pequeñas?

Continuum en el Agile & Lean Day 2009

Continuum en el Agile & Lean Day 2009

El lunes 14-dic-2009 todo el equipo de continuum estuvo apoyando el evento «Agile & Lean Day Chile 2009».

Me tocó hacer una lightning-talk o micro-charla que denominé «¿ Porque contratar pequeñas empresas para tus proyectos grandes ?» con el objetivo de transmitir un mensaje motivacional a las personas que toman decisiones de contratación en empresas o son escuchadas por estas personas.

A continuación dejo los slides y además los textos que acompañan cada slide. El número en el slide es para ser usado como guía contra el texto.

Slides:

Speech:

[1,2] – Presentación (Hola mi nombre es Jorge Rodriguez y soy Fundador de continuum…).

[3] -Este mensaje esta dirigido a las personas que toma decisiones de contratación o que trabajan en empresas donde son escuchados por los que toman decisiones.

[4] – Contratar una empresa pequeña no reconocida se trata de hacer una apuesta, pero la vida esta llena de apuestas, y puedes ganar o perder. En los próximo minutos daré mi punto de vista de como en «esta apuesta por las pequeñas empresas» tienes más posibilidades de ganar que de perder y además de «cambiar tu entorno».

[5] – ¿ Por que apostar por pequeñas empresas para realizar tus proyectos grandes ?.

[6] – Porque las pequeñas empresas no tienen dinero y punto. Te necesitan para sobrevivir. Por tanto tú le «importas» mucho. Pero también quieren ser indispensables para  ti. Quieren que tu los necesites para funcionar exitosamente.

[7] – Y aquí comienza una sucesión de eventos: Necesitan que les pagues todos los meses. Recuerda que al menos en Chile las empresas pagan a sus proveedores a 30, 60 o 90 días de emitida la factura y los días se convierten en meses para una pequeña empresa sin dinero.

[8] – Para que les pagues todos los meses quieren tenerte contento y convencerte de que todo esta bien mostrándote avances del proyecto funcionando frecuentemente, por ejemplo cada 15, 20 o menos días (hábiles).

[9] -  Y esto coincide con uno de los puntos del Manifiesto Ágil: Working Software over comprehensive documentation.

[10] – Y para mostrarte avances del proyecto funcionando frecuentemente creanme que se necesitan programadores talentosos, y los programadores talentosos son la carta de juego de las pequeñas empresas, son el principal y a veces único producto de las pequeñas empresas, por tanto ellos importan mucho, importan más que cualquier cosa.

[11] – O sea Individuals and interactions over processes and tools. Otro de los puntos del Manifiesto Ágil.

[12] – Pero además al mostrarte o entregarte releases del proyecto frecuentemente tu puedes validar los requerimientos iniciales agregando o quitando requerimientos, es decir “cambiando” el proyecto mientras se desarrolla. Para una empresa que necesita que le pagues siempre es bienvenido el cambio, ya sea para ganar más dinero ( requerimientos nuevos ) o terminar en tiempo y por ende cobrar más rápido ( eliminando requerimientos ).

[13]. Un minuto, si claro, esto es Responding to change over folowing a plan. Otro de los puntos del Manifiesto Ágil.

[14] – ¿ Pero que pasa si nada de esto sale bien y pierdes ? La apuesta fue hecha, luego de las primeras iteraciones, terminas «validando»  y conociendo «muy bien» al equipo de la pequeña empresa. Y en este punto, puedes descartarlo porque te equivocaste, ellos son malos proveedores, y sí, quizás te gastaste unos pocos millones de pesos (Chilenos) referentes a la primera o segunda factura.

[15] – Pero es esto versus hacerlo en la forma tradicional de contratar a la tremenda empresa, terminar el proyecto, equivocarte y terminar gastando todo el dinero del presupuesto anual de la empresa para realizar el proyecto, si este fuera el caso, en este punto tienes uno de dos escenarios, o la empresa que contrataste es IBM, donde «Nunca vas a perder el empleo por contratarlos a ellos» (y como bien me dijo un amigo y colega, eso se llama proliferación de decisiones /cover my ass/).

[16] – O entonces recoge la foto de tu hijo del escritorio porque acabaste de Perder tu empleo.

[17] – Pero si todo sale bien, «ganaste» y vas a «adorar por siempre» a los pequeños.

[18] – Pues te ayudaran a hacerte famoso por tomar buenas decisiones y terminar proyectos grandes en forma exitosa.

[19] – Y ya en este punto hace rato que se estableció una relación de «confianza» y «colaboración» entre tú (tu empresa) y ellos (la pequeña empresa).

[20] – Y genial, esto es Customer collaboration over contract negotiation. Otro punto del Manifiesto Ágil.

[21] – Y al final de la apuesta tu le importas tanto a la pequeña empresa y ellos te importan tanto a tí que se «confunden» y en una foto terminas no sabiendo donde están ellos y donde estas tú ! y es aquí donde te enteras que con tu decisión acabas de ayudar a nacer una empresa talentosa.

[22] – Donde las personas importan, donde la calidad del software importa, donde la colaboración importa y donde no le temen al cambio constante, o sea donde se cumple «El Manifiesto Ágil».

[23] – ¿ Y te digo algo ? Con tu decisión acabas de «Cambiar tu empresa, tu país, y ¿ por que no ? el mundo también», o sea; Acabas de cambiar tu entorno.

Continuum en Agile & Lean Day Chile 2009

Hey, el lunes 14-dic-2009 (o sea pasado mañana) será el evento “Agile & Lean Day Chile 2009” y todo el equipo de continuum (como casi siempre) estará allí, pero esta vez no solo como oyentes.

Si miran el programa, además de la charla de Ricardo sobre un “Caso de éxito” usando metodologías ágiles en un cliente NO Ágil (se oirán conceptos como tesis, antítesis, y síntesis, wow será interesante), y además de mi ligthtning talk “¿ Por que contratar empresas pequeñas para proyectos grandes ?“  y que no aparece en el programa porque será una micro-charla, continuum estará en su totalidad realizando junto a Desi McAdam el “Taller de LEGO Planing Game” que enseña las ventajas de la gestión ágil usando un juego basado en LEGO (Hey, hay 48 cupos para el taller y aún no conozco la URL para registarte, pero seguramente en http://twitter.com/ChileAgil aparecerá, así es que: atento.)

Y por último, Desi, quien no les he dicho es desarrolladora y coach ágil talentosa de http://hashrocket.com ( y que lleva casi 2 meses trabajando en colaboración con nosotros para proyectos de Hashrocket) hará la super cool charla “The Hashrocket Way” que muestra el workflow, el ecosistema ágil y la cultura que han convertido a Hashrocket en una de las boutiques web más respetadas y exitosas del mundo en desarrollo Ruby on Rails .

Notas:

1.- Todas las charlas quedarán disponible en nuestro sitio web luego de terminar el evento, trataremos de conseguirnos los videos (digo, si es que graban).

2.- Tengo entendido que mediastream transmitirá en VIVO todo el evento so stay tunned.

UPDATE: Los videos fueron publicados en http://www.chileagil.cl/2009/12/30/presentaciones-y-videos-del-agileleandaychile-2009/

Conócenos

Tel: +56 2 9341951

e-mail: info@continuum.cl

Copyright © 2010 Continuum Ltda.
Coronel Pereira 72. Oficina 903. Las Condes. Santiago. Chile