Paulonia Development Handbook

Roles

En esta sección explicamos los diferentes roles manejados dentro de esta área. Nótese que los roles descritos no son excluyentes e.g. Un desarrollador puede ser un desarrollador senior, y al mismo tiempo ser team lead y project lead.

Team lead

Persona encargada del área de desarrollo en Flutter. Tiene las siguientes responsabilidades:

  • Asigna los roles de cada miembro del equipo de backend.
  • Se encarga de que todo el equipo siga el manual presentado.
  • Introducción de nuevas tecnologías y tendencias al proceso de desarrollo.
  • Organizar eventos y/o reuniones dentro del área de desarrollo en Flutter.
  • Documentar y mejorar los procesos de esta área.
  • Fomentar la exposición de esta área.

Por estas razones un team lead debe contar con las siguientes características:

  • Debe de ser un programador Senior o un Mid-level casi Senior.
  • Conocimiento de metodologías ágiles.
  • Tener conocimiento del funcionamiento de todas las áreas dentro de la empresa.
  • Tener habilidades blandas: Principalmente buenas habilidades para comunicarse con el equipo y/o otras personas dentro y fuera de la empresa, tener cualidades de líder, y tener un buen manejo de su tiempo.

Project lead

Persona encargada de guiar un proyecto en específico. Tiene las siguientes responsabilidades:

  • Crear las épicas y las tareas correspondientes a un proyecto.
  • Asignar las tareas de a los miembros del equipo.
  • Revisar a lo largo del sprint que se cumplan con las tareas de todos los miembros.

Debe contar con las siguientes características:

  • Debe de ser un programador Senior o un Mid-level casi Senior.
  • Conocimiento de metodologías ágiles.
  • Buenas habilidades de comunicación.

Desarrollador junior

Puede realizar las siguientes tareas:

  • Implementar interfaces de usuario dado un diseño.
  • Implementar los widgets generales del proyecto.
  • Realizar interfaces responsive.

Para entrar en esta categoría debe tener los siguientes conocimientos:

  • Bases de la programación en dart.
  • Programación orientada a objetos.
  • Colecciones de dart (List, Set, Maps and Queues).
  • Bases de la programación asíncrona en dart (async, await and futures).
  • Diferencias entre stateful y stateless widgets y cuando usarlos.
  • Qué es el BuildContext
  • Cómo agregar paquetes.
  • Los widgets más básicos (Scaffold, Row, Columns, Containers …).
  • Sistemas de control de versiones (git y github).

Desarrollador mid

Puede realizar lo que un desarrollador junior y las siguientes tareas:

  • Utilizar un manejador de estado para agregar la lógica de negocio a las interfaces.
  • Realizar interfaces interactivas y reactivas.
  • Escribir tests para controladores e interfaces.

Para entrar en esta categoría debe tener los siguientes conocimientos:

  • Conocer lo básico de los manejadores de estados usados en la empresa (Getx, BLoC)
  • Cómo funcionan los repositorios o controladores con la lógica de negocio.
  • Routing en Flutter.
  • Un buen conocimiento de los widgets de Flutter.
  • Animaciones en Flutter.
  • Las bases del uso de streams en Flutter.

Desarrollador senior

Puede realizar lo que un mid-senior y las siguientes tareas:

  • Crear repositorios y/o controladores con la lógica de negocio.
  • Crear la estructura de un proyecto.
  • Evaluar y mejorar el rendimiento de una aplicación.
  • Crear el flujo de una aplicación.
  • Saber sobre manejadores de estado.
  • Tests de integración
  • Lanzar una aplicación a producción.

Para entrar a esta categoría debe tener los siguientes conocimientos

  • Programación asíncrona en dar avanzada (streams, isolates, event loops).
  • Conocer sobre el funcionamiento del backend (Firebase services).
  • Conocer la mayoría de widgets en Flutter.