I've seen things you people wouldn't believe. Attack ships on fire off the shoulder of Orion. I watched c-beams glitter in the dark near the Tanhauser Gate. All those moments will be lost in time, like tears. . . In rain. Time to die.
Roy, en Blade Runner

Archivos en la categoría J2EE

Hoy hace un año…

Hoy hace 1 año cambié repentinamente una gran parte de mi vida, concretamente 40 horas semanales. Dejé la comodidad del paraguas del Ministerio para embarcarme en una aventura navegando a través de las procelosas corrientes de la crisis sin un destino fijo, sólo para disfrutar de la brisa marina salpicándome la cara durante el camino.

Atrás quedaron muy buenas personas y muy buenos momentos, unas grandes ventajas (no tener horario, jornada intensiva en verano, plaza de aparcamiento, presión sólo en unos momentos concretos, dejar hacer…) y un único gran agujero blanco que se engulló a su paso de 2 años a 40 personas (en un departamento de 40).

El primer destino no fue idílico, una isla en las tierras de Mordor con unos pocos habitantes y poderosos aliados al otro lado del charco. Tras atracar tuvimos tiempo de evaluar más detenidamente dónde nos encontrábamos : un lugar desastroso, tercermundista tecnológicamente y metodológicamente, mal ambiente y barbilla demasiada alta. Si menciono que eran descendientes tecnológicos del antiguo linaje de Ya.com, algunos de vosotros os sonreiréis y me comprenderéis.

Poco después tuvimos que levar anclas. El cacique local concertó una reunión para que presentásemos la planificación de los próximos meses, para la que invertimos prácticamente 1 mes (creo que sin cobrar) entre la preparación, requisitos y formación en las nuevas tecnologías. En realidad el único objetivo fue que su peón atacase en el plano personal a nuestra armadora acusándola de timadora por presentar una planificación "desmedida" según sus propias palabras (a pesar de que estaba MUY ajustada), ya que encontraron a unos bucaneros que se lo hacían por la mitad.

Lo mejor, conocer a un compañero extraordinario y dejar un lugar en el que ocurren cosas como la mencionada anteriormente. Lo peor, me arrepiento de no haber intervenido en ese ataque, yo desconocía lo que lo había motivado pero nunca debí dejar que esa reunión traspasase el ámbito profesional, y no haber visto el resultado de los bucaneros ;)

Dejar Mordor tiene una gran ventaja : las cosas no podían hacer nada más que mejorar.

Atracamos en un lugar seguro, al Oeste. La gente en estas tierras tienen fama de metódicos, tranquilos y con una vida monótona, rutinaria, previsible y repetitiva; sin embargo, atracamos en el puerto que es la excepción a esta fama, en la que de largo lo peor es que no aprenden de sus errores y que viven gracias a los heroísmos individuales. Para añadir más caos somos sus primeros javeros.

El primer proyecto no salió bien, como no podía ser de otra forma. Su primera fecha para la puesta en producción era marzo, la segunda el 6 de Abril, y aún hoy no está en producción. Cada uno es libre de sacar sus conclusiones, pero desde luego no fue por nuestra culpa.

Después llegó siniestros. A medio camino llegó el gran trato con Mutua Madrileña, con la que llegamos a puerto tambaleándonos gracias a las heroicidades de los participantes del proyecto (no sólo nuestro equipo pero sobre todo, y sabéis que soy un tío muy modesto).

Ahora ha llegado otro gran trato en la que hemos tenido 1 mes y medio para llegar, y que en breve está prevista nuestra llegada a puerto a pesar de que no tenemos mapas de esta zona del mundo.

Tras estos dos importantes sprints el futuro no puede ser otro que el de recoger velas y reparar en el puerto el barco para prepararnos para afrontar la siguiente tormenta que nos traen los vientos norteños cargados de nubes negras.

Espero que se nos unan tres barcos más a nuestra flota : el primer proyecto ya mencionado, un clon de este proyecto y otro para gestionar los marineros autorizados en los demás proyectos. Es el momento de hacer bien las cosas, el multidioma (es un puerto con pasajeros de varias nacionalidades), una arquitectura común, limpieza y reparación, manuales de usuario, documentación técnica…

Si el martes todo sale bien, podré mirar por primera vez en este puerto el futuro inmediato con tranquilidad y seguridad, sin preocuparme de las nubes negras que puedan venir porque tendré la certeza de que nuestra flota y tripulación saldremos airosos de cualquier dificultad.

La agilidad como único camino

Ante la situación actual en la que se encuentra el proyecto, la agilidad es el único camino para conseguir alcanzar este nuevo hito. Adaptación para sobrevivir.

 

