Desarrollo de software algunos tips para llegar a buen puerto...

7
Desarrollo de Software: algunos tips para llegar a buen puerto… Cuando me senté a bosquejar este post, me encontré con varios temas en la cabeza, y todos me parecieron interesantes; por eso decidí escribirlos en orden de aparición y comencé a extraer ideas. Finalmente me centre en las palabras: desarrollar, software, equipo, valor de negocio, transparencia. Entonces me gustaría compartir, lo que pienso, son algunos puntos a tener en cuenta para el éxito en el Desarrollo de Software, más allá de la tecnología empleada: Visibilidad Antes, estábamos acostumbrados a que ciertos mensajes, información o puntos claves para el Desarrollo de Software, sean gestionados por algunas personas con más años en la empresa, o responsabilidades diferentes a la nuestra (ej: tareas a realizar, próximas funcionalidades del proyecto/producto, estimaciones de las mismas, fechas de entregas, inconvenientes o atrasos, reuniones de definición con el o los interesados del producto, etc). Tal vez alguno de los puntos mencionados, está bien que sea gestionado por las personas cuya responsabilidad la contempla, pero No está bien y está más que demostrado, que el No dar participación y/o transparencia

Transcript of Desarrollo de software algunos tips para llegar a buen puerto...

Page 1: Desarrollo de software algunos tips para llegar a buen puerto...

Desarrollo de Software: algunos tips para llegar a

buen puerto…

Cuando me senté a bosquejar este post, me encontré con varios temas en

la cabeza, y todos me parecieron interesantes; por eso decidí escribirlos en

orden de aparición y comencé a extraer ideas. Finalmente me centre en las

palabras: desarrollar, software, equipo, valor de negocio, transparencia.

Entonces me gustaría compartir, lo que pienso, son algunos puntos a tener

en cuenta para el éxito en el Desarrollo de Software, más allá de la

tecnología empleada:

Visibilidad

Antes, estábamos acostumbrados a que ciertos mensajes, información o

puntos claves para el Desarrollo de Software, sean gestionados por algunas

personas con más años en la empresa, o responsabilidades diferentes a la

nuestra (ej: tareas a realizar, próximas funcionalidades del

proyecto/producto, estimaciones de las mismas, fechas de entregas,

inconvenientes o atrasos, reuniones de definición con el o los interesados

del producto, etc).

Tal vez alguno de los puntos mencionados, está bien que sea gestionado

por las personas cuya responsabilidad la contempla, pero No está bien y

está más que demostrado, que el No dar participación y/o transparencia

Page 2: Desarrollo de software algunos tips para llegar a buen puerto...

frente a éstos y otros puntos durante el proceso de Desarrollo de Software,

pueden acarrear lo siguiente:

Falta de motivación por parte de los involucrados en el desarrollo.

Problemas que existen hoy en un proyecto se terminen convirtiendo en

crónicos, y hasta parte de la cultura organizacional.

Mala interpretación de los mensajes enviados por el cliente, y por tal

motivo entrega de valor insuficiente o no deseado, aumento de re-

trabajo, etc.

Equivocarse lo más temprano

Es mejor descubrir que, lo que estamos desarrollando o lo que el cliente

solicitó no es lo que esperaba, en etapas lo más tempranas posibles.

Algunas veces solemos caer en el vicio de realizar muchos supuestos, ya

sea a través de documentaciones, dibujos, prototipos, etc; los cuales en su

mayoría, buscan predecir requisitos o próximos escenarios y, por más

ilustrativos que sean, terminan siendo estáticos, alejados de la realidad o

débiles para dar/tener la certeza de que realmente eso es lo que se

necesita o lo mejor para nuestro cliente.

Aquí aparece la necesidad de:

Realizar entregas rápidas, para un

feedback temprano.

Evitar suposiciones.

Inspección/adaptación.

El Equipo

Respecto a qué es un equipo, características y sus objetivos, podremos

encontrar cientos de artículos en la web, por eso me quiero centrar en lo

que en mi corta experiencia y en conocidos casos de éxitos demuestran ser

necesarios, para lograr una mejor sinergia en un equipo de trabajo y estar

más cerca de arribar a los objetivos:

Respeto: evitemos caer en entornos de gestión clásicos, donde

superiores establecen quiénes son las personas que definen, dirigen,

planifican y dictan las tareas a hacer y las asigna, y aprendamos a

Page 3: Desarrollo de software algunos tips para llegar a buen puerto...

valorar, escuchar y respetar a las personas que forman el equipo de

trabajo, ellos mejor que nadie podrán explicar qué tareas podrán

asumir y cómo lo podrán realizar, ofrecer sugerencias para mejorar y

hasta inclusive crear los mejores diseños y productos. Pero como todo

es un proceso evolutivo, donde tanto los superiores/líderes de

proyectos, como cada miembro del equipo de trabajo, tendrá que ir

madurándolo.

Compromiso: entender que no es suficiente estar involucrado, sino ir

más allá y estar dispuesto a comprometerse con un objetivo común.

Enfoque: poner foco en todos tus esfuerzos y habilidades para

trabajar en el compromiso asumido. Todo aquello que esté fuera de lo

comprometido a realizar, no debes preocuparte, alguien lo hará por ti o

lo tendrás que postergar. Esto último, de no ser así, tendrás la

responsabilidad de levantar la bandera a tiempo y buscar

redimensionar entre todos los interesados el alcance comprometido.

Coraje: un Equipo debe tener el valor para comprometerse, actuar y

