Software desde 0 – 5 – Levantamiento Inicial

Software desde 0 – 5 – Levantamiento Inicial

En los posts pasados entendimos porque la mayoría del software se hace en proyectos, y como la experiencia en la ejecución de dichos proyectos evoluciono a la utilización de procesos iterativos, y finalmente Agile. También vimos las etapas que se utilizan para ejecutar el proyecto, principalmente desde el punto de vista de Scrum.

Ahora nos enfocaremos ya en la ejecución. Veremos cuales son las actividades y un detalle de que se hace en cada una de esas actividades. Todo esto para que sepas que debes de realizar, y que información debes de tener, si te toca ejecutarlas. Ya sea como Arquitecto, Analista, Scrum Master o Desarrollador. Te recomiendo que aprendas bien estas técnicas, ya que son indispensables para cualquier programador.

Empezaremos entendiendo como nace un proyecto, y que necesitamos tener para poder empezarlo. Todo esto como parte del Levantamiento Inicial, o la creación del primer Backlog.

Como Nace un Proyecto

Ya sea un cliente, o un algo interno. Un proyecto nace con simple idea. Posteriormente esa idea se comienza a aterrizar. Se debe de transformar en una serie de necesidades o problemas que buscan solucionar. A final se debe de tener una idea muy clara de lo que se busca, para en ese momento acercarse al equipo de desarrollo para explicar la finalidad del proyecto.

Es típico que un cliente, o alguien de otra área te pida cotizar o estimar un Software, pero al hacerle unas simples preguntas, claramente no tienen idea de que es lo que quieren hacer, solo tiene una idea. Esto no es suficiente para poder estimar. Si es un cliente, y requiere que le ayudes a definirlo, es un trabajo de consultoría de Diseño de Producto (Product Design), y eso puede ser un proyecto cobrable por sí solo.

Para poder comenzar los estimados, la persona debe de poder responder estas preguntas:

  • ¿Quién va a usar el software?
    • Debe de tener claro quiénes son los diferentes usuarios que usaran el sistema. Es típico que no tengan claro todos estos roles que son necesarios para que funcione.
  • ¿Qué va a hacer cada usuario en él Software?
    • Se debe de aclarar que actividades va a poder hacer cada usuario. Y la secuencia lógica, y reglas de negocios que existirán en cada interacción.
  • ¿Qué conexiones va a tener él Software?
    • Cada vez es más común hacer sistemas conectados. Y este tipo de conexiones muchas veces son la principal limitante. Se debe de tener explicito que conexiones se necesitan para poder definir la viabilidad del desarrollo.

Si el cliente puede responder esas preguntas, significa que el proyecto está lo suficientemente aterrizado como para poder continuar con un Levantamiento. En este buscamos definir un estimado del alcance, y poner en papel los Roles, Historias y Conexiones que se van a hacer. Si el cliente busca un alcance fijo, tienen que ser muy explicitas. Si es un proyecto por consumo de horas, solo es necesario definir las más (Lowest Hanging Fruit) importantes para comenzar.

Como hacer el Levantamiento Inicial

La intención de un levantamiento inicial es comenzar a entender lo que el cliente busca hacer con el software. Necesitamos entender el requisito a un nivel suficiente para poder armar el Presupuesto de horas. Ni con muy poco detalle, que haga que nuestra cotización se quede corta con la expectativa del cliente. Ni con exceso de detalle, que te tengas que volver un experto en el proceso del cliente. Debe de ser algo que puedas hacer entre 1 y 2 horas, dependiendo del tamaño del proyecto.

Para esto, la mejor manera es seguir el proceso de las 3 alturas. Entender primero el proyecto desde 30,000 pies, luego desde 20,000 pies, y finalmente desde 10,000 pies. Estos números basados en las alturas en las que vuelan los aviones comerciales. Es decir, entenderlo a nivel muy general, e ir expandiendo como vamos bajando, para finalmente poder aterrizarlo. Y esto funciona así:

30,000 pies – Las Necesidades

Entender el proyecto de 30,000 pies, significa darnos una idea muy general de lo que se está buscando. Igual que cuando un avión puedes ver que un desierto necesita agua, aunque apenas lo puedas ver. En un proyecto la intención es tener ese entendimiento muy general de para que haga falta el proyecto. Para esto debemos de comenzar la conversación solicitando que nos den una idea general de se busca con el proyecto. Para esto podemos hacer preguntas como:

  • ¿Cuál es la principal razón para hacer él proyecto?
    • Esta primera y mas importante pregunta. En ella el cliente debe de ser muy claro en poder definir que quieren lograr a nivel general.
    • Ten cuidado si esta respuesta es muy larga, porque usualmente significa que es un proyecto demasiado grande, que debería de separarse en múltiples proyectos, o que la persona no tiene claro que es lo que busca.
  • ¿Para quién es el proyecto?
    • Es importante identificar a las personas que participaran, aunque solamente sea desde un nivel general.
    • La mayoría de las veces hacemos software mejorar procesos de negocio, pero estos procesos deberán de poder generar reportes para gerencia y dirección. Todos son personas que usarán el sistema.
    • El ¿Quién? pueden ser personas, o áreas completas en una empresa.
  • ¿Qué necesidades queremos cubrir, que problemas queremos solucionar en nivel general? ¿Qué es lo que más duele?
    • Cuáles son las principales necesidades, o cuales son los principales problemas que se buscan solucionar con el proyecto.
    • La intención de esta pregunta empezar a bajar el requerimiento para llegar al siguiente nivel, pero todavía desde un contexto general.

