You are not alone in the battle-Software Project Team Model

Source: Internet
Author: User

Abstract:
As the saying goes, "Three stinks are better than Zhuge powers "!
SoftwareDevelopment is a smart team. How to give full play to everyone's role and turn everyone's strength into a powerful project team is a key problem to be solved by the project team model.

Outline:
1. Traditional project team Model
2. Actual Project Team Model
3.MSFProject Team Model
4. Practical team Model
5. What is the appropriate project team model?

Body:

Traditional project team Model

What is a project team model? Simply put, it is how the project forms a team. The traditional team model of the software development project team is as follows:

 

The project team, under the leadership of the Project Manager, coordinates various roles and strives for the success of the project!

The specific responsibilities of each role are as follows:
Project Manager: coordinates the project as a whole, prepares the plan and ensures the implementation of the Plan, and promotes the success of the project.
System Analyst: analyzes system requirements to ensure that system requirements meet customer requirements while ensuring technical feasibility. guides the project technical solution and system architecture design.
Software DesignTeacher: refine the system design.
ProgramMember: Coding implementation design.
Test Engineer: test the system to ensure that the system meets the requirements.
Implementation engineers: deploy and debug the system,TrainingCustomer: assists the customer in promoting system launch.
Configuration ManagementPersonnel: Implements Configuration Management for work products throughout the project cycle.
QA: Quality Assurance engineers ensure that the development process complies with established requirements and work products comply with established specifications.

This traditional team model has two major features:
1. A team always has a head (this is also our inertial thinking), and this is the project manager.
2. Assume that various professional roles can coordinate the work and give full play to their respective strengths.

We hope that the project team can have a strong leader and a class of professionals to work together for the success of the project.

But is there such an ideal situation?
The project manager will complain about lack of capabilities, inactive reporting, and inactive liability ......
The project team members complain that the project manager is not strong enough to ask him to work, not to authorize him, and not to impart knowledge ......

Actual Project Team Model

The team structure of our actual project is usually as follows:

 

Compared with the ideal traditional model, the actual situation has the following major differences:

1. The project manager has multiple roles.
Many projects often do not have full-time system analysts and software designers, and project managers are alsoRequirement AnalysisAnd software design, and even need to be responsible for coding.
In the figure, the two roles system analyst and software designer are dotted boxes, indicating that these two roles are often just virtual spaces and it is difficult to implement specific full-time personnel.
The project manager has too many tasks to focus on.Project Management,Project PlanThe relevant documents can be free of charge, and the project design documents can be fewer.

2. test engineers and implementation engineers are inferior.
Testing engineers and implementation engineers in many companies are "inferior". Developers are naturally superior, while project managers are often promoted by developers, the Project Manager intentionally or unintentionally places test engineers and implementation engineers at a lower level. If the roles cannot work equally, the project team's combat capability will naturally be greatly affected.
There are two main reasons for this inequality: first, the inherent superiority of developers, and second, the overall level of our test engineers and implementation engineers is indeed not enough.
In fact, there is such an "inequality" in our company. I spent a lot of time creating an "Equality" atmosphere. My main methods are as follows:
1) Emphasize the importance of professionals in the project team through various channels.
2) try your best to improve the levels of test engineers and implementation engineers.

3. The configuration administrator, QA, and others may even be unavailable.
In the figure, the two roles are gray, which may be the most "gloomy" role in the entire project team!
Even better companies have configuration administrators, but they are often usedCompositionSome companies do not even have full-time configuration administrators. The project manager did not even think of configuration management. QA is a thankless and arrogant role. It can be said that it is the most "bad" position in the project team.
There are two main reasons for this situation: first, people think that these two positions are the least important, and second, our configuration administrators and QA levels are not enough.
The essence of configuration management is the management of various work products in the project life cycle. I think the project manager should play a greater role, our configuration administrator should embed it into the specific project to complete the work, instead of simply working with the principle of configuration management.
QA is indeed the most painful position. Excellent QA requires senior project experience, but most people with senior project experience are reluctant to do qa. How is it so difficult and contradictory!

To put it simply, the actual project team structure has the following serious problems:
1. The team's header cannot be dedicated project management.
2. Professionals in the project team are either missing or seriously unequal.

MSF project team Model

MSF is Microsoft solution framework. It is the methodology of Microsoft R & D activities.

The team model of MSF is very special, and it does not have the lead of the team:


 

This figure is from official MSF documents.

Microsoft's team has no project manager and consists of six types of roles: product management, program management, development, and test) release management and user experience ).

Roles are responsible for the following responsibilities:

