The four Ps in software project management

In daily software development, many people may think that as long as the technical strength is sufficient, there is no need for any software project management. But as everyone knows, software project management plays a vital role in the whole software project, and even may be related to the survival of the software project. According to one survey, 70% of project failures are caused by poor management, not lack of technical strength.

What are the four most important factors in software project management?

In the following article, we will explain four important factors in software project management: people, Product, Process and project.

I. The importance and definition of project management

1. Importance (two stages)

(1) Mid-1970s

(1) 70% of project failures are caused by poor management, not lack of technical strength;

(2) Management is a factor that affects the overall software development project, while technology is only a local factor.

(2) The mid-1990s

A Survey on the Implementation status of Software Engineering in the United States:

①10% of projects can be delivered within the predetermined cost and schedule;

② Software project management has become one of the most important core problems in software project development.

2. Definition of software project management

(1) Definition

Software project management is an activity to analyze and manage cost, personnel, schedule, quality and risk in order to make software projects complete smoothly.

(2) Objects

Software engineering projects, which cover the scope of the entire software engineering process.

(3) When (i.e. when to do project management)

This management should begin before the technical work begins, continue as the software progresses from concept to implementation, and end when the software engineering process is finally completed.

Two, four elements of management 4P

1. Four Elements of Management (4P)

  • People — an important factor in a successful project;
  • Product Product – software to be developed;
  • Process — software engineering framework activities that include tasks, milestones, work products, and quality assurance points;
  • Project – All the work needed to develop the software

2. Factors that influence the final result in the software project

  • The size of the
  • Deadline for submission
  • Budget and Cost
  • Application field
  • Techniques used
  • System constraints
  • The user needs
  • Resources available

3. Issues concerned by project management

  • Product quality
  • Risk identification and management
  • To measure the
  • Cost estimate
  • The project schedule
  • Communicate with customers
  • Members of the project
  • Other resources
  • Project monitoring

PS: The content of 4P will be analyzed in detail below.

Iii. Types of Participants (People)

Project participants generally include the following types:

  • Senior managers: responsible for defining business problems;
  • Project (technical) managers: must plan, motivate, organize, and control software developers;
  • Developer: The expertise required to develop a product or application;
  • Customer: the person responsible for stating the requirements related to the software to be developed and other risk takers;
  • End users: Once the software is released as a product, end users are the people who interact directly with the software

Summary: (1) Senior managers, namely those who define business problems; (2) Project managers, namely those who manage software development; ③ Developers, that is, people who use technology to develop software; (4) customers, that is, people who put forward software requirements and bear certain risks; ⑤ End users, that is, the people who interact with the software.

Iv. Project Team Structure (PEOPLE)

1. Three general group organization forms of the project

(1) Democratic Decentralized (DD)

(2) Controlled Decentralized (CD)

(3) Controlled Centralized (CC)

2. Explanation of group structure

(1) DD (democratic decentralization) : there is no fixed person in charge, which is suitable for projects with high difficulty, long delivery period and long survival period. It is most suitable for solving problems with low modularity because communication is needed;

In layman’s terms: there is no responsible person, only horizontal communication, which requires extensive pairwise communication between members.

(2) CD (decentralized control) : there is a fixed person in charge. If there is a sub-person in charge, the communication between the sub-person in charge and the general person in charge is vertical, while the communication between individuals is horizontal, which is suitable for the project with a long and relatively simple delivery period;

In popular terms: there is a fixed responsible person, members need to communicate with each other, and members and responsible persons also need to communicate with each other; If there is a sub-leader, the member communicates with the sub-leader, and the sub-leader communicates with the general leader.

(3) CC (centralized control) : the communication between the person in charge and team members is vertical, which is suitable for solving the project with strict delivery deadline, simple and high degree of modularization

Colloquially speaking: there is a fixed responsible person, members do not communicate with each other, only with the superior communication.

Note: CD and CC both require a fixed person in charge, while DD does not. And will produce fewer defects than DD.

3. Communication paths between project team members

As can be seen from the figure above, the more project team members, the more communication paths.The communication path calculation formula is:


C n 2 = n ( n 1 ) 2 . n Represents the number of members of horizontal communication C_n^2=\frac{n(n-1)}{2}, where n represents the number of horizontal communication members

4. Factors to be considered in the selection of team structure

For a group, the following factors should be considered in choosing an appropriate structure:

  • The difficulty of the software project to be solved;
  • The size of the program produced, measured in lines of code or function points;
  • The amount of time group members need to work together (group lifetime);
  • The degree of communication required for the project;
  • The extent to which problems can be modularized;
  • The quality and reliability required by the system to be built;
  • The rigor of the delivery date

5. Think about the questions

Q1: A company has 21 employees. How many communication paths will be generated when the organizational structure is divided according to DD, CD and CC? Assume that you are divided into four groups in CD and CC mode and draw a rough organization chart.

