At this post I will describe my point of view about the Team Management, and in depth Software Development Teams. How we must build a team for:
Having work rules simply to understand and accept by the team.
Working efficient: capacity to measure the development time and take decisions to improve.
Covering many projects at same time by the same team.
Geographically distributed team.
Metodology necessary to schematize many stages which concludes in the final product. In y proffesional experience, agile methodologies are which do better approach to the reality . I will based on:
Scrum agile development for any kind of product, it defines roles, and the way to reproduce measurable iterations, needed meetings,...
eXtremeProgramming more specific methodology for applicatiions development, defines the way to automatize tests, version control, requirements, collective code,...
The methodology gives us:
tasks to do on each stage
Sequence to make every stages
Roles in the team (share the methodology tasks):
Master: Watch for the fullilement of the methodology, teach it. Defines priorities, roles, projects. Orchestation. Get things for the team.
Commercial: First contact with the client. Watch the profitability of the whole commercial proccess.
Architect: it decides technologies, and teach them. It builds the system wich supports the Architecture.
Quality (Tester): This decides the technologies for QA development, and teach them to the team. This builds the quality support system (CI, TDD, SVN).
Analyst(Product Manager): This defines the user requirements, converts them to diagrams easy to understand by the programmer, prioritizes the tasks(maximizing the ROI) and makes demos for the user. Maximize the usability.
Project manager: planning the iterations, version control, sharing the tasks. Maximize the regularity of the team and coherent tasks sharing.
DB programmer: DB development, to minimize duplicity.
Business programmer: This develops the business libraries, to maximize the reuse (APIs & WS)
Front-end programmer: this develops the web screens, to maximize the usability.
The pairs Master-Commercial, Architect-Quality, Analyst-Manager can be adopted as three roles. It depends on the number of persons in the equipment and how you want to do the things.
Programmer roles are the same as technologies implies the architecture, being the enumerated the basics (Flash, design, ...). They can be joined in an alone person too:
mngmt.png27.4 KBTools are which help to the team to work with methodology.
System: network (ADSL), Operating system (Ubuntu: OpenOffice, browser...)
En este artículo describiré mi forma de ver la gestión de equipos de desarrollo de software en particular. Como se debe articular un grupo de desarrollo de Software para:
Tener una forma de trabajo sencilla de entender y aceptar por el equipo
Trabajar de forma eficiente: capacidad de medir el tiempo de desarrollo y tomar decisiones para mejorarlo
Cubrir varios proyectos a la vez por un mismo equipo
Equipo distribuido geográficamente
Metodología es necesaria para esquematizar una serie de etapas que concluyen el producto final. En mi experiencia profesional, son las ágiles las metodologías que se acercan más a la realidad. Me basaré en:
Scrum desarrollo ágil de cualquier tipo de producto, define roles, y forma de reproducir las iteraciones medibles, reuniones necesarias ...
eXtremeProgramming metodología más específica al desarrollo de aplicaciones, define forma en la que se deben automatizar pruebas, control de versiones,requisitos, código colectivo,...
La metodología nos aportará:
Labores a desarrollar en cada etapa
Secuencia en la que se cumplen esas etapas
Roles en el equipo (reparto de las labores de la metodología):
Master: Vigilar el cumplimiento de la metodología, enseñarla.Define prioridades, roles, proyectos. Orquesta. Facilita cosas.
Comercial: Primer contacto con el cliente. Vigila que todo el proceso comercial sea rentable.
Arquitecto: Decidir tecnologías, enseñarlas. Construir el Sistema de soporte Arqo
Calidad (Tester): Decidir tecnologías, enseñarlas. Construir el Sistema de soporte Calidad (CI, TDD, SVN)
Analista(Product Manager): Determinar requisitos del usuario, convertirlo a esquemas entendibles por el desarrollador, priorizar dentro tareas (maximizando el ROI) y hacer demo al usuario. Maximizar la usabilidad.
Gestor de Proyectos: planificación de iteraciones, versiones de aplicaciones, reparto de tareas entre miembros del equipo. Maximizar regularidad del equipo y reparto coherente de tareas.
Programador de BD: desarrollo de BBDD para mínima duplicidad.
Programador de Negocio: desarrolla las librerías de negocio para máxima reutilización (forma de APIs y WS)
Programador front-end: desarrollo de las pantallas web para máxima usabilidad
Las parejas de roles Master-Comercial, Arquitecto-Calidad, Analista-Gestor se pueden definir como tres roles distintos. Depende del número de personas en el equipo y de como se quieran hacer las cosas.
Roles de programador habrá tantos como tecnologías implique la arquitectura, siendo los que se definen atrás los básicos (Flash, diseño web, ...). También se pueden combinar en una sola persona.
mngmt.png27.4 KBHerramientas son las que van a ayudar al equipo trabajar conforme a la metodología.
Sistema: red (ADSL), Sistema Operativo (Ubuntu: OpenOffice, navegador...)
At this section I will describe my point of view about the Team Management, and in depth Software Development Teams. How we must build a team for:
Having work rules simply to understand and accept by the team.
Working efficient: capacity to measure the development time and take decisions to improve.
Covering many projects at same time by the same team.
Geographically distributed team.
Metodology necessary to schematize many stages which concludes in the final product. In y proffesional experience, agile methodologies are which do better approach to the reality . I will based on:
Scrum agile development for any kind of product, it defines roles, and the way to reproduce measurable iterations, needed meetings,...
eXtremeProgramming more specific methodology for applicatiions development, defines the way to automatize tests, version control, requirements, collective code,...
The methodology gives us:
tasks to do on each stage
Sequence to make every stages
Roles in the team (share the methodology tasks):
Master: Watch for the fullilement of the methodology, teach it. Defines priorities, roles, projects. Orchestation. Get things for the team.
Commercial: First contact with the client. Watch the profitability of the whole commercial proccess.
Architect: it decides technologies, and teach them. It builds the system wich supports the Architecture.
Quality (Tester): This decides the technologies for QA development, and teach them to the team. This builds the quality support system (CI, TDD, SVN).
Analyst(Product Manager): This defines the user requirements, converts them to diagrams easy to understand by the programmer, prioritizes the tasks(maximizing the ROI) and makes demos for the user. Maximize the usability.
Project manager: planning the iterations, version control, sharing the tasks. Maximize the regularity of the team and coherent tasks sharing.
DB programmer: DB development, to minimize duplicity.
Business programmer: This develops the business libraries, to maximize the reuse (APIs & WS)
Front-end programmer: this develops the web screens, to maximize the usability.
The pairs Master-Commercial, Architect-Quality, Analyst-Manager can be adopted as three roles. It depends on the number of persons in the equipment and how you want to do the things.
Programmer roles are the same as technologies implies the architecture, being the enumerated the basics (Flash, design, ...). They can be joined in an alone person too:
mngmt.png27.4 KBTools are which help to the team to work with methodology.
System: network (ADSL), Operating system (Ubuntu: OpenOffice, browser...)