Your SlideShare is downloading. ×
Desarrollo de software algunos tips para llegar a buen puerto...
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

553
views

Published on

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. …

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.

Lemondata - Blog: http://blog.lemondata.com.ar/?p=162

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
553
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Desarrollo de Software: algunos tips para llegar abuen puerto…Cuando me senté a bosquejar este post, me encontré con varios temas enla cabeza, y todos me parecieron interesantes; por eso decidí escribirlos enorden de aparición y comencé a extraer ideas. Finalmente me centre en laspalabras: desarrollar, software, equipo, valor de negocio, transparencia.Entonces me gustaría compartir, lo que pienso, son algunos puntos a teneren cuenta para el éxito en el Desarrollo de Software, más allá de latecnología empleada:VisibilidadAntes, estábamos acostumbrados a que ciertos mensajes, información opuntos claves para el Desarrollo de Software, sean gestionados por algunaspersonas con más años en la empresa, o responsabilidades diferentes a lanuestra (ej: tareas a realizar, próximas funcionalidades delproyecto/producto, estimaciones de las mismas, fechas de entregas,inconvenientes o atrasos, reuniones de definición con el o los interesadosdel producto, etc).Tal vez alguno de los puntos mencionados, está bien que sea gestionadopor las personas cuya responsabilidad la contempla, pero No está bien yestá más que demostrado, que el No dar participación y/o transparencia
  • 2. 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 encrónicos, y hasta parte de la cultura organizacional. Mala interpretación de los mensajes enviados por el cliente, y por talmotivo entrega de valor insuficiente o no deseado, aumento de re-trabajo, etc.Equivocarse lo más tempranoEs mejor descubrir que, lo que estamos desarrollando o lo que el clientesolicitó no es lo que esperaba, en etapas lo más tempranas posibles.Algunas veces solemos caer en el vicio de realizar muchos supuestos, yasea a través de documentaciones, dibujos, prototipos, etc; los cuales en sumayoría, buscan predecir requisitos o próximos escenarios y, por másilustrativos que sean, terminan siendo estáticos, alejados de la realidad odébiles para dar/tener la certeza de que realmente eso es lo que senecesita o lo mejor para nuestro cliente.Aquí aparece la necesidad de: Realizar entregas rápidas, para unfeedback temprano. Evitar suposiciones. Inspección/adaptación.El EquipoRespecto a qué es un equipo, características y sus objetivos, podremosencontrar cientos de artículos en la web, por eso me quiero centrar en loque en mi corta experiencia y en conocidos casos de éxitos demuestran sernecesarios, para lograr una mejor sinergia en un equipo de trabajo y estarmás cerca de arribar a los objetivos: Respeto: evitemos caer en entornos de gestión clásicos, dondesuperiores establecen quiénes son las personas que definen, dirigen,planifican y dictan las tareas a hacer y las asigna, y aprendamos a
  • 3. valorar, escuchar y respetar a las personas que forman el equipo detrabajo, ellos mejor que nadie podrán explicar qué tareas podránasumir y cómo lo podrán realizar, ofrecer sugerencias para mejorar yhasta inclusive crear los mejores diseños y productos. Pero como todoes un proceso evolutivo, donde tanto los superiores/líderes deproyectos, como cada miembro del equipo de trabajo, tendrá que irmadurándolo. Compromiso: entender que no es suficiente estar involucrado, sino irmás allá y estar dispuesto a comprometerse con un objetivo común. Enfoque: poner foco en todos tus esfuerzos y habilidades paratrabajar en el compromiso asumido. Todo aquello que esté fuera de locomprometido a realizar, no debes preocuparte, alguien lo hará por ti olo tendrás que postergar. Esto último, de no ser así, tendrás laresponsabilidad de levantar la bandera a tiempo y buscarredimensionar entre todos los interesados el alcance comprometido. Coraje: un Equipo debe tener el valor para comprometerse, actuar yser honesto. Puesto que para llevar adelante nuestrasresponsabilidades, se requiere de coraje para comunicar problemas,identificar impedimentos, pedir, recibir y dar ayuda. Auto-organizados: es la característica de un Equipo responsable dedirigir y organizarse para alcanzar sus objetivos, compartecolectivamente la responsabilidad de los resultados, y también escapaz de controlarse y adaptarse para mejorar su propio desempeño.
  • 4. Entregar valorEsta es una frase que se lee y suena linda, sencilla… pero es algo difícil delograr y mucho más cuando se encaran proyectos con un enfoquetradicional o predictivo, donde con tal de cumplir todo lo dicho, supuestos yesbozado en el GANTT, se centran en un estricto control, en vez decanalizar esos esfuerzos en adaptarse e ir transitando el camino delproyecto 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 formuladopor Alan Lakelin, el cual se basó en los estudios de Pareto. Aplicado alDesarrollo de Software, y en este caso a la entrega de valor, nos dice que:“Del total de las características de un producto ó funcionalidadessolicitadas, existirá un 80% que No serán utilizadas o relevantes(‘muchos triviales’), y existe un 20% que son el propósito deldesarrollo (‘pocos vitales’)”.Entonces, es aquí donde la mejor estrategia empleada en la búsqueda deeste 20%, será la clave en el éxito de un proyecto, la más rentable y sobretodo, a la larga, la más buscada por los clientes (les doy una pista:metodologías ágiles).Desechar los desperdiciosMuchas veces, suele ocurrir que venimos haciendo cosas de una forma porque esparte de la cultura del entorno donde trabajamos o según dicen los libros,
  • 5. etc. Pero si estamos pensando en entregar el máximo de valor a nuestrosClientes, entonces tenemos que pensar primero qué cosas agregan valor a nuestroproceso de trabajo, y aquello que insume un esfuerzo y No loagrega: Eliminemoslo o busquemos reducirlo lo más que se pueda. Por ejemplo: Reuniones innecesarias, o reuniones necesarias, pero que se van de tiempomás de la cuenta, ya sea por no tener un objetivo claro o no se encuentranlas personas adecuadas en la misma, no se comunicó puntos que se iban atratar, etc. Funcionalidades o porciones de código que escapan al objetivo del requisito, oque no estaban dentro de lo pactado, etc. Tiempos de espera (o cuellos de botella), que identificamos en nuestroproceso, ya sea por una comunicación poco efectiva o burocracia(micromanagement), etc.Aclaración: esta “limpieza” es recomendable hacerla de una maneraiterativa, y nos podemos ayudar de la técnica Value Stream Mapping.Tomar las decisiones lo más tarde posibleEste tema va de la mano con el famoso “Cono de Incertidumbre”, lo cualnos dice que tomar una decisión en etapas tempranas, con pocos datos,basadas en suposiciones ó escenarios inciertos, puede que tenga un costode 4x o 0,25x, donde ‘x’ es el valor del costo que tiene la decisión quetome.Por lo general, en el Desarrollo de Software, solemos hacerlo al principio delos proyectos o cuando asumimos fechas de compromisos con antelaciónsin tener demasiados datos.
  • 6. Entonces, evitemos tomardecisiones o avanzar enalguna tarea, cuando tengoun escenario como el que semencionó anteriormente, ybusquemos retrasar lo másque se puedan las mismas,hasta tener mayor precisión.Mejora ContinuaBueno, para ir finalizando, y no porque lo deje para el final a este tematiene menor importancia, sino todo lo contrario: la Mejora Continua (oKaizen), es una de las herramientas o estrategias que más me gustan y nosayudan para lograr prácticamente cualquier cosa, y no hablo sólo de la vidalaboral, sino también en lo personal.A pesar que todo funcione bien, que lleguemos a nuestras metas, siempretenemos cosas por seguir mejorando, tanto individuales, como grupales,por eso es importante darnos un tiempo de reflexión. Una de las manerasque mejor se adecua en la Empresa, son las Retrospectivas. Las mismas,son aplicadas en cada uno de los proyectos, como así también a nivelgeneral, donde todos podemos expresarnos y escucharnos qué cosasvenimos haciendo bien o nos gustaron en el mes, o aquellas quedeberíamos mejorar.Es increíble cómo se aprende y cómo se crece rápidamente graciasa este espacio que tendrá su costo en tiempo, pero una gananciamultiplicadora al finalizar la reunión.
  • 7. A pesar del contexto, del costo que implica salir de cierto “estado deconfort”, motivo por el cual no siempre, las cosas pueden ser aplicadas araja tabla, o sea, como lo dicen los libros o este post inclusive; Estoyconvencido 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