Agile Software Development Management Practice (1) - Make people's resources
Part 1
Project Management As an independent discipline, project management has developed many years and provides a rich theoretical basis for practices. The software development project management, although it is also the scope of traditional project management, but due to the characteristics of the software industry itself, many of the effective theories and methods have been proved in traditional project management theory, but they get software development project practice. It is often not expected. Where is this difference in project management and traditional project management of software development? This problem has many people in research and have rich results, consistent conclusions are: the essence of project management in software development is human management.
As the main one of the project management, people lead the success and failure of the entire project, so for software project development managers, it is necessary to attract enough attention to people - in software development, this will lead technology, efficiency, quality.
There is no difference in agile project management and ordinary project management, and it is not fully discussed in accordance with the plan - division of labor - implementation of three links, more is the author's discussion of some experiences. Software project management is also an important aspect of the entire software industry without "silver bomb". Many times, experience is more important than the theory. Many of the contents of the text may be able to generate some resonance for peers with practical project management experience. If so, this article plays a role in summing up experience. For those who have not yet achieved these experiences, the actual cases and scenes in this article can help enhance the sensibility of these readers.
Part 2 makes people more resources
The core resources developed by software projects are people, under certain project scale and capital scale, human resources are limited. The resources considered in the project are often placed in the number of people, but in practice, we are clear, the workload is decomposed and sum in the task. This means that there is a relationship between people and tasks. This relationship is the role.
1.1. Role (Role)
The role is an abstraction of the job task, which is different from the specific position. Under normal circumstances, roles and positions are multi-to-one relationship. Agile style project management believes that although the role undertaken in the product (software) development process, although there is its fixed side, it can give it more variations to change the mode of distribution. For example, the position of A is a project manager, but it is also an excellent designer, then it can be considered to bear two roles of project managers and designers.
In software development management, the role is actually very rich. Common roles such as: project manager, demand analyst, system designer, development engineer, test engineer. For large projects, such as J2EE-based projects, according to the skill needs in the actual project, various similar experts, such as human-machine interface engineers, deploy engineers, configuration administrators, DBA, etc.
Agile project management requires the role not fixed, one can hold multiple roles, so that the existing resources can be made to make full use of existing resources. Like the power resources of the grid, the existence and distribution of resources is sometimes difficult to change, but is it fully utilized to depends on how to schedule.
The role is a specific assignment object of the task in the project, from the character angle rather than the position of the resource, which is conducive to reasonable division of labor, maintaining the balance of resources. This is very meaningful for the situation where multiple items are parallel. We know that a company's DBA will not work too much. When you work in parallel, you may need DBA assistance, but from personnel preparation, DBA may only belong to a specific project group. How do I solve the distribution of resources at this time? Similarly, excellent architects will also be scarce resources for the entire company. How do we make these scarce resources play a greater role? Of course, it can be considered to solve this problem from human resources, such as the establishment of a special architect group independent of cross-project group, the overall design group. However, the actual situation is often the pace of reform of the human resource system, which will never fall behind in actual needs. Moreover, from the resource model itself, the resources are essentially bundled with the role rather than binding with the position. From the perspective of management, we hope that resources can be optimally utilized. Around human resources, actually take special mode of operation to achieve this. The method is that it is more than a lot of roles that make people have multiple assignable units. At this point, you can use the CPU multi-threaded to metaphor.
Case:
In 2001, the company had Milkyway and Apollo projects at the same time, and the two projects were e-government projects and were implemented in J2EE technology. At that time, the company was the first time to take over e-government project. Although there is a consideration for a large number of artists needed by the web page, it is only recruiting a suitable candidate. In the Milkyway project group, everyone knows the developer Alenic photography, in fact, a graphic production enthusiast, Photoshop master. When the American worker has become a factual development bottleneck, I put a suggestion for the leaders: Can Alen also act as a juvenile role? You can minimize Alen in the development task, so that he has another half of the time to make our work products beautiful. Later, I was discussed with Alen to make him a role in the United States, and he happily promised. I think, for a graphic production enthusiast, what else is more enjoyable than the things you like!
1.2. Virtual Team (Virtual Team)
Virtual is relatively reality. Once the virtual team was invented, it has been widely circulated on the Internet. The so-called virtual team refers to there is no actual organizational form, but there is a specific task objective; the team member is from all directions, but works for a common task goal.
The virtual team and the actual team are compared, the advantage is that the formation is flexible and the reaction is fast.
The actual team tends to set up according to the long-term mission goals, once established, members often have a fixed identity. For example, the project team often sets according to the task objective of the product module, in general, will always exist in the life cycle of the project. However, in the process of actual project work, there are many ways to work in the project group on the one hand. On the other hand, there are many short-term tasks that require dispatching resources. At this time, the fixed team is difficult to allocate the assignment of work tasks.
The virtual team is essentially based on the temporary composition of the resources. In front, we have passed the role to independently, and now we can focus on the independent resources through the task goals.
Case:
In Milkyway and Apollo, the Milkyway project is advanced to the development of 60% of the Milkyway project, the system's basic framework can basically be seen in the browser. At this time, architects discovered that the response of the system was very unsatisfactory, and this finding is not unexpected. Although the company took over the web-based project. According to years of experience, it is predicted that the performance bottlenecks that may exist. The current task is to immediately organize some experts to diagnose the accurate performance of the performance bottleneck and urge the project team members to adjust the code. But the problem is that the company's test engineers are not familiar with the performance test based on the web project, how to find additional resources? In addition, there is also a problem with performance issues from architecture and code, need to participate in system designers and developers that are most familiar with the system structure and code. At this time, the apollo project is entering the detailed coding start phase. According to the task allocation, the management feels that some designers can take part of the time to participate in the performance optimization of the Milkyway project. To this end, the Milkyway project performance optimizes the virtual team. Milkyway performance optimized virtual team
Composition member:
1. All Milkyway project development members and designers
2. Wiki and POLO in the Apollo project group (two experienced designers)
principal:
Wiki serves as the person in charge and organizer.
aims:
All-round optimization of Milkyway performance, reaching various system response time indicators recognized by customers
task:
1. Give the performance test report and performance optimization specific indicators for Milkyway projects within a week
2. Give a first phase optimization analysis report within three weeks
3. Continuous tracking performance, from the fourth week, give performance test report every two weeks
carried out:
1. All members of Milkyway need to cooperate with Wiki's organization, and accept the reasonable task of the arrangement
2. Milkyway project manager COBO assists Wiki arrangements
3. Test Department Manager Anny, with Wiki Arrange Test Equipment and Data Preparation.