Cierto que no soluciona el problema del escaso tiempo disponible para la ingente cantidad de trabajo por entregar, no es magia y no va a reducir el tiempo de desarrollo a la mitad. Pero seguir los principios enmarcados dentro de la filosofía ágil es lo único que nos mantendrá enfocados y evitar el perdernos en el camino : acciones ágiles.

Y los hechos "ágiles" se recogen en el Manifiesto Ágil y se plasman en 4 valores :

  • Individuos e interacciones sobre procesos y herramientas
  • Software que funciona sobre documentación exhaustiva
  • Colaboración con el cliente sobre negociación de contratos
  • Responder ante el cambio sobre seguimiento de un plan

y se enmarcan en 12 principios :

  1. Nuestra principal prioridad es satisfacer al cliente a través de la entrega temprana y continua de software de valor.
  2. Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al desarrollo. Los procesos ágiles se doblegan al cambio como ventaja competitiva para el cliente.
  3. Entregar con frecuencia software que funcione, en periodos de un par de semanas hasta un par de meses, con preferencia en los periodos breves.
  4. Las personas del negocio y los desarrolladores deben trabajar juntos de forma cotidiana a través del proyecto.
  5. Construcción de proyectos en torno a individuos motivados, dándoles la oportunidad y el respaldo que necesitan y procurándoles confianza para que realicen la tarea.
  6. La forma más eficiente y efectiva de comunicar información de ida y vuelta dentro de un equipo de desarrollo es mediante la conversación cara a cara.
  7. El software que funciona es la principal medida del progreso.
  8. Los procesos ágiles promueven el desarrollo sostenido. Los patrocinadores, desarrolladores y usuarios deben mantener un ritmo constante de forma indefinida.
  9. La atención continua a la excelencia técnica enaltece la agilidad.
  10. La simplicidad como arte de maximizar la cantidad de trabajo que no se hace, es esencial.
  11. Las mejores arquitecturas, requisitos y diseños emergen de equipos que se auto-organizan.
  12. En intervalos regulares, el equipo reflexiona sobre la forma de ser más efectivo y ajusta su conducta en consecuencia.

Personalmente no estoy de acuerdo con el primer valor : tenemos que intentar tanto contar con las mejores personas como poner a su disponsición las mejores herramientas y procesos.

El segundo valor es el que más me gusta, ya que un código simple, sencillo y que funciona es suficiente documentación para el futuro. No obstante, no hace daño a los ojos más ayuda ;)

El tercer valor es muy bonito, pero en el mundo real al final dependes de la buena voluntad del cliente (y él depende de la tuya) sin un contrato firmado.

Finalmente el cuarto valor es muy bonito, pero hay que concienciar al cliente que todo cambio tiene un impacto en el alcance y un coste asociado (en tiempo, en jornadas, en formación, en pruebas) : si no consigues comunicárselo al cliente al final lo asumirás tú.

Cuadraremos el Círculo

Ok, nos hemos puesto de acuerdo, cuadraremos el círculo, lo haremos en tiempo récord con manos insuficientes pero lo haremos con más manos, y para alcanzar el acuerdo sólo se han necesitado dos propuestas.

La primera propuesta se hizo demasiado apresuradamente por mis problemas de horario, un malentendido, falta de información y con un tiro contra nuestra escuadra. Un estirón de última hora salvó la derrota en el último minuto.

La segunda propuesta se hizo con tiempo, dedicación y con realismo. Suponía duplicar la propuesta anterior, así que en lugar de aprender de los errores de subestimar al menos un 25% (y ahora creo que me quedé corto) persistimos en ellos.

En la mesa hablando sobre este marrón todas las miradas cayeron sobre mí, y ya que la responsabilidad se ha decidido que caiga sobre mis hombros (no tengo ningún interés pero ya veremos qué pasará con las medallas), he recibido la fecha inamovible y los requisitos, pues yo he sido impuesto realismo, a precio bien barato por cierto a mis ojos.

Ahora tengo lo que he pedido, se incorporarán al proyecto 3 pares de manos más. Estoy muy contento con esta rápida incorporación en la que veo bastante calidad a pesar de las apreturas de tiempo. Pero el haber encontrado 3 buenos pares de manos en tan poco tiempo para incorporación inmediata me hace pensar que el mercado está realmente mal.

Por delante queda un sprint corto e intenso al que hay que llegar… y mantenerse.

Sobrepasado

Está claro que este trabajo ha ido de menos a mucho más.

No es que al principio no trabajase, es que hacía mi trabajo. Poco a poco como he comentado he ido asumiendo un poquito más de trabajo, trabajo que no era mío, un poquito más, un poquito más hasta que me he encontrado enterrado en trabajo. De hecho, poco a poco he dejado de lado otras parcelas de mi vida para poder asumir este incremento de trabajo.

