Como NO parecer un Junior cuando te asignan una tarea (incluso siendo Junior)

Hola a todos, soy @sauloco Senior Fullstack Developer especialista en Javascript/Typescript que tiene debilidad por VueJS y todo el Jamstack.

He visto muchas veces la siguiente situación (y estado en ambos lados de la misma):

Project Manager (PM): - Necesito que crees una vista responsive que muestre toda la información de un Pokemon basado en la API de la Pokedex.
Junior Dev: + Ok, perfecto. (internamente: 😱 * se bloquea por no saber para donde ir *)

Si pensar en esta situación te genera un poquito de ansiedad, no te preocupes, te voy a dar algunos tips y herramientas que te van a servir.

1. Haz todas las preguntas que creas necesarias

Con el paso del tiempo cada vez menos preguntas te serán necesarias, pero siempre, repito, siempre tendrás dudas a la hora de comenzar con una nueva tarea, esto es normal y no depende de cuánta experiencia tengas.

Con el paso del tiempo verás que hay preguntas que se hacen para estar seguros, incluso cuando ya intuyas la respuesta.

2. Piensa "programaticamente"

Un PM puede incluir varias palabras en una oración como "responsive", "vista", "API" sin detenerse a pensar en que lo que está pidiendo involucra distintas tareas.

Ten un sistema claro para organizarlas como si fuesen un script mental. Una suerte de pseudocódigo propio donde puedas ordenar las tareas secuencialmente para que puedas analizar su complejidad individualmente.

Continuemos el ejemplo con tareas ficticias:

const result = fetch("pokemon api");
// PREGUNTA: necesito credenciales para llamar a dicha API o es publica?
// PREGUNTA: hay más de una version de dicha API? si es así, cuál version de la API debería utilizar?
if (result.error) {
  // PREGUNTA: qué debería hacer si el pedido a la API falla?
  return false;
}

const { data } = result;

const renderResult = render(data);
const responsiveRender = addResponsiveness(renderResult);

const finalResult = display(responsiveRender);

return finalResult;

Que preguntas le harias al PM para las tareas render, addResponsiveness y display? Comentalas abajo como si fuesen tu tarea.

3. Establece expectativas y vías de comunicación claras

Muchos equipos ya tienen mecanismos para resolver el feedback de una tarea, aprende a utilizarlos o propone una forma que te quede cómoda.

Cuándo vas a tener lista la evaluación de la tarea?
...en 2 horas? en 4 horas? Mañana?
No es tan importante cuándo, pero sí asegúrate de acordar un momento para revisar y asesorar a quien este solicitando los requerimientos con toda la información técnica que hayas podido recabar.

Junior Dev: + Perfecto, con todas las preguntas que te hice creo que en "X horas"/"mañana a X hora" voy a tener el panorama claro de qué se requiere para completar esta tarea.

Con el tiempo, la experiencia y haber hecho la misma tarea varias veces puede que logres hacer esto incluso en el momento, pero siempre deja en claro cuáles son los pasos a seguir y cuáles son tus recomendaciones técnicas.

Al momento de hacer la devolución técnica
Junior Dev: + La API es de acceso público pero requiere credenciales, quién solicitará las mismas?
La documentación de la version x.xx.xxx de la API se puede encontrar en https://docs.de-la-poke-api.com/x
....
Comenzare a implementar los pasos 1 y 2 mientras espero las respuestas 3 y 4.

Resumen

  1. Haz todas las preguntas que creas necesarias, si crees que no necesitas preguntar nada para generar la solución es porque todavía no has entendido bien el problema. Comienza a preguntar por ahí.
  2. Piensa "programaticamente", no eres un robot, pero puedes pensar como uno. Ordena tus ideas como si fuesen un script mental.
  3. Establece expectativas y vías de comunicación claras, que sepan cuándo y con qué vas a volver, mantén al PM/cliente lo más involucrado y al tanto posible.

28