Important features of this model:
1. There is no so-called project manager.
The role of the program manager can be said to be the closest to the project manager. He needs to prepare and track the implementation of the plan, but at the administrative level, he is not everyone's head, and everyone is equal, everyone is responsible for the work from different professional perspectives.
2. Emphasize that the project team is composed of experts.
Software development activities are high-intensity and challenging intellectual activities. We need all kinds of experts to coordinate our work. Every expert is equally important.
3. user experience is often ignored.
In short, the user experience is what the user feels when using the software. The color, layout, text, and behavior of the software directly affect the user's satisfaction with the software. At present, our domestic project teams often do not have a user experience design link or a full-time user experience designer.

The first time I learned the MSF team model, I was shocked. This model reflected the people-oriented development model and encouraged everyone in the team, however, this model is difficult to fully apply in actual work, mainly because:
1. The level of professionals varies.
My personal feeling is that the above six types of roles in China are arranged from high to low, roughly like this: development, Program Manager, product management, testing, release management, user experience, the user experience is basically blank. If the abilities of professionals are not equal, they cannot form a "Lead-less" team and give full play to their roles.
2. All professionals have not met the requirements.
Even for the highest-level development roles, our average level is far different from that of Microsoft, so we do not need to mention other roles.
3. Poor Team assistance capability.
Our team basically does not have "Team Work". Our education from small to large is basically not "Team Work" education.

MSF is often questioned by "too idealistic". The world described by MSF is just a utopia of software development. Does our actual situation determine the level of our project team? Can we establish a practical project team model so that our project team can continue to improve?

Practical team Model

I have led many teams, many of which are engineers who lead fresh graduates or who do not have much work experience. If the abilities of each person in the team cannot be well shaped, it is indeed impossible for the team to operate efficiently. In the early stage of the project, many things I did were to train everyone and improve everyone's level through specific project work.

Our computer-related education has not trained any qualified professionals, but our computer practitioners are passionate and striving for progress. Based on this situation, I think there should be a suitable team model for our project team to learn and then gradually play the role of various professionals.

We complain that our education system is useless. We need a practical team model to solve the current problems. The project team model in my actual project is usually as follows:

Roles must correspond to people one by one. A person can wear hats with multiple roles. A role may also be assumed by multiple people.
The model has eight roles: Project Manager, product manager, software designer, user experience designer, test engineer, implementation engineer, configuration administrator, and QA.
The preceding six roles are similar to the MSF program manager, Product Manager, Development, user experience, test, and release management roles.

I basically agree with MSF's project management philosophy, but I made some necessary adjustments to adapt to the actual situation.

1. Let people with strong comprehensive capabilities act as project managers.
This person may not be very strong, but as long as he is the most comprehensive person in the project team. In addition to leading the project team, the project manager needs to pay more attention to the growth of project members. Project managers should make full use of their participation in making decisions.

2. Each role is equally important.
Both test engineers, implementation engineers, configuration management, and QA are equal to developers. Even if it is a project manager, the project manager is only a little higher level than everyone else. This is also because the level of roles is not enough. We need a project leader.

3. Continuous summary and progress.
It's not terrible to make mistakes. You only need to be able to keep learning and constantly summarize and make progress. The entire project team is a learning and growth-oriented team. Everyone should be brave enough to take responsibility, not afraid of making mistakes, and make progress together when encountering problems!

4. Emphasize the importance of user experience.
User Experience is actually a very important task, but it is often ignored by us. The reality is that we basically do not have college education in terms of user experience, and companies have weak foundations in this regard. In my actual work, I will put the responsibility for user experience on the head of implementation engineers and test engineers, asking them to think about how to design the software from the perspective of customers. On the other hand, I will ask the project team members or myself to compile the user experience design documents for the entire project team to review. We hope that through this series of work, we can cultivate our own user experience designers.

What is a proper project team model?

In fact, there are no fixed standards, and various project management theories will have their own opinions. Whether it's a traditional team model or a team model of MSF, various theories are based on certain assumptions. When we apply this knowledge in our actual work, we should fully understand our current level and existing problems, adjust the model to appropriate situations, and continuously improve it in practical work.

In my experience, the following are important:
1. Although the levels and capabilities of each person in the project are inconsistent, they should be treated equally, and everyone is equally important to the project.
2. Persons with high levels and abilities should assume more responsibilities and have the responsibility to promote the improvement of project team members.
3. "learning, summary, and progress" are the basic features of each project team.
4. The roles of the project are actually flexible. However, the overall competence and level of all project personnel should cover eight roles of the practical project team model. If a role is missing or the level of a role is low, the project team should enhance the level of this role in a planned manner.
5. The workload and responsibilities of all members in the project team should be roughly equal.

Through this article, we hope to inspire you to build an efficient project team.

Author: Zhang chuanbo
Www.umlonline.org/school/

-------------------
Full text
If you think this article is helpful to you, please click "recommended". Thank you!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.