I suppose I need a higher skilled and self motivating environment.
Do I need to empower the developers to be the owners of a particular element within the development ?
I have abolished all carrot and stick milestones and deadlines nonsense - I've never seen anything valuable produced in such an environment. I need to prevent anything like this re-emerging.
How do I develop a credible software development environment?
The key to success is teamwork. If possible, create a project team that consists of six different roles, each with its own goals. By achieving these indivdual goals, the success of the project is most likely ensured. In this setup, a team model isn't an organizational chart. It doesn't define a hierarchical reporting structure. What it does does do is identify the different roles, responsibilites, and goals that go into making a project work.
By breaking a large team into a small, interdisciplinary teams. you can avoid confusion as to the status of a project, the lines of responsibility,and the elements of a project that might otherwise be overlooked. It also prevents duplicate work being done due to one person doesn't know what the other is doing.
If a team exceeds ten or more members, it is recommended to break them into specialty teams. Each smaller team focuses on a specific goal, and is responsible for different tasks. Members are assigned to each team based on their expertise in specific areas, and are accountable for the quality of results in that specific area. Since these teams work parallel to one another, productivity increases because efforts are synchronized. It also results in a better product because teams are held accountable for results, and can clearly see the project goals.
Ideally, a project team is made up of six different roles. By placing people in roles that best match their skills, the quality and chances of success for a project dramatically increase. The fundamental roles in a rpoject team are as follows:
1) Product Mangement
2) Program Mangement
3) Development
4) Testing
5) User Education
6) Logistics Mangement
Each role has different responsibilities, requires different expertise, and works toward a different goal. When team members succeed in these roles, the project itself succeeds. Team leaders can focus on achievement for their individual missions.
Team leaders should be entrusted with supervising, guiding, and coordinating the teams. Team members have clearly defined roles, which allow them to focus on specific areas of the project. At each phase of the development, one of the team model's roles is accountable for planning, managing, and executing the tasks associated with a particular milestone. They "own" the responsibility of ensuring that the team achieves a milestone.
It is the responsiblity of Product Management to see that the team achieves each phase of development. This role is responsible for identifying user needs, the business, problem, expected benefits of a solution, project vision, and the risks associated with the project. In managing the expectations of a product, Product Mangement ensures that expectations are clearly communicated to both the project team and the customer. This allows both customer and project team to have a shared vision of what the project entails.
Program Management is responsible for setting project design goals. In doing so, this role establishes what factors will determine the project's success, and what metrics will be used to measure this success. Program Management is also responsible for documenting the solution, researching th existing infrastructure that will be used with the product, and chronicling the success factors and metrics. This allows the team to see how well they are doing on the project, and the initial sepcifications that will be used in the product.
printable cards
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment