Professional Documents
Culture Documents
Introducción
La clase de hoy va a estar orientada a nuestras tareas como PMs para con el equipo de
desarrollo. Como idea general, debemos proveer visión sobre el producto, es decir, comunicar
qué vemos en el futuro de ese producto. Luego, existen otras tareas que vamos a llevar a cabo,
pero esa es nuestra razón de ser.
Product Roadmap
¿QUÉ ES?
Según Marty Cagan en su libro “Inspired”, como PMs debemos responder a esta pregunta
fundamental: ¿en qué deberíamos trabajar con nuestro equipo de producto? Con equipo de
producto se refiere al equipo de desarrollo.
Esa pregunta se responde fácilmente con un product roadmap, que consiste en un diagrama de
Gantt en el cual ponemos todos los logros que tendrá el equipo con el tiempo. Es una
herramienta de planificación y visibilidad.
La definición de product roadmap que da el autor del libro es que se trata de “una lista
priorizada de features y proyectos en los que tu equipo estará trabajando. A menudo esos
product roadmaps se analizan por trimestre o anualmente” . Por esto último es que generalmente
se propone un gantt para mostrarlo.
● Provee dirección al proyecto: la claridad con la que se exponen los logros en el tiempo
hace que todos los miembros, internos y externos al equipo, tengan visibilidad respecto
a lo que sigue.
● Unen los objetivos del negocio con la estrategia del producto: cada reunión de review
que hacemos con los stakeholders del proyecto demuestra en qué estuvimos trabajando,
por consiguiente, se puede plantear en ese espacio la necesidad de alinear objetivos,
viendo en el roadmap las diferencias entre objetivos.
● Ayudan a priorizar: como es la visión futura, la decisión respecto a qué tomar en el sprint
se decanta sólo por lo que diga el roadmap.
● ¡No sólo se trata de features y fechas de entrega! Se ponen los logros, eso significa qué
objetivo de negocio vamos a estar alcanzando. Por ejemplo: “Aumentar un 10% la
cantidad de usuarios con la nueva landing page”.
¿CÓMO ARMAR UN PRODUCT ROADMAP?
En algunos casos, los roadmaps vienen armados desde el management, es decir, los arman los
stakeholders, y nosotros/as nos adaptamos a una visión más táctica del corto plazo. En otros
casos, depende enteramente de nosotros/as.
Abrimos en A y B el armado del roadmap, porque podemos ser PMs que trabajen en una
empresa donde se desarrolle el producto a lanzar directo al mercado, o bien seamos parte de
una agencia que vende el servicio de PM a otra que lo requiere. Entonces, a veces este/a PM
tercerizado/a, además de presentar el roadmap para que todas las partes entiendan los
objetivos en el tiempo, debe dar una visión de costos del proyecto. Esta última tarea
tradicionalmente la cumplen los Project Managers, pero si esta figura no está en mi equipo la
debo cumplir yo.
Tomemos como referencia que B es un PM que trabaja en la empresa que desarrolla su propio
producto. A, en cambio, es un PM tercerizado, y debe demostrar tiempos y costos del proyecto.
1. Brief.
A. Requerimientos del cliente.
B. Ideas de funcionalidades para personas usuarias.
2. Pantallas y objetivos.
A. Definir lista de pantallas y sus componentes. Evaluar con el cliente.
B. Definir los objetivos de negocio a cumplir
3. Presupuesto en tiempo y costo.
A. Envía los costos a la persona que nos contrata de la otra empresa.
A y B. En esta instancia, el cálculo es en base a la experiencia de desarrollar
funcionalidades similares. Se introduce en el gantt la conclusión.
El resto de los pasos son para A y B. Son fases de ejecución, porque hasta aquí tuvimos que
lograr que se acepte nuestra propuesta de planificación. Luego de aceptada, en las etapas 4, 5,
y 6, lo diseñamos, desarrollamos, testeamos y publicamos.
4. Pre-producción.
Wireframes.
Diseño de base de datos.
API
5. Producción.
Diseño final (mobile y desktop).
Maquetación.
Backend.
Frontend.
6. Testeo y publicación.
Testeo y publicación: se testea en el servidor donde se desarrolla, generalmente en un
“ambiente” que es un sitio o app de pruebas, llamado “ambiente QA”, o “ambiente de
testing”, o “staging”. Luego publicamos al store de apps, o directamente subimos
actualización de la web.
Organización
EL PROJECT MANAGER
Los conocimientos del idioma de la tecnología, así como tareas específicas de planificación de
desarrollo, son competencias fundamentales que tienen que diferenciar al perfil del Project
Manager.
HISTORIAS DE USUARIO
Las historias de usuario -también llamadas user stories en inglés- definen una funcionalidad: en
una sola frase, debe quedar claro quién (rol) hará una acción (objetivo), para satisfacer una
necesidad (motivación). El título de una historia de usuario debe mapear una funcionalidad de
nuestro producto o software.
Supongamos que vamos a lanzar una funcionalidad de reproducir una canción en Spotify:
● Título de la historia: reproducción manual de canción
● Descripción: como oyente premium, quiero apretar el botón play para poder escuchar mi
canción favorita al instante.
En el mejor de los casos, no creamos una historia de usuario para frontend y otra para backend,
sino que el corte de funcionalidad debería ser transversal. En el ejemplo de Spotify, no es que
hago una historia que desarrolle el ícono de play, y en otra la búsqueda del audio de la canción
cuando el botón es apretado, sino que esa historia contiene ambas partes.
Brief
Es el instrumento que define los objetivos comerciales y de comunicación de un desarrollo,
empresa o campaña, sintetizando datos previamente elaborados, estableciendo acciones a
realizar, y definiendo las responsabilidades de los involucrados. Se utiliza en marketing y en
desarrollo de software.
Generalmente, trabajando en proyectos y productos -ya sea en una empresa donde se desarrolle
algo propio, o como agencia tercerizada- vamos a toparnos con briefs, o directamente
tendremos que crearlos.
En el ejemplo anterior, podemos encontrar la información súper resumida de qué, cómo, cuándo
y quiénes deberían llevar adelante ese proyecto. Obviamente, con este documento no alcanza
para ponerse a trabajar, necesitan reunirse las partes para aclarar cada punto.
INTERACCIONES CON EL EQUIPO
Durante el proceso de empezar un nuevo proyecto, en el cual ya hay un equipo asignado,
tenemos que conversar el brief en profundidad con el mismo. Los 3 tips sobre interacciones que
debemos tener en el equipo son:
1. Validar el brief con el equipo de trabajo.
2. Ser flexibles al conversar con el equipo de desarrollo; puede que este equipo sugiera
cambios que impacten sobre el brief, y en tal caso habrá que tomarlos en cuenta, y
desafiarlos con la persona que armó el brief.
3. Dar el máximo nivel de detalle posible: luego del brief, debemos crear las historias de
usuario que profundicen cada punto del brief. Para ello, utilizamos herramientas
colaborativas como JIRA, Mural, Trello, Asana, Excel, YouTrack, etcétera.
PRE-PRODUCCIÓN
Llamamos pre-producción al proceso previo de programar el código del producto que queremos
lanzar. Antes de comenzar con esa tarea de desarrollo, debemos asegurarnos de aspectos de
diseño de flujos UX, y de arquitectura de software. Es decir, si damos startup a un proyecto, esta
pre-producción se hará continuamente, cada vez que quiera generar una nueva funcionalidad.
Será necesario, antes de trabajar en cada funcionalidad, diseñar los siguientes aspectos:
● Wireframes.
● Arquitectura de APIs.
● Bases de datos.
WIREFRAMES
Los wireframes son representaciones esquemáticas de los elementos que formarán parte de la
interfaz de usuario. Son esquemáticas porque no se trata de los elementos definitivos de la
interfaz, sino que son componentes genéricos, que en el diseño de alta calidad se van a
reemplazar.
Cada API tiene endpoints, que te entregan diferente información. Por ejemplo, la de Google
podría tener estos endpoints:
RegistroUsuario
Nombre
Apellido
Dni
Url donde hizo click
Fecha y hora
ip
loginAdmin
User
pass
traerListaUsuarios
fecha_desde
fecha_hasta
Si mi sistema necesita traer el DNI, le pregunta a Google desde su API, y a su vez consulta al
endpoint RegistroUsuario. Esos endpoints se escriben en formato ruta, del tipo
API/RegistroUsuario.
Lo que debe hacer el equipo antes de encarar el desarrollo del proyecto, es saber a qué APIs va
a tener que conectarse para desarrollar las funcionalidades, y qué APIs debe construir para
nuestro producto. Con estas últimas, entregará la info necesaria para que los flujos se puedan
completar.
Ejemplo
Nuestro equipo debe generar un esquema como el de la imagen para saber cómo se van a
relacionar entre sí, y que de esta manera:
● No se duplique información.
● Se cuide la economía del sistema.
● Sean encontrables los datos.
● Sea completa la información para los objetivos del negocio, y para la salud del sistema.
PRODUCCIÓN Y PROGRAMACIÓN
Con las tareas de pre-producción terminadas, estamos listos para diseñar en alta calidad la app
o web y para programarla.
LENGUAJES DE PROGRAMACIÓN
Esta debería ser la última etapa de un proceso en el cual hicimos la tarea previa para que la
funcionalidad la desarrollemos una sola vez. Esto no significa que luego no se pueda mejorar, al
contrario: una mejora también debe pasar por el proceso de pre-producción, aunque será más
rápido que el de una funcionalidad o producto nuevo.
¿QUÉ ES LA PROGRAMACIÓN?
Es el proceso de escribir instrucciones para la computadora, en el formato y sintaxis que el
lenguaje de programación requiere, a fin de que se realice determinada acción. Se trata de
escribir la solución a un problema factible de ser resuelto por una computadora. La
computadora resuelve el problema, no nosotros.
Programar es comunicar, porque al escribir una solución debo tener en cuenta que otra persona
que también programa debe poder interpretarla y modificarla.
FRONT-END Y BACK-END
En el universo de la programación, se suele hacer una diferenciación entre desarrollo front-end y
back-end, según las funciones que cumple:
● Front-end: maquetación, lógica visible de un sitio web. Es lo que puede ver un cliente, y
con lo que interactúa.
● Back-end: desarrollo de APIs del lado de los servidores y bases de datos. Se conecta la
base de datos con la interfaz de la web/app.
Si bien pareciera que al desarrollar sólo el frontend de un sitio el mismo ya está completo, por
ejemplo, no entenderíamos si se terminó pagando un producto, tampoco si se generó una orden
para determinada cosa. Todo eso lo resuelve el backend.
*HTML y CSS son lenguajes, pero no de programación. Sirven para dar estructura y estilo al sitio.
FRAMEWORKS
Ejemplos: online banking de los bancos, accediendo desde el sitio web, plataforma
Coderhouse, pedidosYa.com, mercadolibre.com, etc.
Ejemplos: la mayoría de las apps conocidas actuales entran en esta categoría. Es muy
raro que una red social o app conocida no sea nativa. Por ejemplo: Instagram, Tik Tok,
etc.