El resultado de entender el requerimiento desde 30,000 pies es poder escribir el primer párrafo de un documento de alcance, que se le llama la Necesidad, o la Misión. Este debe de ser uno o dos párrafos que indiquen la intención principal del proyecto. No debe de hablar de mucho detalle, ni de cosas específicas. Con esta información podemos bajar al siguiente nivel.

20,000 pies – Los Objetivos

Desde lo 20,000 pies de altura, uno comienza a ver ya la forma de las construcciones, se comienzan a identificar las calles, se empieza a ver sobre que estamos volando. De la misma manera aquí debemos de empezar a desglosar lo que se busca, con la finalidad de tener muy claros cuales son los Objetivos que busca cubrir el proyecto. Esto igual lo trabajamos con el cliente y podemos utilizar preguntas como:

  • Si tuvieras que poner en un listado. ¿Cuáles son las necesidades o problemas, indispensables, que deseamos cubrir?
    • La intención de esta pregunta es que el cliente empiece a ser mas especifico con lo que desea hacer. Es importante que se comience en un listado, porque nos obliga a desglosar las cosas para entenderlas mejor.
  • Por cada punto del listado: ¿Quiénes son las personas, o áreas, que tiene la necesidad o problema [X]?
    • Ya que tenemos las necesidades, es importante ponerle nombre a la persona o área que tiene la necesidad.
  • Por cada punto del listado. ¿Qué pasa si no podemos cubrir el objetivo [X] para la persona [Y]?
    • Esta pregunta es para identificar que cosa realmente es un objetivo, y que cosas serian bueno tener (nice to haves). Porque no es lo mismo hacer una lista a Santa Claus, que hacer una lista de cosas para ir a acampar. Unas las necesitas, las otras te gustarían.
    • Solo deben de quedar en el listado cosas que sean indispensables, y que si no se tienen no sirve de nada el proyecto.
  • ¿Cómo funcionaría el sistema para cubrir cada una de estas necesidades o problemas?
    • Con esta pregunta otra vez empezamos a bajar de altura el requerimiento. Empezamos ahora si a entender a detalle que es lo que se necesita.

El resultado de entender desde 20,000 pies es poder hacer un listado, que va en el documento de alcance como Los Objetivos, no deben de ser mucho un máximo de 6 o 7 puntos principales. Este debe de ser un listado muy claro de que necesita cumplir el proyecto, para que se considere exitoso.

10,000 pies – El Alcance

Muy bien. A los 10,000 pies es cuando en un avión te piden apagar tu celular, cerrar la mesa y enderezar tu asiento, en resumen, planear el aterrizaje. Como consultores de Software, ya entendimos la Necesidad, ya listamos los Objetivos, y es hora de planear el aterrizaje. Esto es, empezar a aclarar todo lo que se tiene que hacer como parte del proyecto, principalmente, todo lo que vamos a desarrollar. Todas estás tareas deben de estar enfocadas en cumplir alguno de los objetivos, aunque sea a manera de cadena.

Esta documentación es mucho mas larga que el la Necesidad y los Objetivos, ya que deberás de definir todos los Roles, Historias de Usuario y Escenarios de comunicación. No es algo que vayas a hacer durante la junta, pero es importante dejes la junta con toda la información, de preferencia escrita, de lo todo lo que necesites para documentarlo. Para esto necesitas extraerle toda la información al cliente.

En el siguiente Post veremos a detalle todas las técnicas e información que necesitas tener, para que puedas ir armando el sistema en tu cabeza y puedas aterrizarlo ya en el listado de Historias y los Escenarios de Comunicación, que serán los puntos principales para formar tu Backlog. El nivel de detalle con el que tienes que hacer esto dependerá del tipo de proyecto.

Resumen

Recuerda que todas estas son guías, no reglas de como hacer el levantamiento. Lo importante es poder extraer la información del cliente o Product Owner, para poder comenzar a definir un alcance, o un Backlog inicial. En toda conversación usa tus habilidades de conversación para que el cliente se sienta cómodo, y te ofrezca cada vez más detalle.

Comenzamos el Post platicando como nace un proyecto, y cuales son las preguntas mínimas para saber si el cliente tiene el proyecto lo suficientemente pensado como para comenzar a hacer un estimado, o cotización. Las que te deben de poder responder es:

  • ¿Quién va a usar el software?
  • ¿Qué va a hacer cada usuario en él Software?
  • ¿Qué conexiones va a tener él Software?

Luego vimos el proceso de como empezar un levantamiento inicial con el cliente, con el proceso de las 3 alturas.

  • Lo primero es entender el proyecto desde 30,000 pies, para poder escribir la Necesidad, un pequeño párrafo que explique para que se está haciendo el proyecto. Para podemos ir usando las siguientes preguntas.
    • ¿Cuál es la principal razón para hacer él proyecto?
    • ¿Para quién es el proyecto?
    • ¿Qué necesidades queremos cubrir, que problemas queremos solucionar en nivel general?
  • Segundo, entenderlo desde 20,000 pies, para poder crear un listado de los Objetivos. Este listado nos dice que son las cosas que debe de cumplir el proyecto para que sea exitoso.
  • Finalmente, desde 10,000 pies. Crear ya un detalle de alcance, definiendo los Roles, Historias y Escenarios de Comunicación.

Deja un comentario

Close Menu