1. Un poco de historia
Cuando en los años 90 la Internet-Revolución apenas comenzaba, nadie sabía cómo desarrollar correctamente los servicios de internet. Todas sus funciones se volvían accesibles a los usuarios de inmediato, lo que diferenciaba mucho este enfoque del desarrollo clásico de software.
El buscador más grande de esa época, Yahoo, decidió seguir un camino diferente y adoptar un enfoque de Hollywood – ¡incluso sus gerentes se llamaban productores :)! No es de extrañar que no les fuera bien 🤷♂️
Desde la Internet-Revolución, se han probado decenas de formas diferentes de desarrollo de software, y ahora la situación se ha estabilizado. Existen roles estándar con responsabilidades estándar, procesos estándar y software estándar.
En el proceso de aprendizaje vas a aprender todo lo que necesitas para trabajar en empresas IT modernas, con herramientas de desarrollo actuales. 🎓
2. Equipo de producto
Un equipo típico de desarrollo está compuesto por:
- Personas que deciden qué funciones y features debe tener el producto
- Product Owner
- Business Analyst
- Personas que deciden cómo será el aspecto del producto
- UI Designer
- UX Designer
- Desarrolladores que implementan todo esto
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Personas responsables de la calidad del producto
- QA Automation
- DevOps
Product Owner en desarrollo de software juega un papel clave, gestionando el producto y asegurándose de que el equipo de desarrollo se enfoque en las tareas más importantes. Él define la visión del producto, crea y prioriza la lista de tareas (backlog), ayudando a garantizar que cada fase del desarrollo esté alineada con los objetivos de negocio y las necesidades de los usuarios.
UX Designer se encarga de crear una interfaz de usuario cómoda y eficiente, lo que incluye investigar las necesidades de los usuarios, desarrollar prototipos y probar las interfaces. Este trabajo busca mejorar la interacción del usuario con el producto, para que sea lo más comprensible y cómodo posible.
DevOps-especialistas se dedican a optimizar los procesos de desarrollo de software y su gestión operativa, para acelerar y simplificar el lanzamiento de actualizaciones del producto. Su trabajo incluye automatizar pruebas, despliegues y monitoreo de sistemas, además de configurar la infraestructura y garantizar integración y entrega continua (CI/CD).
3. Equipo de desarrollo
El desarrollo directo lo llevan a cabo programadores. Se pueden dividir en aproximadamente 5 categorías:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Database Administrator
Los roles y sus responsabilidades pueden variar según el tamaño del equipo y la naturaleza del producto, pero la situación general es la siguiente:
- 🏗️ Software Architect: responsable del diseño de arquitecturas complejas de sistemas de software. El Architect desarrolla la infraestructura técnica, define la estructura y los métodos de interacción entre los diferentes componentes del producto, asegurando escalabilidad, rendimiento y seguridad.
- ⚙️ Backend Developer: especializado en el desarrollo de la parte del servidor de las aplicaciones. Sus tareas incluyen implementar lógica, integrar bases de datos y sistemas de gestión de datos, procesar solicitudes de usuarios y mantener la interacción con la parte frontend.
- 🖥️ Frontend Developer: desarrolla la interfaz de usuario de las aplicaciones web. Este rol requiere conocimientos en HTML, CSS y JavaScript, además de frameworks y librerías para crear interfaces interactivas y receptivas, que brinden una buena experiencia al usuario.
- 📱 Mobile Developer: se dedica a crear aplicaciones para dispositivos móviles. Desarrolla apps para diferentes sistemas operativos (por ejemplo, iOS y Android), considerando las particularidades de cada plataforma, el rendimiento de los dispositivos y la experiencia del usuario.
- 🗄️ DBA (Database Administrator): responsable de gestionar las bases de datos, asegurando su disponibilidad, seguridad y optimización. Realiza tareas de configuración, monitoreo y mantenimiento, además de desarrollar estrategias de respaldo y recuperación de datos.
GO TO FULL VERSION