ser honesto. Puesto que para llevar adelante nuestras

responsabilidades, se requiere de coraje para comunicar problemas,

identificar impedimentos, pedir, recibir y dar ayuda.

Auto-organizados: es la característica de un Equipo responsable de

dirigir y organizarse para alcanzar sus objetivos, comparte

colectivamente la responsabilidad de los resultados, y también es

capaz de controlarse y adaptarse para mejorar su propio desempeño.

Page 4: Desarrollo de software algunos tips para llegar a buen puerto...

Entregar valor

Esta es una frase que se lee y suena linda, sencilla… pero es algo difícil de

lograr y mucho más cuando se encaran proyectos con un enfoque

tradicional o predictivo, donde con tal de cumplir todo lo dicho, supuestos y

esbozado en el GANTT, se centran en un estricto control, en vez de

canalizar esos esfuerzos en adaptarse e ir transitando el camino del

proyecto enfocados en dar lo que más agregue valor a nuestros clientes.

Para este caso, siempre me viene a la cabeza la regla del 80/20 formulado

por Alan Lakelin, el cual se basó en los estudios de Pareto. Aplicado al

Desarrollo de Software, y en este caso a la entrega de valor, nos dice que:

“Del total de las características de un producto ó funcionalidades

solicitadas, existirá un 80% que No serán utilizadas o relevantes

(‘muchos triviales’), y existe un 20% que son el propósito del

desarrollo (‘pocos vitales’)”.

Entonces, es aquí donde la mejor estrategia empleada en la búsqueda de

este 20%, será la clave en el éxito de un proyecto, la más rentable y sobre

todo, a la larga, la más buscada por los clientes (les doy una pista:

metodologías ágiles).

Desechar los desperdicios

Muchas veces, suele ocurrir que venimos haciendo cosas de una forma porque es

parte de la cultura del entorno donde trabajamos o según dicen los libros,

Page 5: Desarrollo de software algunos tips para llegar a buen puerto...

etc. Pero si estamos pensando en entregar el máximo de valor a nuestros

Clientes, entonces tenemos que pensar primero qué cosas agregan valor a nuestro

proceso de trabajo, y aquello que insume un esfuerzo y No lo

agrega: Eliminemoslo o busquemos reducirlo lo más que se pueda. Por ejemplo:

Reuniones innecesarias, o reuniones necesarias, pero que se van de tiempo

más de la cuenta, ya sea por no tener un objetivo claro o no se encuentran

las personas adecuadas en la misma, no se comunicó puntos que se iban a

tratar, etc.

Funcionalidades o porciones de código que escapan al objetivo del requisito, o

que no estaban dentro de lo pactado, etc.

Tiempos de espera (o cuellos de botella), que identificamos en nuestro

proceso, ya sea por una comunicación poco efectiva o burocracia

(micromanagement), etc.

Aclaración: esta “limpieza” es recomendable hacerla de una manera

iterativa, y nos podemos ayudar de la técnica Value Stream Mapping.

Tomar las decisiones lo más tarde posible

Este tema va de la mano con el famoso “Cono de Incertidumbre”, lo cual

nos dice que tomar una decisión en etapas tempranas, con pocos datos,

basadas en suposiciones ó escenarios inciertos, puede que tenga un costo

de 4x o 0,25x, donde ‘x’ es el valor del costo que tiene la decisión que

tome.

Por lo general, en el Desarrollo de Software, solemos hacerlo al principio de

los proyectos o cuando asumimos fechas de compromisos con antelación

sin tener demasiados datos.

Page 6: Desarrollo de software algunos tips para llegar a buen puerto...

Entonces, evitemos tomar

decisiones o avanzar en

alguna tarea, cuando tengo

un escenario como el que se

mencionó anteriormente, y

busquemos retrasar lo más

que se puedan las mismas,

hasta tener mayor precisión.

Mejora Continua

Bueno, para ir finalizando, y no porque lo deje para el final a este tema

tiene menor importancia, sino todo lo contrario: la Mejora Continua (o

Kaizen), es una de las herramientas o estrategias que más me gustan y nos

ayudan para lograr prácticamente cualquier cosa, y no hablo sólo de la vida

laboral, sino también en lo personal.

A pesar que todo funcione bien, que lleguemos a nuestras metas, siempre

tenemos cosas por seguir mejorando, tanto individuales, como grupales,

por eso es importante darnos un tiempo de reflexión. Una de las maneras

que mejor se adecua en la Empresa, son las Retrospectivas. Las mismas,

son aplicadas en cada uno de los proyectos, como así también a nivel

general, donde todos podemos expresarnos y escucharnos qué cosas

venimos haciendo bien o nos gustaron en el mes, o aquellas que

deberíamos mejorar.

Es increíble cómo se aprende y cómo se crece rápidamente gracias

a este espacio que tendrá su costo en tiempo, pero una ganancia

multiplicadora al finalizar la reunión.

Page 7: Desarrollo de software algunos tips para llegar a buen puerto...

A pesar del contexto, del costo que implica salir de cierto “estado de

confort”, motivo por el cual no siempre, las cosas pueden ser aplicadas a

raja tabla, o sea, como lo dicen los libros o este post inclusive; Estoy

convencido que enfocándonos en ir consiguiendo de a poco estos puntos,

las cosas van a tender a un estado mejor y así lograr llegar a buen puerto.

Exitos!

Referencias: http://agilemanifesto.org/

http://www.wikipedia.org/

http://www.proyectosagiles.org/skills-equipo-agil