It has been a long time since I have received this request to write an article about the importance of the project leader in software development project management. Before expounding on this subject, first, I would like to clarify the two words in the title. One is Management. It is often regarded as taking charge of the people: authority. The other is Leader. The leader in a software development team is always referred to as the project manager: the authorities. Those meanings are the things I always intend to mitigate when I act as a project manager. To my understanding, Management means managing the development team, and Leader means leading the developers, or setting an example for the developers.
Now, let's get back to the topic of the importance of the project leader. In my opinion, the project leader is likely to be the combination of Scrum Master and Agile coach. From the beginning I would say that everyone plays an important role in the software development project. This article focuses on how important the project leader is; likewise, we can write another article to discuss the importance of the developer. As Agile development is becoming popular these days, people get to know "self-organized development team" and the project leader is considered as unnecessary in an self-organized team. However, I don't agree. It is a misunderstanding of Agile, especially in the software development industry. In a profitable IT company, it is impossible to build a self-organized development team from the start. It takes a long time for the project leader to assist the team step by step: from team building, communicating and collaborating, to delivering the high-efficient work. There is a lot of work for the project leader before the team achieves high-efficiency, while the team is concentrating on two key points in software development management: Quality and High-efficiency.
Next, I want to talk about the responsibilities of the project leader from my own experience.
Firstly, building a team. As is known to all, a project leader is often the first member of a team, rather than adding a project leader to a team already consisting of several developers. The project leader also needs to know what technologies are used in the project and what developers are suitable for the project in the early phase of teambuilding.
Secondly, creating a good team culture. Whether actively cultivated or not, a team has its own culture. Therefore, as a project leader, you are required to build a good team culture. For example, team members should be honest and transparent. The project leader should be open to being challenged from other team members. The team members should learn and share with each other.
Thirdly, serving as the Agile coach.
a. Help the team to define an appropriate development process, for instance, starting from a basic procedure, and then making improvements gradually
b. Establish code standard and make team rules
c. Improve quality awareness of software delivery in the team, proposing TDD in the project (Test-Driven Development)
d. Lead the team members to be self-managed
e. Train the team members to become efficient, with the increased use of CI (continuous integration) and automated scripts
f. Co-ordinate project resources and shield the team from external disturbances
g. Make the team members think in the clients' business pespective and help the clients to solve the business problems
Fourthly, quick response to clients, and actively solve the problem.
Last but not least, there is much more to do before a team becomes self-organized. Just like how there are no two identical leaves in the world, different teams cannot not developed in the same way, and the importance of the project leader is to make adjustments according to various situations.