Miembros del equipo de software
En un equipo de software nearshore típico de DevOcho, tendremos las siguientes posiciones:
- Desarrolladores de Software - Estos son los constructores. Dependiendo del proyecto, normalmente se seleccionan según su experiencia y habilidades. Normalmente recomendamos al menos dos desarrolladores de software y no más de 4 por pod/equipo. En DevOcho, revisaremos los requisitos del proyecto y haremos la recomendación en cuanto al nivel de experiencia, habilidades y número de personas en el equipo.
- Diseñadores de UI/UX - si el proyecto tiene una interfaz de usuario o tendrá usuarios que la interactúen, recomendamos tener un Diseñador de UI/UX en el equipo. Los ingenieros son excelentes para hacer que las cosas funcionen, pero si somos honestos, a menudo las complican demasiado. El diseñador de UI/UX quiere que el software sea simple y hermoso. Trabajan para reducir los pasos y suavizar los bordes ásperos. El software construido con un diseñador de UI/UX en el equipo es pulido y divertido de usar.
- Scrum Master – La vieja máxima, “todo se alza y se hunde con el liderazgo”, también es cierta en los equipos de software. Los desarrolladores pueden emocionarse y “sobre-ingenierizar”, los diseñadores pueden trabajar en tareas en la secuencia equivocada para que los desarrolladores no tengan diseños. Los clientes a menudo son inexpertos en la gestión de proyectos de software. Todos los proyectos de DevOcho se ejecutan con la supervisión de un Scrum Master capacitado y experimentado.
- Ingeniero de Automatización de QA – Amazon es famosa por no contratar personas de QA para trabajar con sus equipos de software. Lo que funciona para una empresa con 1,5 millones de empleados no va a funcionar para su equipo mucho más pequeño de desarrolladores de software. Amazon tiene más de 35.000 desarrolladores de software y un adicional de 30.000 a 40.000 puestos de tecnología. Pueden especializarse y enfocarse en cosas únicas. Es diferente en un equipo de desarrollo Agile con 6 a 10 personas. Alguien necesita estar enfocado en la calidad. Dicho esto, creemos en automatizar el proceso de QA tanto como sea posible. Tenemos ingenieros de QA que construyen pruebas automatizadas para ejecutarse contra cada único cambio en el software.
- DevOps - Hay una famosa frase entre ingenieros de software, "funciona en mi caja". Esto se refiere a que las cosas funcionan en sus entornos de desarrollo pero luego no funcionan cuando el software se "implementa" para los usuarios. DevOps cierra esa brecha entre los desarrolladores y la nube. Nuestros equipos de DevOps mantienen pipelines de integración continua / entrega continua (CI/CD) que prueban y despliegan automáticamente el software a medida que se hacen cambios. Trabajan duro para asegurarse de que el software / sistema esté en línea y de que todo esté automatizado.
- Ingenieros de Aprendizaje Automático / Científicos de Datos - Es raro hoy en día que el software no tenga un componente de IA o aprendizaje automático. En DevOcho, los Ingenieros de ML y los Científicos de Datos analizarán tus datos y construirán modelos personalizados, o interactuarán con los grandes modelos de lenguaje a través del "ingeniería de prompts". Trabajan con DevOps y los Desarrolladores de Software para integrar esos modelos en el software terminado. La IA/ML puede aportar magia al software.
¿Es mejor tiempo parcial o a tiempo completo?
En DevOcho, seguimos un marco de trabajo Agile Scrum modificado que llamamos "El Camino DevOcho". Lo que eso significa es que trabajamos para asegurar que cada equipo sea capaz de entregar software sin necesidad de asistencia de una persona o equipo externo. Hay una gran cantidad de investigación de apoyo sobre este tema, pero para simplificarlo: es más rápido y a menudo más barato si el equipo no necesita esperar a que otra persona o grupo haga su trabajo. Las prioridades y objetivos del equipo están alineados cuando estás en el equipo.
En un mundo perfecto, eso significaría que todos los miembros del equipo de software solo trabajan en un solo proyecto a la vez, y si tu presupuesto lo permite, es nuestro método preferido. En la práctica, la mayoría de las empresas son más conscientes del presupuesto, así que colocaremos miembros del equipo en fracciones en un equipo. Estos roles en fracciones normalmente son Scrum Masters, DevOps y UI/UX. Los Scrum Masters a menudo se necesitan mucho en las primeras fases de planificación y luego pueden reducir su escala hasta el final del proyecto. Los diseñadores también a menudo necesitan su tiempo para ser adelantado, así que trabajarán más intensamente al principio de un proyecto y luego no se necesitan tanto hasta el final cuando los usuarios comienzan a realizar pruebas de aceptación de usuario más exhaustivas. DevOps típicamente trabajará mucho al principio configurando los entornos y las tuberías de construcción, pero puede ocasionalmente trabajar menos en medio del proyecto. Volverán a empezar al final a medida que el software se despliega a producción y pasa por las pruebas de aceptación de usuario.