A1:

Given belowNo child responsible personandHave children in chargeFrame diagram of:

Now, if YOU think about it a little bit, it’s split between CD and CCFive groupsHow many communication paths are there? What about the organizational structure? Leave your answers in the comments section

V. Software scope and Problem decomposition (Product)

1, the trailer

What should you know before starting a project?

(1) Prior to project planning, the software developer and the customer must work together to define the purpose and scope of the product, consider alternative solutions, identify technical and management constraints;

(2) Without such information, it would be impossible to make reasonable (accurate) cost estimates, effective risk assessments, appropriate project task division or manageable project schedules;

(3) Software scope is the first activity of software project management.

Use the following figure to further understand the scope of the software.

The contents of the circle, the software scope, determine what the project will do; Then not in the circle, first put aside, that is, should not do the content do not do.

2. Determination of software scope (demarcation of problem boundaries)

(1) context;

(2) Information target;

(3) Function and performance

3. Problem decomposition (determine the functions of each part)

(1) Divide and rule;

(2) The software functions described in the scope must be evaluated and refined to provide more detail before the estimation begins. Because cost and schedule estimates are functionally oriented, some degree of decomposition is often useful.

Vi. Process

1. General stage

(1) The general phases of the software process (definition, development, and support) apply to all software projects;

(2) The problem is to choose a process model suitable for the software to be developed by the project team.

Review the process model mentioned in the previous article:

  • Linear sequence model (waterfall model)
  • The V model
  • Prototype realization model
  • RAD model
  • The incremental model
  • The spiral model
  • Formal method model

2. Selection process model stage

The project manager must decide which process model is most appropriate for the project, so consider the following factors when selecting a process model:

(1) the customers who need the product and the personnel who will do the work;

(2) Characteristics of the product itself;

(3) The project environment of the software project team.

3. The process model stage has been determined

(1) When a process model is selected, the project team defines a preliminary plan based on a set of common process framework activities;

(2) Once the initial plan has been established, process decomposition can begin, i.e. a complete plan must be established to reflect the work tasks required in the framework activities;

(3) Work tasks must be adapted to the specific needs of the project; The framework activities are always the same, but the work tasks are selected according to a number of adaptability criteria.

Vii. Duality of Product and Process

As can be seen from the figure above, the horizontal coordinate represents the process and the vertical coordinate represents the product, that is, each product has its corresponding series of processes. Therefore, in a project, both product and process are equally important, and no one can do without them, which reflects the duality of product and process.

Viii. 5W2H Principle of the Project

The project’s 5W2H principles include the following:

  • WHY — WHY was the system developed? (Business purpose)
  • WHAT — WHAT will you do? (Project Tasks)
  • WHEN — WHEN do you do it? (Milestones)
  • WHO — WHO is responsible for a function? (Roles and responsibilities)
  • WHERE — WHERE is their organization located? (Definition of role responsibilities)
  • HOW — HOW will the work be performed technically and managed? (Management and technical Strategy)
  • HOW MUCH — HOW MUCH is needed for each resource? (Resource Allocation)

Write it last

After reading the above article, ask yourself the following questions:

Analyze the following specific project situation, select the appropriate team structure (CC, CD, DD) and software process model, and analyze the reasons.

Q1: In an information systems organization, you are assigned as a project manager. Your job is to develop an application similar to something your team has done before, only on a larger scale and more complex. The requirements have been documented by the customer.

A1: This project is larger and more complex, but it has been done before, so THE team structure of CC is chosen. At the same time, in the last sentence, it is said that the requirements have been documented by the customer, that is, the requirements have been specified and the waterfall model can be used. However, this project is a larger one and the technical risk is low because it has been done before, so the RAD model can also be used for development. (CC, RAD/ Waterfall)

Q2: You are assigned as a project manager for a small software product company. Your job is to create a breakthrough product that combines virtual reality hardware with sophisticated software. Because the home entertainment market is so competitive, there’s a lot of pressure to get this done.

A2: Because it is a breakthrough product and there is a lot of pressure to complete the work, and because the modularization degree of the project is low, members need to be closely combined and communicate in pairs, so DD structure is chosen. Since the project has a breakthrough product with high risk, spiral model is selected for development. (DD, spiral/increment)

Q3: You’ve been assigned as a project manager for a large software product company. Your job is to manage the development of a new version of the company’s widely used word processing software. Because new gains must be obtained, tight deadlines have been set and made public.

A3: (CC, increment /RAD)

Q4: You have been assigned as a project manager in a company serving the field of genetic engineering. Your job is to manage the development of a new software product that speeds up the breakdown of genes. The work is research and development oriented, but the goal is to produce products in the following year.

A4: (DD, spiral/Formal method model)

  • Public id: Monday Laboratory
  • If this article is helpful to you, remember to leave a comment on star