El proyecto ha estado parado durante mi ausencia de 15 días (mitad vacaciones, mitad enfermo), unido a mi soledad en el mismo otros 7 días, unido a la puesta en producción habiendo entregado el socio su parte el día antes y el cliente el entorno de producción el mismo día a las 15:00 del viernes (quizás algún día cuente la historia de las VPNs), una aplicación que muta, el hecho de tener tanto trabajo "ajeno" ha hecho que mi trabajo "propio" se resintiera, mientras preparamos una ampliación en la que cuadraremos el círculo.

En ese momento, el futuro, es decir este presente, era completamente predecible.

Y los problemas no se solucionan sólos, así que inevitablemente he llegado a un punto en el que me he encontrado sobrepasado. Un ejemplo es escribir esta entrada con 3 semanas de retraso y el haber abandonado el blog, pero hay muchos más como perder la cuenta de las incidencias que hay en producción.

Hora de poner freno, y recundicir la situación. Muchos pocos hacen un mucho insostenible.

Fase II, Ampliación y Mantenimiento : Cuadrando el círculo

Como comentaba, la primera fase del proyecto ya está en producción. Por tanto actualmente estamos ofreciendo mantenimiento (el correctivo se supone que lo hacía el cliente, el evolutivo no está contratado de momento y es un trabajo significativo, pero lo hacemos también qué cojones) y tenemos pendiente continuar el desarrollo de la siguiente fase.

Al finalizar esta primera fase yo aproveché para sacar mis propias conclusiones. Pero debo de ser muy novato, o estar muy equivocado porque las conclusiones que han sacado otras partes del proyecto van en el sentido contrario a las mías. En concreto, que como hemos ido tan sobrados, que ahora lo hagamos sin manos.

Vamos, para que podamos decir todo orgullosos,

Mira mamá ! Sin manos !

Al menos estamos de acuerdo en que ha sido un éxito (razonable), y que el equipo lo ha dado todo y sus resultados inmejorables.

Ahora a la segunda fase de este proyecto, que estaba planificado que se entregaría un mes después de la primera entrega, se le une el mantenimiento de la primera y una nueva ampliación con otro socio.

El alcance pendiente

  • Por un lado tenemos que aún no se ha empezado la segunda fase por la cantidad de trabajo que lleva el evolutivo y que ha tenido más urgencia, unido a mis vacaciones y una semana en blanco por enfermedad.
  • Por el otro tenemos pendiente una nueva ampliación sobre esta segunda fase.
  • Hay que seguir ofreciendo mantenimiento de la aplicación en producción.
  • Hay que disponer de tiempo para el control y seguimiento de los proyectos.
  • Además, se facture o no, el mantenimiento correctivo de la aplicación en producción y las nuevas mejoras que estamos hemos estado haciendo, y seguiremos haciendo.

Con la experiencia que ya tenemos, el alcance aumentará a lo largo del proyecto un 20% de lo planificado para la ampliación, e incluso un 10% extra después de la entrega como ocurre en el actual .

El plazo

Por motivos comerciales, se ha fijado el 1 de enero de 2010 como fecha en la que se deberían de empezar aceptar siniestros para este nuevo socio (Acuerdo Marco). El 1 de enero está a la vuelta de la esquina, gran parte del equipo ha disfrutado de pocas vacaciones este año, y están las Navidades de por medio.

El equipo

Qué equipo ? No quiero entrar en detalles de presupuesto, por eso no diré si el equipo es de 1 o 100 personas… Y las siguientes cifras son metafóricas ;)

Baste decir que con el equipo actual ni siquiera se puede considerar una utopía cumplir en plazo y alcance. Duplicando el equipo, es sin lugar a dudas inviable. Triplicándolo no llegamos y cuatriplicándolo nos acercaríamos a entregar una parte a tiempo. Necesitaríamos quintuplicar el equipo actual para siendo optimistas verlo factible y quizás con esfuerzos (sin vacaciones, horas extras), y no me quejaría de manos extras.

O para entendernos, si se estima que se necesitan 100 jornadas laborables, se venden 50 y se nos obliga a realizarlo en 20 jornadas, ya que disponemos de una persona durante un mes… se pide cuadrar el círculo

Cómo lo solucionaremos ? Os ha pasado ? Cómo lo solucionásteis ?

Veo que ni siquiera la solución del jefe con los pelos de punta, del genial Dilbert, será buena :

Dilbert.com

Actualización

Bueno, vamos añadiendo gente al equipo. Vamos a ver si conseguimos tener un hijo utilizando 3 mujeres en un mes ;)

Comenta