Software Project Management
15.1 Why Software Projects Need to Be Managed
15.1.1 Why Software Projects Must Be Managed
Why should a room full of smart engineers need a manager? Picture this: a civil engineer walks onto a bridge site and sees instantly how much of the structure stands. A software manager walks into a room of programmers typing away and sees... nothing. No half-built product, no visible progress. If that invisible work is not planned, tracked, and guarded against trouble, it will drift. That is why professional software development is never left to hope — it is managed.
Software project management is an essential part of software engineering. Projects need to be managed because professional software engineering is always subject to various factors, including organizational budget and schedule constraints. The project manager's job is to make sure the project meets and overcomes these constraints while also delivering high-quality software.
Constraints (the invisible walls). Every software project is built inside walls set by the organization: a budget (how much money the company is willing to spend) and a schedule (how much time the company can wait). Professional software is never developed with unlimited time and money. The project manager's core job is to deliver the software while meeting and overcoming these constraints — that is, working within them wherever possible and arguing for more room where they are unreasonable.
One honest warning before anything else: good management cannot guarantee project success. That statement was repeated for a reason — it is the first thing a manager should accept. However, bad management usually results in project failure. When management fails, the software may be delivered late, it may cost more than the originally estimated cost, or it may fail to meet the expectations of the customers in terms of the requirements, features, and services they asked for. None of those outcomes require spectacular incompetence; ordinary bad management is enough.
The asymmetry of management (an analogy). Think of a soccer coach. A great coach cannot guarantee a team will win the championship — a star striker can get injured, the referee can make a bad call. But a team with a bad coach loses far more often than its talent would suggest. Management is the same: it is not a guarantee of success, but it is a powerful lever. Bad management reliably converts an achievable project into a failed one — late, over budget, or missing what the customer actually needed.
15.1.2 Success Criteria for a Software Project
The success criteria for project management vary from project to project, but for most projects the important goals are:
- Deliver the software to the customer at the agreed time. On-time delivery is an important criterion.
- Keep the overall cost within budget. Time (the schedule) comes first, then cost.
- Deliver software that meets the customer expectations.
- Maintain a very coherent and well-functioning development team — this is the people dimension.
The triple constraint. These four goals line up with the triple constraint you have seen before: good, fast, and cheap. In any engineering project you can pick any two of these — a project can be good and fast but not cheap, or cheap and fast but not good — and the third one always suffers. The triple constraint is the classic success criterion, and the fourth goal adds the team itself: quality, cost, budget, and maintaining the team. A project that hits schedule, cost, and quality but burns out the whole team is not a full success, because there is no team left for the next project.
These success criteria are not unique to software engineering. They are the goals of all engineering projects of whatever size they may be. A bridge project, a shipbuilding program, and a small internal tool all want the same four things. What makes software different is not the goals but the path to them, which is the next topic.
15.1.3 Student Questions and Answers
Q: Have you heard about situations where projects are a little late or have gone beyond the budget due to budget and schedule constraints — projects delivered late or at a higher budget because of the features to be included or the bugs to be fixed?
A: One or two projects. That is good, which means most of your projects are on time and within budget. That is great. Most of the class's projects are on time and within budget, despite the challenges. So a late or over-budget project is common enough in the industry to be worth asking about, but it is not inevitable — which is exactly why project management exists.
Recap + bridge. A software project must be delivered on time, within budget, meeting customer expectations, and without destroying the team — and while good management cannot guarantee these, bad management almost guarantees the opposite. The goals are shared with all engineering; what is different about the software path to those goals is the subject of the next topic.
Real-world connection. Every large software company — from product firms shipping consumer apps to consultancies building custom systems for banks and governments — runs a formal management structure around its projects for this reason. The stakes are concrete: a late delivery can mean a penalty clause triggered, a contract lost, or a competitor reaching the market first. The four success criteria are the same yardstick used in project reviews, in which senior management asks one question about every project: is it on time, on budget, meeting expectations, and is the team intact?
15.2 Why Software Project Management Is Uniquely Challenging
Software engineering differs from other types of engineering in a number of ways that make software project management particularly challenging. There are three big differences: the product is intangible, projects are often one-off, and software processes are not standardized.
15.2.1 The Intangible Product
The product is intangible. A manager of a shipbuilding or civil engineering project can see the product being developed. If a schedule slips, the effect on the product is visible — parts of the structure are still unfinished. Software cannot be seen or touched. Software project managers cannot see progress by looking at the artifact that is being constructed. Instead, they rely on other people to produce evidence that they can use to review the progress of the work.
The invisible-progress analogy. Imagine managing a construction site where the building is invisible. You cannot walk around and count completed floors; the only way to know the state of the project is to ask the workers and look at their reports, drawings, and test certificates. That is software management every single day. Where a civil engineer sees a half-built bridge, a software manager sees progress reports, demos, and test results assembled by the team — and must judge whether they are honest and complete. This one difference changes the whole feel of managing software: a civil engineer walks a site and knows instantly where the project stands; a software manager must trust evidence produced by others.
15.2.2 One-off Projects and Rapid Technological Change
Large software projects are often one-off projects. Every large software development project is unique because every environment in which software is developed is in some ways different from all others. Even managers with a large body of previous experience may find it difficult to anticipate problems.
On top of that, rapid technological changes in computing and communications technology can make previous experience obsolete. Lessons learned from previous projects may not be readily transferable to new projects, as far as project management is concerned, because each project is unique. A manager who ran three successful client-server projects in the 2000s cannot simply replay that playbook on a cloud-native, microservices project today.
15.2.3 Non-standardized Software Processes
More often than not, software processes are not standardized. They are variable and they are specific to the projects, and most often sometimes to the organizations. The engineering organization here means any organizational unit, including the development team, the business unit, or the organization as a whole.
The engineering process for some types of software systems — say a banking system or an ERP system — might be better understood than some new projects that are based on new technologies. In civil engineering construction, the engineering process for typical systems like bridges and buildings is very well understood. But in software, different companies use different kinds of software development processes and each project varies. We cannot reliably predict when a particular software process is likely to lead to development problems. We saw earlier, when discussing software process improvement, that the goal is to try to remove bottlenecks — but even then, we do not know in advance where they will appear.
This is especially true when the software project is part of a wider systems engineering project, or when completely new software is being developed with no prior experience or knowledge to rely upon.
What makes these three differences hard to manage. Because the product is intangible, progress can be misreported or misread. Because projects are one-off, the manager cannot lean on "last time we did this, here is what happened." Because processes are not standardized, the manager cannot rely on a mature, repeatable production line — every project needs fresh estimation, fresh risk judgment, and constant re-checking. Put together, these mean the manager must manage evidence and people rather than things you can point at.
Because of these issues, it is not surprising that many software projects are late, over budget, and behind schedule. Software systems are sometimes new, very complex, and technically innovative. Given all these difficulties, it is perhaps quite remarkable that so many software projects are delivered on time and to budget.
One nuance worth keeping: software does not hold a monopoly on lateness. Other engineering projects — civil engineering, transportation systems, building roads — take years when they were estimated at two years, and they are complex and innovative too, especially when they involve a complex set of flyovers. The point is not that software is uniquely late; it is that the reasons for lateness in software are much harder to see in advance. A late bridge is visibly late; a late software project can look on-track until the final weeks.
15.2.4 Student Questions and Answers
Q: Are your projects ever delivered late or over budget, given that software projects are one-off and processes are quite variable?
A: Only one or two projects in the experience of the class. Most projects were delivered on time and within budget, despite all the challenges. The fact that most projects still succeed despite intangibility, novelty, and non-standard processes is a sign that disciplined management makes a real difference.
Recap + bridge. Software is intangible (you cannot see progress), one-off (past experience does not transfer cleanly), and built with non-standardized processes (you cannot predict where problems will appear) — so the manager manages evidence and people instead of a visible artifact. Because the job varies so much with circumstances, the next topic asks: what factors decide how a given project must be managed?
Real-world connection. These three differences are why the software industry invented lightweight evidence-generation practices around project management — demos, build-and-test pipelines, dashboards, and definition-of-done checklists. Product companies such as Google and Microsoft and consultancies alike use them precisely because nothing about the software itself is visible, and because each project is unique enough that trust has to be rebuilt with fresh evidence every time.
15.3 Factors That Shape How Software Projects Are Managed
It is impossible to write a standard job description for a project manager. The job description of a software manager varies tremendously, depending on the manager, the software being developed, and other factors. Some of the most important factors that affect how software projects are managed are company size, the customer, software size, software type, organization culture, and the development process.
The tailoring analogy. Think of a tailor measuring a customer before stitching a suit: the same activity — making a suit — looks completely different for a child, an athlete, and a corporate executive. Project management is the same craft applied to very different situations. The six factors below are the "measurements" a project manager takes before deciding how formal, how documented, and how heavy the management approach must be.
15.3.1 Company Size
Small companies can operate with informal management and informal team communications. They do not need formal policies and management structures, and they have less management overhead than larger organizations. In larger organizations, by contrast, there are a lot of management hierarchies, various levels of formal reporting, and detailed budgeting and detailed approval processes that must be followed for the software development process. All of that becomes the responsibility of the software project manager.
15.3.2 Customers
Each customer is different. If the customer is an internal customer — as in a software product development company, where the customer may be the marketing department — then customer communications can sometimes be informal. There is no need to fit in with the customer's way of working or adopt their standards.
But if you are developing custom software for an external customer, an agreement has to be signed: more formal communication channels, periodic reporting, and documentation. And if the customer is a government agency, the software company must operate according to the government agency's policies and procedures, which are likely to be quite bureaucratic — heavy documentation and lots of meetings.
15.3.3 Software Size and Software Type
Software size matters. Small systems can be built by small teams that simply get together in the same meeting room, discuss progress and other management issues, and each person does their coding, testing, and system building. For large systems, the project manager has to coordinate the activities of teams across countries and across companies, arrange for them to communicate with each other periodically, and ensure that meetings are productive and lead to progress in the project.
Software type is an important factor too. If the software being developed is a consumer product — like a Google product or a Microsoft product — formal, detailed records of project management decisions are often not kept. On the other hand, if it is a safety-critical system like an automotive control system, all project management decisions must be recorded and justified in detail, because these decisions may affect the safety of the system.
How far management must go depends on the stakes. A consumer app can afford lightweight management because a wrong decision costs little more than a buggy release. A safety-critical system — an automotive braking controller, a flight control system, a medical device — must justify every management decision in writing because a mistake can cost lives. The same manager may run two projects in completely different styles purely because of software type.
15.3.4 Organization Culture and Development Process
Organization culture depends on whether you are in a small or large company. Some organizations have a culture based on supporting and encouraging individuals; others are small-group-focused. Large organizations are often bureaucratic — you have to deal with various levels of people. Some organizations have a culture of taking risks, whereas some large organizations are risk-averse. You might have an innovative idea you want to try out to provide a solution. It may be risky, and there may be a risk of failure in the project — but still your manager might encourage you to go ahead and do it.
Finally, no software development process is the same as another. Large, plan-driven, bureaucratic processes require management monitoring to ensure that the development team is following the defined process, often in order to achieve software process improvement. Agile processes typically operate with very lightweight management and overhead.
| Factor | Small / light setting | Large / heavy setting |
|---|---|---|
| Company size | Informal management, low overhead | Hierarchies, formal reporting, approval processes |
| Customer | Internal customer, informal communication | External or government customer, signed agreements, bureaucracy |
| Software size | Small team in one room | Teams across countries and companies to coordinate |
| Software type | Consumer product, few formal records | Safety-critical system, every decision recorded and justified |
| Organization culture | Risk-taking, individual encouragement | Risk-averse, bureaucratic, group-focused |
| Development process | Agile, lightweight management | Plan-driven, management monitoring of process compliance |
15.3.5 Student Questions and Answers
Q: Have you worked with large-scale government projects of the city, which are typically bureaucratic, with a lot of documentation and a lot of meetings?
A: Not yet. You need to experience the real taste of software engineering by working on those projects. Things are not so easy. Working to a government agency's policies and procedures — heavy documentation, many meetings, formal reporting — is where a developer truly meets the constraint side of software engineering.
Q: Does your manager encourage you to take risks, even in a large organization — to experiment with an innovative idea and see if it works, even though it may cost time and money at the risk of failure?
A: Sometimes they are willing to take risks. Organization culture decides this: some organizations support and encourage individuals and accept the risk of failure, while others are risk-averse — so the same innovative idea can be welcomed in one company and blocked in another.
Recap + bridge. There is no single standard project manager job: company size, customer, software size, software type, organization culture, and development process each change how formal, how documented, and how heavy management must be. Yet underneath all this variety, every project manager performs the same set of universal activities — the next topic.
Real-world connection. These factors explain real industry differences: a product startup (small company, internal customer, consumer software, risk-tolerant culture) runs on lightweight agile management, while a systems integrator building a government railway control system (large company, bureaucratic customer, safety-critical software) runs a heavily documented, plan-driven operation. A project manager moving between these worlds changes management style completely — the six factors are the reason.
15.4 Universal Project Management Activities
Even though project managers in different organizations work in quite different ways, a number of fundamental project management activities are common to all organizations, no matter how detailed or how informal their approach is. These universal activities include project planning, risk management, people management, reporting, and proposal writing.
15.4.1 Planning, Risk Management, and People Management
Project planning: the project manager is responsible for planning, estimating, and scheduling project development, and assigning people to tasks. The project manager supervises the work to ensure it is carried out to the required standards, and monitors progress to check that development is on time and within budget.
Risk management: project managers have to assess the risks that may affect the project, monitor these risks, and take action when problems arise.
People management: project managers are essentially going to manage the team members — the people. They have to choose people for their team, recruit them, train them, establish ways of working that lead to effective team performance, and ensure those ways of working are being adhered to.
15.4.2 Reporting and Communication
Project managers periodically write reports on various aspects and report to the leadership and senior management on the progress of the project. They have to report to the customers, and they have to report to their managers in the company — the developing organization. They also have to communicate at a range of levels: from detailed technical information to the team, to management summaries for top leadership. They have to write concise, coherent documents and reports that abstract detailed critical information from various project reports, and present this information using graphs and other tools during progress reviews in project meetings.
Invariably, project managers spend much of their time in meetings, either with their team or with their management, because they are responsible for reporting progress to their team and to the management above them.
15.4.3 Proposal Writing and the Bench
Very often, in between projects, a manager will be asked to write a proposal for a new project. Proposal writing may be the first stage of a project: writing a proposal to win a contract to carry out an item of work or development work. The proposal describes the objectives of the project and how it will be carried out. It usually includes cost estimates and schedule estimates, and justifies why the project contract should be awarded to a particular organization or team. Proposal writing is a critical task because the survival of many companies depends on having enough proposals accepted and contracts awarded.
A related reality of the industry is the bench. If there are not enough projects and there are too many developers and testers in the organization, people are simply put on the bench, which means they have no work. People on the bench may undergo online training or do other things. Being on the bench is very common in the software industry, especially when companies are not getting enough business. It is essentially a paid holiday — nice for some time, but it gets boring, and after six months on the bench you may feel like moving out of the organization to somewhere you get challenging work. Many people in many large organizations are on the bench most of the time, waiting for a project contract to be signed.
Q: A student had never heard the word bench used this way in the software industry. What does it mean?
A: On the bench means having no project work assigned. It is a standard industry term: when your current project ends and no new project contract has been signed yet, you are put on the bench — no work, sometimes online training, essentially a paid holiday. It is enjoyable for a while, but after about six months of no challenging work, most people start wanting to leave the organization for a project they can sink their teeth into.
None of these manager tasks involve development, coding, and testing — the work you like most.
15.4.4 Career Tracks: Engineer or Manager
There are career tracks for people wanting to go into project management, and career tracks for people who want to remain engineers. As an engineer you may eventually become a chief architect — someone who designs complex systems and manages the technical design and implementation aspects. You may become a technical manager at a higher level, involved in the technical aspects of the system. This is like the chief engineer role in civil engineering, under whom many engineers work — but the chief engineer is still the technical person, not a regular project manager.
Whether to stay in engineering or move into management is one of the important questions in software engineering, and each person's answer may vary depending on their career objectives. Over time, if you acquire an MBA degree after your engineering years, you may want to become a project manager — you have been an engineer for five or ten years, and now you might manage fifty or sixty engineers. A project manager has to manage a thousand tasks at a time, apart from managing people. As you grow up the corporate ladder, other programmers take care of development while you take care of the larger issues of project management, which are not as easy as you think.
15.4.5 Student Questions and Answers
Q: Do you agree that project managers are invariably busy in meetings?
A: Yes, I believe they are always busy in meetings. They are always in meetings because they are responsible for reporting progress to their team and to the management above. The meeting is the project manager's delivery mechanism: it is how information flows in both directions — down to the team, up to management.
Q: What happens in your company if there are not enough projects and too many people — too many developers and testers?
A: There is less work for people, and eventually the revenue gets affected. No — no work for people means they will be put on bench. People being on bench is very common in the software industry. Once your current project is over and you do not have an immediate project to start with, you will be put on bench — essentially a paid holiday. It is good for some time, but it gets boring after some time. If you are on bench for six months, you may feel like moving out of the organization to somewhere else where you get some challenging work.
Q: Would you like to be promoted as a project manager to do all these tasks?
A: Not really. I would rather become a principal engineer — be an engineer rather than a manager. That perspective is equally valid: there are career tracks for project management, and career tracks for people who remain engineers and may eventually become a chief architect designing complex systems.
Q: After doing an MBA, would you not like to manage fifty or sixty engineers?
A: Maybe, sir. That is the point — suppose you do an MBA and eventually become a project manager; you have to manage a thousand tasks at a time apart from managing people.
Q: There is a common perception among developers that managers do no work — they simply keep supervising. Is that fair?
A: Behind the scenes, managers have a number of tasks lined up, and there are various factors that affect how software projects are managed. The visible part of management — meetings and supervision — is only the tip of the iceberg; below it sit planning, risk assessment, reporting, proposal writing, and people decisions.
Recap + bridge. Every project manager, whatever the organization, performs the same core activities: project planning, risk management, people management, reporting, and proposal writing — plus the reality of the bench between projects, and a career choice between engineering and management tracks. Of these universal activities, the next topics focus on the one that makes or breaks projects: risk management.
Real-world connection. The bench is a visible, often-cited industry reality: during business downturns, consultancies and product companies alike keep surplus developers on the bench (sometimes on training programs) rather than laying them off immediately, because rehiring skilled engineers is expensive. The two career tracks also map to real corporate ladders — principal engineer and staff engineer titles on the technical side, engineering manager and director on the management side — and many companies explicitly design parallel promotion paths so technical people are not forced into management to grow.
15.5 Risk Management: The Basics
Risk management is one of the most important jobs for a project manager, because risk can be anything.
15.5.1 What Is a Risk?
You may know Murphy's Law: if something can go wrong, it will. Something will suddenly come up: a component has crashed, a service request comes in, a change request arrives that is an emergency, and you have to divert all your resources from development work to fix bugs immediately. Risks are prevalent every time, and you have to plan and manage them.
The rain-on-a-picnic analogy. You plan a picnic; the weather report is sunny, but you still carry an umbrella. The rain is not certain — if it were, you would not go — it is merely possible, and the cost of being caught unprepared is a ruined day. A risk is exactly that: an event that may happen, which you prefer not to happen, and for which the smart move is to prepare before, not panic after.
Think of a risk as something you prefer not to happen. Risks are a reality — they always set on a project, on the software being developed, or on the organization developing the project. Risk management involves anticipating the risks that might affect the project schedule, the quality of the project, or the organization itself, and then taking action to avoid them. There can also be competition risk — risk from competition in the market. These are uncertainties, such as loosely defined requirements and so on.
15.5.2 Project, Product, and Business Risks
There are three types of risks:
- Project risks affect the project schedule or resources. An example is the loss of an experienced system architect who suddenly leaves to another organization. Finding a replacement for an experienced architect with the appropriate skill set and experience may take quite some time, and so it may delay the project significantly. Delay means cost, time, reputation — everything.
- Product risks are related to the quality and performance of the product software being developed. An example is the failure of a purchased component. You take an open source component or a purchased component, and it does not perform as expected. You expected it to have been tested reliably and to work reliably, but this newly integrated component may affect the overall performance of the system — it may become slower, or you may have to debug or fix the problem.
- Business risks affect the organization or business. An example is competition: a competitor may release a similar product first, or the market may change.
What each risk type threatens. The three categories answer one question: what is at stake?
- Project risk → the schedule or resources. What is threatened: your plan — deadlines, staffing, budget.
- Product risk → the quality or performance of the software being built. What is threatened: the artifact — it may be slow, buggy, or fail to work as expected.
- Business risk → the organization developing (or buying) the software. What is threatened: revenue, contracts, market position — the company itself.
These are just three simple classifications. If you study risk management in detail, there are many more categories and a lot of analysis of risk — all of which managers have to do.
15.5.3 Overlapping Risk Categories
The risk categories overlap — there is no clear-cut distinction. Take an experienced engineer's decision to leave a project:
- It presents a major project risk, because the software delivery schedule will be significantly affected. It inevitably takes time for a new project member to be trained and to understand the details of the technical work done by the engineer. He or she cannot be immediately productive, and so the delivery of the system may be delayed.
- It can also be a product risk, because a replacement may not have the knowledge and experience required to design and implement the product. The replacement may be a cloud computing expert or have other domain experience, but to understand the product he could still make design and programming errors.
- Finally, it can be a business risk, because an experienced engineer's reputation may be a critical factor in winning a new contract. Many a time, winning a contract depends on the key people in the project. If a senior team leader or a highly skilled expert leaves, it becomes difficult to get a contract — the client would have said "we can do this project on time and with good quality because we have this expert with us," but once the expert has left, the business is affected.
So a single event — one person leaving a team — can be a project risk, a product risk, and a business risk at the same time.
The three-umbrellas picture. Imagine three overlapping circles (a Venn diagram): project risk, product risk, and business risk. Most serious events sit inside the overlap of two or even three circles. The loss of one architect touches all three — schedule (project), design quality (product), and contract-winning reputation (business). When analyzing any event, do not force it into a single category; ask what it threatens in each dimension.
15.5.4 The Risk Management Register
For large projects, you should record the results of the risk analysis in a risk management register, along with the consequence analysis. The register sets out the consequences of the risks for the product as well as for the business. Effective risk management makes it easier to cope with the problems and ensures that these do not lead to catastrophic budget or schedule overruns.
For small projects, you should still maintain formal risk recording at a minimal level — not as elaborate as for a large project — but the project manager should be aware of all the risks, the potential consequences, and how to manage them, even in a small team and a small project.
15.5.5 Student Questions and Answers
Q: If the only person responsible for the architecture leaves, can they fit somebody immediately in that role?
A: No, they cannot. You have been involved in something you know very well, and it may take a lot of time to even train somebody to take up your responsibilities and roles. So that is a risk, and the project will be delayed. Delay means cost, time, reputation — everything. This is why key-person dependency is treated as a serious risk in its own right: the knowledge lives in one head, and heads cannot be cloned overnight.
Recap + bridge. A risk is something you prefer not to happen — a possible, not certain, event. Risks come in three overlapping classes (project, product, business), and one event can hit all three at once. Large projects record this analysis in a risk management register. Next comes the question: which risks actually show up in software projects over and over again?
Real-world connection. Risk management is why companies institute key-person insurance-like practices: cross-training, documented architecture, and bus-factor planning (how many team members must be hit by a bus before the project stalls — a one means the project depends on a single person). Venture-funded startups and banks alike review top risks in executive meetings, because a risk that is written down and tracked is a risk that can be managed; one that lives only in the manager's head is invisible until it strikes.
15.6 Common Risks in Software Projects
The specific risks that may affect a project depend on the project and the organizational environment in which the project is developed. But there are also common risks that are independent of the type of software development — they can occur in any software development project.
15.6.1 The Common Risks
The common risks are typically project, product, and business risks:
- Staff leaving — a project risk; the project will be delayed.
- Change in management — for example, your company is acquired by another company and management procedures change. You might be in a large organization, but if you are acquired by an even larger, more formal, more bureaucratic one, the new company management may have different priorities: "your project is no longer important — we have other clients which are important." Suddenly your project may be dropped. This is a project risk.
- Hardware unavailability — if the technology or hardware you require for development is not available, the project will be delayed.
- Requirements changes — happen quite frequently all through the development phase and even during the maintenance phase. They affect both the project and the product.
- Specification delays — you do not get the requirements on time. The manager keeps chasing the customer for the requirement specification, and every specification keeps changing — today morning they give a specification, today afternoon they say they will make a small change. The specification is never frozen before it is given to you. This is both a project and a product delay.
- Size underestimation — very common because of the very competitive bidding process. Your company tries to bid at the lowest possible price. This is a major project and product risk, because the size of the system has been underestimated.
- Ineffective software tools — the CASE tools, the software developer tools, the IDEs are not effective or efficient and cannot do the task. If you have lousy, inefficient tools, your work suffers both in terms of quality and time. You demand better tools, but the manager says "I will put a request to the budget team and let them approve it" — by the time approval comes, half the project is done and the tool arrives too late.
- Rapid technology changes — a business risk. Today you have some technology, ERP technology; tomorrow it is on cloud or whatever. Your whole process of development and technology gets superseded. You have to train and develop people in the new technology.
- Product competition — a business risk. A competitive product may be released in the market. You might be working very secretly and confidentially on a breakthrough product, and before you can complete it, a competitor has already released it. You were not first to market. As a developer, you may not manage that worry — it is the worry of the marketing manager or the project manager.
| Common risk | Type | What it does |
|---|---|---|
| Staff leaving | Project | Delays the project |
| Change in management | Project | New priorities may drop the project |
| Hardware unavailability | Project | Delays development |
| Requirements changes | Project and product | Rework across development and maintenance |
| Specification delays | Project and product | Requirements never frozen, chasing the customer |
| Size underestimation | Project and product | Bid too low, system bigger than promised |
| Ineffective software tools | Product | Lower quality and slower work |
| Rapid technology changes | Business | Current technology superseded, retraining needed |
| Product competition | Business | Competitor reaches market first |
15.6.2 Requirements Change: An Inevitable Risk
Requirements change is an inevitable, essential nature of software development. Requirements keep changing so often — that is why requirements management and change management are very essential. You should know the source of the requirement and the reason why the requirement was given.
Q: When the customer says something is a bug and it is not working properly, what is the typical software engineer's response?
A: They say it is a feature. "It's not a bug, it's a feature" — because it is written somewhere in the fine print in the requirements document, and the customer did not even understand what it was when he signed the contract. As per the requirement specification it is a feature, but it is a bug because it is not meeting his real-world requirements.
Why this correction matters. The customer believes the delivered software is defective (a bug); the engineer points to the signed requirements document, where the behavior is actually written down (so by the contract it is a feature). Both are right in their own frame: the engineer is right about the document, the customer is right about reality. The gap exists because the customer signed something they did not fully understand — which is exactly why requirements management (knowing the source and reason of every requirement) is essential.
A classic exchange happens after delivery: the customer says "it is a bug, it is not working properly." The typical software engineer's response is "it is not a bug, it is a feature" — because it is written somewhere in the fine print of the requirements document, which the customer did not even understand when he signed the contract. So as per the requirement specification, it is a feature — but it is a bug in the sense that it is not meeting the customer's real-world requirements. When a change request comes in after delivery, you have to see the impact of making that change — it should not collapse the whole software. Every time you deliver something, the customer says "this is not what I want, I want something else."
15.6.3 Size Underestimation and Fixed-Price Contracts
Size underestimation is very common. Because of requirement creep — frequent modifications and more features keep coming in — you may have quoted 1 lakh lines of code, and it becomes 10 lakh lines of code. But you might have signed a fixed-price contract for a fixed time and fixed date. What do you do then?
Worked example — the underestimated fixed-price contract.
Setup. A company bids for a software contract on the assumption that the system needs 1 lakh (100,000) lines of code. It quotes the lowest price and signs a fixed-price contract: a fixed price for delivery by a fixed date, no matter what.
The change. Requirement creep sets in — frequent modifications and more features keep arriving from the customer during development. The actual system grows to 10 lakh (1,000,000) lines of code — ten times the original size.
The trap. The contract was priced for 1 lakh lines. Writing 10 lakh lines takes roughly ten times the effort, and the fixed price does not grow with the work. If the company delivers everything the customer asks for, it does the work for a tenth of what it costs — a guaranteed loss.
What companies actually do. With a fixed-price contract, this much price covers this much delivery. So the company delivers only what the fixed price covers — even if that means delivering an incomplete project. Every change request after that point is treated as a new development project, and the customer is charged accordingly. That way the developers may even earn a profit on the extra work.
Sense-check. The contract, not the customer's wish list, defines the boundary of delivery — which is why the boundary must be written precisely before signing.
Sometimes companies deliver an incomplete project, because with a fixed-price contract, this much price covers this much delivery. For every other change they request, you cannot say "this is a bug" — it is a feature. Every new development change request has to be treated as a new development project, and the customer is charged accordingly. That way the developers may earn a profit also.
Scope of this behavior. This practice is a business response to an unrealistic contract, not a license to build poor software. The assumptions behind it: the contract is genuinely fixed-price, and the change was not part of the agreed scope. Where those assumptions do not hold — for example, an agreed change control process already covers the change, or the contract allows renegotiation — the same behavior would be unfair to the customer. And from the customer's side, the lesson is the mirror image: a low bid for a vague requirement is how a project becomes a series of charged change requests.
15.6.4 Student Questions and Answers
Q: Has it happened that after you deliver a project, the customer says "this is not what I want — can you add this thing, fix this bug, do this and do that"?
A: Sometimes it happens. Then you have to see the impact of making that change — that change should not collapse the whole software. There will be a large number of changes in the requirements. Requirements change is an inevitable, essential nature of software development.
Q: Has the specification ever been frozen before it is given to you?
A: No, the specification will change immediately the next morning — they say this supersedes that. Customers are not sure of what they want, and there are variable delays. The specification is never frozen before it is given to you, which is why specification delays are a project and product risk in their own right.
Recap + bridge. A set of common risks recurs in every software project — staff leaving, management change, hardware unavailability, requirements changes, specification delays, size underestimation, ineffective tools, rapid technology change, and product competition. Requirements change is inevitable, and size underestimation under a fixed-price contract forces companies to deliver exactly what the price covers. The next topic turns from which risks exist to the process of managing them.
Real-world connection. The bug-versus-feature exchange is a recognized industry joke and a serious contract lesson at once — the expression "it's not a bug, it's a feature" is used across the industry, and its serious form is change control: every post-delivery change request goes through an impact analysis and a commercial decision. Fixed-price contracts likewise exist in the real procurement world (government and enterprise tenders), which is why experienced contractors write precise scope and change clauses before signing.
15.7 The Risk Management Process
15.7.1 The Four Stages
The risk management process involves four steps:
- Risk identification — identifying the project risks, product risks, and business risks.
- Risk analysis — checking the probability and the severity of the risks.
- Risk planning — drawing plans to avoid the risks or minimize their effects. (This stage is sometimes called risk management itself, but the whole four-stage activity is what we call risk management.)
- Risk monitoring — monitoring the risks continuously throughout the project.
The purpose of the process. The four stages exist to answer one question: what could go wrong, how bad is it, what will we do about it, and how will we know it is happening? Each stage feeds the next:
- Risk identification → produces a list of potential risks (project, product, and business).
- Risk analysis → checks probability and severity of each risk → produces a prioritized risk list.
- Risk planning → devises strategies to avoid, minimize, or prepare for each risk → produces risk avoidance and contingency plans.
- Risk monitoring → checks the assumptions and reassesses risks → updates the analysis, which may send you back to stages 2 or 3.
Inputs and outputs in one line: you go in with a project and uncertainty; you come out with a continuously updated list of what could go wrong and a plan for each.
For large projects, risk management is an iterative process that continues throughout the project. Once you have drawn up the initial risk management plan, you monitor the situation to detect emerging risks. As more information about the risks becomes available, you reanalyze the risks and decide if the risk priority has changed. You may then have to change your plans for risk avoidance and contingency management.
Risks and uncertainties can happen on an everyday basis. Suddenly there will be a power voltage problem, or suddenly there will be some noise outside and you cannot come to the office or cannot work from home. All these things keep happening, and risks are a matter of daily life — a routine thing to be managed on a daily basis.
15.7.2 Risk Management in Agile Development
Risk management in agile development is less formal. The same fundamental activities should still be followed and risks should be discussed, although they may not be formally documented in detail.
Agile development reduces some risks, such as the risk from requirement changes, because the requirements are captured in small stories. They are developed in small stories with the customer embedded in the team. The customer approves the requirements and the stories, and they are tested and modified before the next increment of the requirements can be taken up.
However, agile development also has a downside because of its reliance on the people — the small team involved. If there are only four or five people involved, staff turnover can have significant effects on the agile project as well as on product quality, the product, and the business. Because of the lack of formal documentation, and because risk management relies on informal communication, it is very hard to maintain continuity and momentum in a small team if key people leave. The team cannot suddenly make up for the loss of a key person in a small development team of five or six people. So it is a project risk and a business risk too, because the project will be delayed.
Worked example — the fragile agile team.
Setup. A small agile team has five members building a product for a customer who is embedded in the team. The team relies on informal communication — there is little formal documentation; continuity lives in people's heads and in daily conversation.
The event. Two members leave — the chief architect and another key developer. Everybody in the team does some development and testing, so there is no bench of spare skills; each of the five holds a significant slice of knowledge.
The consequences. The remaining three people cannot suddenly cover two departed specialists:
- Project risk: the delivery schedule slips — the project is delayed because the loss cannot be absorbed.
- Product risk: with no formal documentation, the departed members' knowledge of the product leaves with them, so quality and continuity suffer.
- Business risk: the project is delayed, the customer's product is late, and the business loses.
The logic. In a team of fifty, losing two people is a 4% loss, absorbed by others. In a team of five, losing two is a 40% loss — the team loses its architecture and its momentum at once. The informal communication that made agile fast is also what makes it fragile: when knowledge lives in conversation rather than documents, it leaves with the people.
Sense-check. The numbers make the point: 2 of 5 team members gone, 3 remaining, and no documentation to bridge the gap — of course the project is delayed. The smaller the team, the larger the share of knowledge each person carries.
15.7.3 Student Questions and Answers
Q: In a small agile team of about five people, if two people suddenly leave — the chief architect and another key developer, where everybody does some development and testing — can the team make up for the loss?
A: No, not possible. In a small development team of five or six people they cannot suddenly make up for the loss. It will be a product risk, a project risk, and a business risk, because the project will be delayed.
Recap + bridge. Risk management is a four-stage iterative process — identification, analysis, planning, monitoring — that runs continuously, formally for large projects and informally (but still actively) for agile ones. Agile's embedded customer reduces requirements-change risk, while its small-team, low-documentation nature magnifies staff-turnover risk. The next three topics go into each stage in turn, starting with identification.
Real-world connection. The four-stage process is the standard shape of risk management in industry: large programs keep a formal risk register reviewed at every steering-committee meeting, while agile teams hold lightweight risk discussions in planning and retrospection sessions. The agile fragility point is why modern practice adds bus factor thinking and pair/triple programming even to small teams: spreading knowledge is cheap insurance against the 40%-loss event this example describes.
15.8 Risk Identification
Risk identification is the first stage of the risk management process. It is concerned with identifying the risks that could pose a threat to the software engineering process, the software product being developed, or the development organization — the business.
Two ways to identify risks. Risk identification may be a team process, in which a team gets together to discuss and brainstorm possible risks and their management. Alternatively, project managers may identify risks based on their experience of what went wrong previously and what is likely to go wrong in the coming scenario. The team brainstorm brings many perspectives; the manager's experience brings the memory of past failures. Real projects use both: the experience-based list is the starting point, and the team session surfaces the rest.
As a starting point for risk identification, you may classify risks into different types. Typically, these types of risks are included in a risk checklist of common risks:
- Estimation risks — arise from the management estimates of the resources required to build a system. If you estimate very low — you give the lowest quote and bag a big software contract — but it costs heavily much more than you estimated, you will incur significant losses. If the company is in deep financial trouble, will you get your next month's salary? No — you may even get a pay cut or no salary. On the one hand you have to bag the contract by being the lowest bidder; on the other hand, meeting the budget means you have to cut corners and give a lower quality or lower sized product.
- Organizational risks — arise from the organizational environment: whether the business environment is becoming competitive, changing new regulations, and so on.
- People risks — associated with the people in the development team: their skills, their level of competence, their leaving the team, and so on.
- Requirements risks — typically changes to the requirements from the customers, and the process of managing requirement change.
- Technology risks — from the software tools and technologies that are used to develop the system.
- Tools risks — from the software tools and other support software used to develop the system; tools are closely related to technology (the professor counts them as a sixth class, and the monitoring stage tracks them under technology indicators).
The checklist is a starting point, not the finish line. The risk checklist only guarantees that you scan the standard categories. After working through it, you still need the brainstorm and the experience-based pass to catch project-specific risks. And a checklist that grows without bound becomes useless: once identification is complete you have a long list of risks, which you then prune to a manageable size — with too many risks it is practically impossible to keep track of all of them.
15.8.1 Student Questions and Answers
Q: If you are the lowest bidder and bag a big contract, but it costs much more than you estimated, what will you incur?
A: Losses. Significant losses. And if the company is in deep financial trouble, will you get your next month's salary? No. You may even get a pay cut or no salary at all. This is an estimation risk: the resource estimates were wrong, and the company is now stuck between honoring a loss-making contract and cutting corners on quality.
Recap + bridge. Risk identification names the threats to the process, the product, and the business — via team brainstorming, manager experience, and a risk checklist of estimation, organizational, people, requirements, and technology (plus tools) risks. With the risks listed, the next stage judges how serious each one really is: risk analysis.
Real-world connection. Estimation risk is exactly what triggers the industry practice of contingency reserves in bids: professional estimators add a percentage buffer precisely because low-ball estimates have produced so many loss-making contracts. In regulated industries (banking, energy), risk identification is institutionalized in risk registers reviewed by compliance teams, using the same checklist idea — fixed categories plus project-specific brainstorming.
15.9 Risk Analysis
Risk analysis is the most important activity of the process. During risk analysis, you have to consider each identified risk and make a judgment about the probability and the seriousness of the risk — that is, the likelihood and the consequences.
There is no easy way to classify these. You have to rely on your judgment and your experience of previous projects and the problems that arose in those projects. You may not be able to extrapolate the same experience to this project, and it is not possible to make precise numeric assessments of the probability and seriousness of each risk. Instead, you may assign an approximate assessment of the probability: the probability of the risk might be assessed as insignificant, very low, low, moderate, high, or very high — you range them instead of giving numerical values like 0.1, 0.2, and so on.
The consequences — the seriousness of the risk — can also be assessed qualitatively:
- Catastrophic — threatens the survival of the project.
- Serious — would cause major delays.
- Tolerable — delays within significant allowed contingency limits.
- Insignificant — can be ignored for the time being; will be taken care of later.
You may tabulate the results of the risk analysis using a table ordered according to the seriousness of the risk: catastrophic, serious, tolerable, insignificant.
Probability × consequences, judged in bands. Because precise numbers are impossible, each risk gets two qualitative ratings: a probability band (insignificant, very low, low, moderate, high, very high) and a consequence band (catastrophic, serious, tolerable, insignificant). The combination — not either rating alone — decides the risk's rank. A catastrophic risk with very low probability is handled differently from a tolerable risk with very high probability. The ratings are judgments built from experience of previous projects, and they must be revisited because both ratings can change as the project progresses.
15.9.1 Worked Examples from the Risk Analysis Table
The five examples below are the rows of the risk analysis table, ordered by seriousness: catastrophic first, then serious, then tolerable, then insignificant.
Example 1 — Financial crunch (probability: low; consequences: catastrophic).
The organization faces a severe financial crunch that forces rejection of the project budget: the project budget is cut, all resources are cut, salaries are cut. Such financial problems could occur due to the recession going on in the US, and a recession likely here too. The probability is low, but if it comes, it may be catastrophic — there may be many layoffs.
Why low but catastrophic: a recession is not predictable far in advance (low probability), but when the budget is cut, the project's survival is directly threatened (catastrophic consequences). This is the classic low-probability, high-impact risk: it does not happen often, but when it does, everything is affected — including people's jobs. Because the impact is so severe, it must still be monitored even though its probability is low.
Real-world: During the COVID period there were many layoffs: companies laid off in thousands, and big companies like Facebook, Google, and Twitter laid off thousands of people overnight. The Twitter boss, Elon Musk, was criticized for being so ruthless in laying off people, including the head of operations in India, laid off overnight just like that. These are catastrophic situations.
Sense-check: a single budget cut eliminates the project's resources — that matches "catastrophic: threatens the survival of the project" exactly.
Example 2 — Unable to find staff with the required skills (probability: very high; consequences: catastrophic).
You are unable to find a staff member with the required skills as a replacement — for example, a key engineer leaves, and they cannot find a suitable replacement as capable. The probability of being unable to find the same kind of person is very high, and the effects will be catastrophic: the project may come to a halt, or it may be delayed indefinitely until they find a replacement.
Why very high and catastrophic: specialized skill sets are rare in the market, so the chance of failing to find one is high, and without the skills, the project simply cannot proceed — a halt or an indefinite delay. This risk ranks at the very top of the table because both ratings are severe.
Sense-check: "the project may come to a halt" is a textbook definition of catastrophic — the project's survival is threatened, not just its schedule.
Example 3 — Key staff ill (probability: moderate; consequences: serious).
If key staff are ill at times and on leave, the risk may be moderate, but it is still serious. Illness happens with moderate probability — people do fall ill, but not constantly. When a key person is away at a critical time, the effect is major delay, which is why the consequences are rated serious rather than tolerable: it would cause major delays, though not the collapse of the project.
Sense-check: moderate + serious is the middle band of the table — worth planning for (for example, by overlapping work so others can cover), but not a survival threat.
Example 4 — Inefficient code generation (probability: moderate; consequences: insignificant).
The code generated by the CASE tool — the code generation tool — is inefficient; it is not as efficient as code developed by a human engineer. The risk is moderate, but the effects are insignificant: the code is generated quickly as soon as you give the algorithm and the design, and if the code is slightly inefficient, as long as it works, it is okay.
Why moderate but insignificant: the tool's inefficiency shows up in routine use (moderate probability), but the generated code still works — the cost is slightly lower performance, not failure. The rating says: notice it, but do not build contingency plans around it.
Sense-check: "can be ignored for the time being; will be taken care of later" — this is exactly the insignificant consequences band.
Example 5 — Software size underestimated (probability: very high; consequences: tolerable).
If the size of the software is underestimated — which happens very often — the probability is very high, but the effect is still tolerable: you can somehow manage with other factors and resources.
Why very high but tolerable: size underestimation is almost routine in competitive bidding (very high probability), but the schedule slip it causes stays within the allowed contingency — the delay is absorbable by rearranging resources. It needs active management but does not threaten survival.
Sense-check: "delays within significant allowed contingency limits" is the tolerable band — the delay is real but the project absorbs it.
| Risk | Probability | Consequences | Reason |
|---|---|---|---|
| Financial crunch forces budget cuts | Low | Catastrophic | Rare but threatens survival; layoffs |
| Cannot find replacement with required skills | Very high | Catastrophic | Skills are rare; project halts or delays indefinitely |
| Key staff ill | Moderate | Serious | People fall ill; major delays at critical times |
| CASE tool generates inefficient code | Moderate | Insignificant | Code still works; only slightly slower |
| Software size underestimated | Very high | Tolerable | Very common; manageable with other resources |
Assumptions and limits of risk analysis. Qualitative bands are a judgment tool, not a measurement: they depend on the manager's experience, and experience from a previous project may not transfer to a new one. Both ratings can change as more information arrives — a low-probability financial crunch can become likely overnight — so the table must be updated at every iteration of the risk management process. And because the bands are coarse, two risks in the same band can still feel very different; the ranking judgment on top of the table is what matters.
15.9.2 Student Questions and Answers
Q: Have you heard of layoffs during the COVID season?
A: Yes, there were many layoffs after the COVID season. Companies were laying off in thousands, and you could hear of big companies like Facebook and Google and Twitter laying off thousands. There was criticism that the Twitter boss was ruthless in laying off people, including the head of operations in India, laid off overnight just like that. These are catastrophic situations. This is the financial-crunch row of the risk table happening in real life: the probability seemed low until it happened, and the consequences were catastrophic for the projects, the teams, and the business.
Recap + bridge. Risk analysis rates every identified risk with a qualitative probability band (insignificant to very high) and a consequence band (catastrophic, serious, tolerable, insignificant), then orders the risks by seriousness — the table's rows are judged on judgment and experience, and both ratings can change as the project moves on. Once the risky ones are known and ranked, the next stage decides what to do about them: risk planning.
Real-world connection. This qualitative banding is exactly how real companies run risk reviews — board and steering-committee risk matrices are colored grids with probability on one axis and impact on the other (green/yellow/red zones), and the catastrophic cell decides what gets escalated. The COVID layoffs at Facebook, Google, and Twitter are the financial-crunch scenario in the wild: a macro-economic event, low day-to-day probability, catastrophic project-level consequences.
15.10 Risk Planning
Risk planning develops strategies to manage the key risks that threaten the project. For each risk, you have to think of actions you might take to minimize the disruption to the project if the problem identified in the risk occurs. You should also think about the information you need to collect while monitoring the project, so that emerging problems can be detected before they become serious.
In risk planning, you have these strategies: risk avoidance strategies, risk minimization strategies, and contingency plans — what will happen if the risk arises, and what is the plan B to deal with the risk.
The three strategy families.
- Risk avoidance — reduce the probability that the risk arises at all. Example: replacing a suspect component with a known-reliable one so it never fails you.
- Risk minimization — reduce the impact if the risk does arise. Example: reorganizing the team so people's work overlaps and an absence hurts less.
- Contingency plans (plan B) — be ready for the worst: have a defined fallback to execute the moment the risk materializes. Example: a pre-agreed re-planning procedure if the budget is cut.
The order of preference is avoidance first, minimization second, contingency last — but in practice you need all three, because most risks cannot be fully avoided.
15.10.1 The What-If Questions
In order to do risk planning, you have to ask certain what-if questions that consider both individual risks and combinations of risks, and also external factors that affect these risks. Questions a risk manager might ask:
- What if several engineers are on leave at the same time?
- What if an economic downturn or recession leads to budget cuts of 20% or even 50% for the project?
- What if the performance of an open source software is inadequate, and the only expert on that open source software leaves?
- What if the company that supplies and maintains the software components goes out of business — whether it is open source or some other company, if suddenly everything vanishes, what happens?
- What if the customer fails to deliver the device requirements as predicted — he says "by tomorrow morning 11 o'clock I will give it," and it does not come; it takes another week?
Based on the answers to the what-if questions, you devise strategies for managing these risks: avoidance, minimization, and contingency plans.
15.10.2 Strategies for Specific Risks
- Financial problems: you, as a senior project manager or senior vice-president, have to tell the senior management that your project is making very important contributions to the goals of the business, and so you cannot allow budget cuts to the project. You have to fight for it — you cannot let your project budget be cut quietly.
- Recruitment problems: you must tell the customer frankly that there are likely to be delays, and instead of development, you must investigate buying in certain components from other sources.
- Staff leaving: you may have to recruit, and reorganize the team so that others can cover for the other's work.
- Defective components: you can replace them.
- Requirements changes: you have to derive traceability information to assess requirement changes, and in fact maximize information hiding in the design so that a requirement change does not affect other requirements and other components.
- Organizational restructuring, which often happens: again, you have to make a presentation to your senior management saying why your project should not be discarded or stopped. Many situations exist where even though a project is going on very well, because of organizational restructuring — a takeover or acquisition — suddenly the project becomes unimportant and is abruptly stopped, and the team is asked to leave.
- Database performance problems: you can buy a better database.
- Underestimated development time: you can buy certain components to speed up development, and investigate the use of a code generator.
| Risk | Strategy | Strategy family |
|---|---|---|
| Financial problems | Briefing to senior management; fight for the budget | Contingency |
| Recruitment problems | Tell the customer frankly about delays; buy in components | Minimization |
| Staff leaving | Recruit; reorganize team so others can cover | Minimization |
| Defective components | Replace them | Avoidance |
| Requirements changes | Traceability information; maximize information hiding | Minimization |
| Organizational restructuring | Present why the project must not be stopped | Contingency |
| Database performance problems | Buy a better database | Avoidance |
| Underestimated development time | Buy components; use a code generator | Minimization |
The professor's plan-B analogy. Plan B is the backup plan that management keeps unspoken until the exigency occurs. Like a safety net that stays rolled up until someone falls, management may hold a plan B — but it is usually not communicated to the team in advance. When the risk actually happens, management reveals it: "this is plan B." In case something happens or a person goes on leave, plan B will be to do something else in that place at that time — other modules that others are comfortable with may be worked upon.
15.10.3 Student Questions and Answers
Q: Do you always have a plan B for any project activity — a plan A and a plan B, especially for risk management?
A: I haven't come across a plan B. Plan A and plan B is a backup plan. Suppose somebody does not come or something happens — then you have plan B. The management might have plan B, but they do not usually communicate it; once the exigency occurs, they will tell that it is plan B. In case something happens or a person goes on leave, plan B will be to do something else in that place at that time — other modules that others are comfortable with may be worked upon.
Recap + bridge. Risk planning turns analyzed risks into action: ask what-if questions (single risks, combinations, external factors), then choose avoidance, minimization, or contingency strategies per risk — with plan B as the unspoken backup that surfaces only when the risk occurs. After planning, the final stage keeps everything honest over time: risk monitoring.
Real-world connection. What-if questioning is institutionalized in industry as scenario planning: security teams run tabletop exercises ("what if the database is ransomed?"), and project offices run budget-scenario reviews (20% and 50% cut cases), exactly the questions in this section. The plan-B habit is why organizations write business continuity plans and disaster-recovery runbooks — documented in advance, revealed when needed, so that the response does not have to be invented under pressure.
15.11 Risk Monitoring
Risk monitoring is the process of checking that your assumptions about the product risks, the process risks, and the business risks have not changed. You should regularly assess each of these identified risks to decide whether or not the risk is becoming more or less probable. You should also think about whether the effects of the risks have changed.
To do this, you look at other factors, such as the number of requirement change requests, which give you clues about the risk probability and its effects. These factors depend on the types of risks. The indicators for the six classes of risk — estimation, organization, people, requirements, technology, and tools (tools are related to technology) — include the following:
- Estimation risk indicators: failure to meet the agreed schedule; failure to clear reported defects; and the percentage of effort completed against time. You have time estimation and effort estimation — "this will take so many percentage of effort." If at the review time only 50% of the work is done when 60% was planned, you are behind schedule. Then you request more time to complete the work. How will you meet the agreed deadline when you are putting in a lot of work, burning the midnight oil, working day and night 24 by 7, and still have not met the target? The target may be unrealistic, because the effort required was underestimated. The project manager may have to request one more week for the delivery. Customers sometimes agree; sometimes they impose a penalty clause, depending on the contract.
- Organizational risk indicators: persistent issues where the organizational management — senior management — is not taking any action on festering, burdensome HR issues. For example, HR simply puts pressure on the project manager without understanding the difficulty of the work. If there is no action taken by the organization, you feel frustrated.
- People risk indicators: poor staff morale, poor relationships among people, high staff turnover — people leaving often.
- Requirements risk indicators: requirements keeping changing frequently; compliance customers; so many change requests.
- Technology risk indicators: poor hardware and software technology, delivered late; complaints about the tools; demands for high-powered workstations or more powerful software. The demand for better tools has always been there. Requests may not get approved — you may be working with a five-year-old laptop, and your request for a replacement has been lying with them for two years. Especially for high-end workstations, with two monitors to code and debug on, sometimes you will not get them on time.
Worked example — the 50%-versus-60% estimation indicator.
Setup. At the start of a project phase, the plan says: by review time, 60% of the effort should be completed. Effort here means the planned amount of work, measured in person-days or person-hours ("this will take so many percentage of effort").
The measurement. At the review, the project manager checks what has actually been done: only 50% of the work is complete.
The comparison. Planned 60% vs. actual 50% — the project is 10 percentage points behind where it should be, which means it is behind schedule.
The consequence. The team requests more time to finish. If the team works flat out — burning the midnight oil, day and night — and still cannot reach the target, the target was probably unrealistic: the effort required was underestimated. The project manager may have to request one more week for delivery. Customers sometimes agree; sometimes they impose a penalty clause, depending on the contract.
Sense-check. 50% < 60%: on a percentage-of-effort scale, actual below planned always means behind schedule — the indicator has fired, and the estimation risk is real.
You should monitor risks closely and frequently, and at every management review you should consider and discuss each of these key risks separately. You should also decide if the risk is more or less likely to arise frequently in the future, and if the seriousness and consequences of the risks have changed.
| Risk type | Potential indicators |
|---|---|
| Estimation | Failure to meet agreed schedule; failure to clear reported defects; percentage of effort completed against time |
| Organizational | Lack of action by senior management on festering HR issues; pressure without understanding |
| People | Poor staff morale; poor relationships; high staff turnover |
| Requirements | Requirements changing frequently; many change requests; compliance customers |
| Technology / tools | Poor hardware or software, delivered late; complaints about tools; requests for high-powered workstations |
What monitoring can and cannot tell you. Indicators are clues, not proofs: a single missed review milestone does not prove the estimate was wrong — it may be an isolated slip. The strength of monitoring is pattern detection: several indicators firing together (schedule slips + defect backlog + effort percentages consistently short) is what confirms a real risk is materializing. And indicators that go quiet matter too — a risk that stops showing symptoms should still be reassessed, not assumed away.
15.11.1 Student Questions and Answers
Q: Has it happened with you as a developer that you requested at least two days' time to complete your work?
A: Yes sir, this keeps happening quite often. The deadline is always the day before. Even though you are putting in a lot of work, burning the midnight oil, working day and night, you still have not met the target because the target is unrealistic — they have underestimated the effort required. You have to request the customer for more time, and sometimes the project manager has to request one more week for the delivery. Customers sometimes agree, and sometimes they put in a penalty clause, depending on the contract.
Why this happens: when effort is underestimated, the deadline is set against an imaginary target. The developer's "two days, please" request is the estimation-risk indicator firing at ground level — the percentage-of-effort review is the same signal seen from the manager's side.
Q: Do your requests for better tools — high-powered workstations or more powerful software — get approved?
A: Sometimes they get approved; sometimes they don't even get approved. You may be working with a five-year-old laptop, and your request for replacement has been lying with them for two years. Especially high-end workstations, with two monitors to code and debug on — sometimes you will not get them on time. This is the technology/tools indicator in action: unapproved tool requests are a warning sign that tool risks are growing, and productivity will suffer.
Recap + bridge. Risk monitoring keeps the whole process alive: at every management review, each key risk is assessed separately using per-risk-type indicators — effort percentage vs. plan, HR inaction, staff morale, change-request volume, tool and hardware complaints — and the risk's probability and consequences are re-judged. With identification, analysis, planning, and monitoring in place, the lecture turns from the project to the people side of management.
Real-world connection. Risk monitoring is exactly what project dashboards and status reviews institutionalize: burndown charts and velocity in agile, earned-value (planned percentage vs. actual percentage of effort) in plan-driven projects, and tooling requests tracked through procurement. The five-year-old laptop and the two-year-old request will be familiar to anyone in a large organization — and monitoring is what turns such complaints from anecdotes into tracked indicators.
15.12 People Management
Software is for the people, by the people. It is only people who are building software, and they are building software for people. Everything is done by the people, of the people, for the people. If you remove the "p" from software engineering, there is no software engineering at all — one leg of the tripod broken, and it cannot stand. Without people, there is no software. It is a human-intensive, creative activity, unlike digital manufacturing, where you can set up the process in detail and it will run automatically to produce product.
The tripod analogy. A tripod stands only while all three legs hold. Software engineering stands on people: they build it, they use it, they decide it is good. Remove the people — remove one "p" — and the discipline falls over. Unlike a digital manufacturing line, which can be set up in detail and run automatically, software development cannot be reduced to a machine: it is a human-intensive, creative activity at every stage.
15.12.1 People Are the Greatest Asset
The people working in a software organization are its greatest assets. It is very expensive to recruit very good people, and even more expensive to retain them and motivate them. It is up to the software project managers to ensure that the engineers working on a project are quite motivated and as productive as possible.
If you are not having a good relationship with your manager, you will not be very productive or even happy. You will be not only frustrated with your work, but also unhappy with your manager. So the manager has to keep the people motivated and as productive as possible. In successful companies and economies, this productivity is achieved when people are respected by the organization and assigned responsibilities that reflect their skills and experience. You feel valued only when you are appreciated and given responsibilities that are commensurate with your talent and experience — not a simple testing job or documentation job.
15.12.2 Why Good Engineers Do Not Always Make Good Managers
It is important that software project managers understand the technical issues that influence the work of software development. Unfortunately, however, good software engineers do not always make good software people managers. Software engineers often have strong technical skills but may lack the management skills that enable them to manage, motivate, and lead a large project development team, and to interact with a variety of stakeholders.
As a project manager, you should always be aware of the potential problems of people management and try to avoid such issues, and also develop strong people management skills. Most projects fail because of poor people management — poor people management is an important contribution to project failure. Many people leave their jobs due to bad managers rather than anything else.
Usually managers are not technical — some are direct MBAs from some consumer goods company and they hardly have any understanding of the technical work required in software engineering. Managing a software team like managing a consumer goods factory may not be acceptable to software engineers, who are more creative and intellectually oriented. They need to be respected, motivated, and given quality of work that is commensurate with their competence. We have all heard of people quitting jobs because of poor managers who are not cooperating with them.
The two-sided failure. People management fails in two directions at once. On one side, a brilliant engineer becomes a manager without the people skills to motivate and lead — technical strength does not carry over automatically. On the other side, a non-technical manager (say an MBA straight from a consumer goods company) treats a software team like a factory line and cannot speak the language of the work. Both are poor people management, and both push projects toward failure: most projects fail because of poor people management, and people leave jobs because of bad managers more than for any other reason.
15.12.3 The Four People Management Factors
There are four critical factors that influence the relationship between a manager and the people in the team that she or he manages:
- Consistency. All the people in the project team should be treated in a comparable way. No one expects all rewards to be identical, but people should not feel that their contribution to the organization is undervalued.
- Respect. Different people have different skills, and managers should respect these differences. All members of the team should be given an opportunity to make a contribution. In some cases you will find that people simply do not fit into a team and cannot continue — they may not be cooperative or may not work well with others — but it is important not to jump to conclusions about them at an early stage of the project, though they may be kept aside and counselled.
- Inclusion. People contribute effectively when they feel that others listen to them and take into account their proposals. It is important to develop a good working environment where the views of all — even those of the least experienced staff — are considered.
- Honesty. As a manager, you should always try to be honest about what is going on well with the project and what is going on badly in the team or in the project. You should also be honest about your level of technical knowledge and be willing to defer to staff with more knowledge whenever necessary. If you try to cover up your ignorance or problems, you will eventually be found out, and you will lose the respect of the group. A general manager who does not know anything about software should delegate technical decisions and leave them to the experts — not try to manage technical things they do not understand. That is honesty.
| Factor | What it requires |
|---|---|
| Consistency | Treat everyone comparably; no one undervalued |
| Respect | Respect skill differences; give everyone a chance to contribute; do not jump to conclusions |
| Inclusion | Listen to all views, even the least experienced staff |
| Honesty | Be honest about what is going well and badly; defer to more knowledgeable staff; delegate technical decisions |
15.12.4 Student Questions and Answers
Q: If AI can do the coding by itself, are the software people's jobs at risk?
A: Who will give the requirements? The software doesn't develop its own requirements — with all that ambiguity, confusion, and detail, incomplete or otherwise, somebody has to tell the AI what the requirements are. Otherwise how will it know? Even for artificial intelligence to give requirements, some people have to tell the requirements. So software engineers' jobs are secure — you can be rest assured. The reasoning: coding may be automatable, but eliciting, clarifying, and validating requirements is a people-and-domain activity, and it is the source of everything the AI builds.
Q: If you do not have a good relationship with your manager, will you be very productive or at least happy?
A: Not at all. You will be not only frustrated with your work, but also unhappy with your manager. It is important that the manager keeps the people motivated and as productive as possible — the relationship with the manager is a first-class productivity factor.
Q: Has it happened that some managers do not have the required technical knowledge and they talk about something without understanding what they are talking about?
A: Yes sir. As technical people, you will know what they are talking about. A general manager who says "I don't know anything about software you manage" should delegate and leave it to the experts. They should not try to manage technical things. That is honesty — factor four in action.
Exam note: The comprehensive exam is an open book exam, unlike the mid-semester exam, which was closed book. During the exam you can refer to the book and to the lecture material, and you can write and upload your answers. The textbook has a chapter on managing people — people management and team management — which covers these topics in detail; refer to it when preparing. There may be one question related to how people should be managed, if at all it is necessary.
Recap + bridge. People are the greatest asset: software is a human-intensive, creative activity, and most projects fail because of poor people management. Good engineers do not automatically make good managers, and the four factors — consistency, respect, inclusion, honesty — define what a good manager does. Next, the lecture looks at what makes those people motivated, starting with a famous theory of human needs.
Real-world connection. The "people are the greatest asset" claim is why successful technology companies invest heavily in retention — competitive pay, growth paths, and manager training — because recruiting is expensive and losing a skilled engineer costs far more than their salary. The four factors are also the basis of modern people-management practice: consistency shows up in standardized promotion rubrics, inclusion in feedback and review processes that hear junior voices, honesty in leadership principles that reward candor over covering up problems.
15.13 Motivation and Maslow's Hierarchy
15.13.1 The Hierarchy of Needs
Practical people management has to be based on experiences, and motivation theory is a large part of it. You have likely seen Maslow's hierarchy of needs before — the triangle: basic psychological needs like food and shelter at the base, then safety needs, then social needs, then esteem needs (that you need to be appreciated), and self-actualization needs at the highest level. It has been a century-old concept.
The triangle of needs. Abraham Maslow's idea: human needs are arranged in levels, and people are motivated by satisfying them — lower-level needs must be satisfied before higher ones pull attention.
- Physiological needs (the base): food, shelter, sleep — survival basics.
- Safety needs: feeling secure in the environment — a stable job, a safe workplace.
- Social needs: feeling part of a social grouping — colleagues, friends, belonging.
- Esteem needs: feeling respected and appreciated by others — recognition, being valued.
- Self-actualization needs (the peak): personal development — doing work that grows you.
For software professionals, the lower levels are usually already satisfied — software people are not hungry or physically threatened. So from a manager's point of view, what matters most is satisfying the social, esteem, and self-actualization needs.
At the top level, self-actualization is where you need to give people responsibility for their work, assign them challenging tasks, and provide opportunities for growth. Training is important here.
Motivation, not just needs. Motivation means organizing work and its environment so people work as effectively as possible. Unmotivated people work slowly, make more mistakes, and stop contributing to the team's broader goals. That is why the manager's toolkit at the top of the triangle matters: responsibility, challenging tasks, and training are the concrete levers that satisfy self-actualization.
15.13.2 Different People, Different Motivations
There are various personality types. You have seen people who are focused only on the task but do not interact with others. And there are people who are focused only on their career and their next promotion — trying to backstab others, self-centered people who try to get credit for everything the team does and get a promotion at the cost of others. Then there are interaction-oriented people. Every person has a different personality; these are just some classifications.
| Personality type | What motivates them | How they behave |
|---|---|---|
| Task-oriented | The work itself — the intellectual challenge | Focus on the task; may not interact much with others |
| Self-oriented | Personal success, recognition, career and promotion | Goal-focused on their own advancement; may grab credit |
| Interaction-oriented | The presence and actions of co-workers | Enjoy meeting people, chatting, teamwork |
Some are motivated by the work, some by their promotion, some by teamwork — they go to the office because they like to meet people and chat with them, and go and have a cup of tea or coffee in the canteen. Nowadays all companies have made it compulsory to work from the office, but most have a hybrid model — three days at the office and three days from home, which many like. Some people like going to the office just to chat up with friends, while task-oriented people prefer the solitude and peaceful environment of home, where they can focus on the work comfortably.
15.13.3 Student Questions and Answers
Q: Have you studied Maslow's hierarchy in school?
A: Not in school — outside school. Wherever you have seen it — school, college, or a management course — you will know the triangle of Maslow's hierarchy of needs.
Q: Do you prefer working from home or working from the office?
A: Most companies have a hybrid model, which is what I like — three days in the office and three days from home. Some people like going to the office just to chat up with friends; task-oriented people prefer the solitude and peaceful environment of home where they can focus on the work comfortably. The same workplace policy lands differently on different personalities — which is exactly why managers must match the environment to the person.
Exam note: No questions will be asked on Maslow's hierarchy of needs in the exam.
Recap + bridge. Motivation theory says people are motivated by satisfying needs — from physiological basics up to self-actualization (responsibility, challenge, growth) — and by personality: task-oriented, self-oriented, and interaction-oriented people are driven by different things. The last topic of the lecture applies these ideas at the level of the team: teamwork.
Real-world connection. Maslow's hierarchy is the century-old framework behind modern retention practice: companies satisfy social needs with office spaces designed for meeting (Google's campus social spaces are a classic example), esteem needs with public recognition programs, and self-actualization with training budgets and stretch assignments. The task/self/interaction personality classification is used in real team building — a good team mixes task-oriented doers, self-oriented finishers, and interaction-oriented communicators.
15.14 Teamwork
Most professional software is developed by teams that can range in size from two people to several hundred people. However, it is impossible for everyone in a large group to work together on a single problem. So large teams are usually split into a number of smaller teams and smaller groups, where each group is responsible for developing a part of the overall system.
15.14.1 Group Size
The best size for a software engineering group is four to six people, and groups should never have more than 12 members, even in a large team. If the groups are small, communication problems are reduced: people know each other, and the whole group can get around the meeting room to discuss the project and the software they are developing.
Why size hurts communication (a small calculation). In a group of people, the number of possible one-way communication links is . For a group of eight members that is possible pathways — with fifty-six possible connections, some people will rarely talk to each other. A group of four has only pathways, and a group of five, . That is why the rule of thumb is four to six members, with a hard ceiling of twelve: below that, everyone can know everyone and meet around one table; above it, the group fragments into people who barely communicate.
15.14.2 Group Composition and Cohesion
Putting together a group that has the right skills — the right technical skills, experience, and personalities — is a critical management task of the project manager. However, successful groups are more than simply a collection of individuals with the right balance of skills. A good group is cohesive and thinks of itself as a strong single unit. After you achieve success and deliver a successful project, the group says "we did it," not "I did it." That is what a cohesive group is about.
The "we did it" test. Ask any member of a team right after a successful delivery: "who did it?" A collection of individuals says "I did it" — each claiming their own piece. A cohesive group says "we did it" — the members think of the group as more important than any individual in it. They identify with the group's goals, are loyal to it, and protect it from outside interference. That unity is what makes a group strong: it can absorb problems and unexpected situations that would fragment a mere collection of individuals.
15.14.3 Group Organization and Communication
The effectiveness of the team depends on the people in the team. You need the right group of people involved in diverse activities — people like project managers, who negotiate, along with programmers and testers. The group should be organized, and the technical and managerial communications between the group and the project should be managed systematically.
Group organization raises the question: should the project manager be the technical leader of the group? The technical lead should technically be a technical lead — the person involved in critical decisions, in how knowledge is to be shared, and so on. The project manager has many other non-technical jobs to do.
Group communication covers the informal groups, the size, the group structure, the group composition, and the physical environment. A good office environment — conducive to work and good communications — can make work effective. A noisy open office, where everyone is on a call and you are mentally and acoustically disturbed, does not help.
The open-office trap. A shared open-plan space is good for casual communication but bad for concentration. When every neighbor is on a call, you are mentally and acoustically disturbed — the workspace that encourages communication destroys the workspace needed for deep work. The best environments mix both: private or quiet areas for focused development, shared areas for collaboration. Group communication is influenced by the group members, the size of the group, the group structure, the group composition, the physical environment, and the available communication channels — face-to-face or distributed.
15.14.4 Student Questions and Answers
Q: After your team achieves a success and delivers a successful project, would you raise your hand and say "we did it" or "I did it"?
A: My team would say "we did it." The project manager will say "we did it," not "I did it." That is what a cohesive group is about.
Q: Does it happen in large open-plan environments — a number of developers around you, all talking on calls with customers, disturbing your peace of mind?
A: Yes sir, that happens a lot. I feel very disturbed in noisy environments. The physical environment is a first-class communication factor: a noisy open office can undo the benefits of the best group composition.
Recap + bridge. Teams of four to six people (never more than twelve) work best because communication links grow fast with size. A good group is more than the right skill mix — it is cohesive: it says "we did it," not "I did it." Organization separates the technical lead from the non-technical project manager, and communication depends on size, structure, composition, environment, and channels. This closes the people-management story; the final topic wraps up the whole lecture.
Real-world connection. The four-to-six rule and the 12-member ceiling match the real design of software organizations: scrum teams are typically five to nine people, and large programs split into sub-teams rather than one giant group. The communication-links calculation is why managers resist over-staffing teams — and the open-office lesson is behind the industry-wide shift to hybrid layouts with quiet zones, focus rooms, and remote-work policies that let task-oriented people find silence.
15.15 Key Takeaways and a Classic Book
15.15.1 The End-of-Class Summary
Good software project management is essential. Software engineering projects are to be developed on schedule, within budget, and at good quality — and quality is the most important part. Software project management is much more challenging than other engineering management because:
- software is intangible;
- projects may be novel or innovative, so there is no prior body of experience to guide their management;
- software processes are unique and not structured and mature like traditional engineering processes.
Risk management involves identifying, assessing, planning, and managing risks. You should plan to avoid, manage, or deal with the likely risks if and when they arise.
People management means choosing the right people, providing the right environment, and making people as motivated and as productive as possible. People are motivated by interacting with other people, but there are technical people who are happy working independently in solitude. Software development groups should be fairly small and good, cohesive, friendly teams who can understand each other's work.
The key factors that influence the effectiveness of a group are the people in the group, the way they are organized, and the communication between groups. Communication between groups is influenced by the factors of the group members, the size of the group, the gender composition of the group, their personalities, and the various available communication channels, which can be face-to-face or distributed.
The lecture in one paragraph. Deliver software on schedule, within budget, at good quality — quality first. Management is harder than in other engineering because software is intangible, novel, and non-standard. Manage risk by identifying, assessing, planning, and monitoring it. Manage people by choosing the right people, providing the right environment, and motivating them. Keep groups small, cohesive, and friendly, and watch the factors that shape communication: members, size, composition, personalities, and channels.
15.15.2 The Mythical Man-Month
Real-world: if you have time later in your career, read a book called The Mythical Man-Month — a book on project management with a set of essays on software engineering, written by Frederick Brooks way back in 1975, fifty years ago. Most of the points are still valid.
One of the popular sentences in The Mythical Man-Month is about adding petrol to put out a fire: you will not put the fire out — you will just add to it. Adding people to a late project will only make it later. If a project is already delayed and you recruit two or three fresh graduates into the organization, will it delay the project further or finish it faster? You cannot finish it faster by recruiting a dozen freshers straight from college. Even if you employed nine women, the process of pregnancy and childbirth will still take nine months. Adding more people will not reduce the time — that is one of the key lessons in project management.
The professor's analogies — petrol on a fire, nine women and a pregnancy. Two images make Brooks's point unforgettable:
- Petrol on a fire: to put out a fire you add water; to make it worse, add petrol. To a late project, adding people is petrol: the fire does not go out — it grows.
- Nine women and a pregnancy: the pregnancy takes nine months no matter how many women are assigned to it. Some tasks are sequential by nature — adding people cannot compress them.
Why it is true: every new person added to a late project must first be trained, must read the code, must learn the architecture, and must be integrated into the team — and communicating with them consumes the time of the people already working. For a short time window, the cost of onboarding outweighs the extra hands. Recruiting two or three fresh graduates, or a dozen freshers straight from college, will delay the project further rather than finish it faster.
Where the analogy does not break. The man-month lesson is about late projects and immediate deadlines — adding people cannot recover a fixed date. It does not claim that teams never grow: increasing staff early in a project, before the design is set and while onboarding can be absorbed, is normal and healthy. The trap is adding people late, when the communication and training overhead consumes the time that the new arrivals were meant to save.
Real-world connection. Brooks's 1975 book, written from his experience managing the IBM OS/360 operating system, remains the classic reference in project management reading lists — the anniversary edition is still widely read. The man-month lesson is taught in every project management course and explains real industry behavior: managers resist last-minute staffing additions, and delivery-date recovery is sought through scope reduction, overtime, or schedule change — never through recruiting freshers the week before the deadline.
Exam Guidance Summary
- The comprehensive exam is an open book exam, unlike the mid-semester exam, which was closed book. During the exam you can refer to the book and to the lecture material, and you can write and upload your answers.
- The textbook has a chapter on managing people — people management and team management — which covers these topics in detail. Refer to it when preparing.
- There may be one question related to how people should be managed, if at all it is necessary.
- No questions will be asked on Maslow's hierarchy of needs in the exam.
- Software project estimation and costing are not part of the course syllabus, so they are not covered here and will not be examined.
- This topic is a general topic that is not essentially part of the syllabus, but it is covered in this class because it is the last class before the exams next week.
- The syllabus will be posted on the course page, and the relevant material is uploaded so that you can prepare well for the exams in the coming week.
How to prepare. The people-management chapter of the textbook is your best source for the one possible people-management question. Keep the four factors (consistency, respect, inclusion, honesty) and the reasons good engineers do not always make good managers ready in your mind. And remember the exam is open book — know where the material is, not just what it says.
Key Industry Applications
- Real-world: Layoffs are a catastrophic business risk in action — during the COVID period, Facebook, Google, and Twitter laid off thousands of people, sometimes overnight.
- Real-world: The bench is a standard industry practice — people between projects are kept on bench (no work, sometimes online training, essentially a paid holiday) until the next contract is signed.
- Real-world: Winning contracts often depends on key people: clients award projects because of named experts in the team, so the loss of a star engineer is a business risk, not just a schedule problem.
- Real-world: Fixed-price contracts in the software industry: companies deliver only what the price covers and treat every post-delivery change request as a new development project charged to the customer.
- Real-world: Consumer product companies (for example, Google and Microsoft product teams) keep lighter project management records, while safety-critical industries such as automotive control systems must record and justify every management decision.
- Real-world: Technology risk is visible in the shift from on-premises ERP technology to cloud — companies must retrain people every time the technology stack supersedes the previous one.
- Real-world: Agile development with the customer embedded in the team reduces requirements-change risk, but small teams of four or five people are fragile: losing two members can stall the project.
- Real-world: The Mythical Man-Month (Frederick Brooks, 1975) remains the classic industry reference: adding people to a late project makes it later.
- Real-world: Maslow's hierarchy of needs is the century-old motivation framework behind self-actualization practices: give people responsibility, challenging tasks, and growth opportunities.
SE Lecture 15 notes · Software Project Management
Sections Breakdown
Why projects must be managed, the constraints of budget and schedule, and the four success criteria.
The three differences from other engineering: the intangible product, one-off projects, and non-standardized processes.
Company size, customers, software size and type, organization culture, and development process.
Project planning, risk management, people management, reporting, proposal writing, the bench, and career tracks.
What a risk is, the three overlapping risk categories, and the risk management register.
The recurring common risks, requirements change, and size underestimation under fixed-price contracts.
The four-stage risk management process of identification, analysis, planning, and monitoring, including agile development.
Risk identification through team brainstorming, manager experience, and the risk checklist of risk classes.
Qualitative probability and consequence bands, with five worked rows of the risk analysis table.
Risk avoidance, minimization, and contingency strategies driven by what-if questions.
Per-risk-type indicators and the worked example of 50% of work done versus 60% planned.
People as the greatest asset, why good engineers do not always make good managers, and the four people management factors.
Maslow's hierarchy of needs and the task-, self-, and interaction-oriented personality motivations.
Group size and the communication-links calculation, cohesion, organization, and communication.
End-of-class summary and The Mythical Man-Month lesson about adding people to a late project.
Open-book exam guidance: what will and will not be examined, and how to prepare.
Real-world connections: layoffs, the bench, fixed-price contracts, and classic industry references.
Exam Revision Notes
Below is the distilled, exam-ready core. Every entry comes from the full explanation above. Use this section for rapid review; return to the main notes when a point needs more context.
Why Software Projects Need to Be Managed
Must-know: Good management cannot guarantee project success, but bad management usually results in project failure; the four success criteria are on-time delivery, within-budget cost, meeting customer expectations, and a coherent well-functioning team.
Top pitfall: Believing that only schedule and budget matter; ignoring the fourth success criterion (a coherent, well-functioning team) is a pitfall — a project that succeeds technically while destroying the team is not a full success.
Self-check: Name the four success criteria for a software project.
Connects to: Why Software Project Management Is Uniquely Challenging
Why Software Project Management Is Uniquely Challenging
Must-know: The three differences that make software management uniquely challenging: intangible product, one-off projects with rapid technological change, and non-standardized software processes.
Top pitfall: Assuming a late software project would be as visibly late as a construction project — software can look on-track until the final weeks because progress is only visible through evidence produced by the team.
Self-check: Why can a software manager not see progress by looking at the product?
Connects to: Why Software Projects Need to Be Managed, Factors That Shape How Software Projects Are Managed
Factors That Shape How Software Projects Are Managed
Must-know: The six factors that shape how software projects are managed: company size, customers, software size, software type, organization culture, and development process.
Top pitfall: Applying one management style everywhere — e.g., treating a safety-critical automotive control system with the lightweight records of a consumer product, or expecting informal communication with a bureaucratic government customer.
Self-check: Why must all management decisions be recorded and justified for a safety-critical system?
Connects to: Why Software Project Management Is Uniquely Challenging, Universal Project Management Activities
Universal Project Management Activities
Must-know: The five universal project management activities: project planning, risk management, people management, reporting, and proposal writing; and the meaning of bench — having no project work, a paid holiday that gets boring after about six months.
Top pitfall: The developer perception that managers do no work — behind the scenes managers have planning, risk, reporting, and proposal-writing tasks lined up; meetings are only the visible part.
Self-check: What does it mean for a developer to be put on the bench?
Connects to: Risk Management: The Basics
Risk Management: The Basics
Must-know: The three risk types — project (schedule or resources), product (quality or performance), business (organization) — and that categories overlap: a single event (e.g., an experienced engineer leaving) can be a project, product, and business risk at the same time.
Top pitfall: Forcing every risk into one category — the loss of a key architect touches schedule (project), design quality (product), and contract-winning reputation (business) simultaneously.
Self-check: Why is losing an experienced system architect also a business risk?
Connects to: Universal Project Management Activities, Common Risks in Software Projects
Common Risks in Software Projects
Must-know: The common risks (staff leaving, management change, hardware unavailability, requirements changes, specification delays, size underestimation, ineffective tools, technology change, product competition) and the fixed-price outcome: 1 lakh quoted lines growing to 10 lakh through requirement creep means delivering only what the fixed price covers and charging for every subsequent change request.
Top pitfall: Believing the customer's 'bug' label settles what is wrong — the engineer's 'it's a feature' response shows the requirements document is the contract, and the bug-versus-feature dispute is a requirements misalignment, not an argument about code.
Self-check: Why can a company legally deliver an incomplete project under a fixed-price contract?
Connects to: Risk Management: The Basics, The Risk Management Process
The Risk Management Process
Must-know: The four-stage risk management process: identification, analysis, planning, monitoring — iterative, continuing throughout the project; less formal but still present in agile development.
Top pitfall: Assuming a small agile team of five or six can absorb a two-person loss — it cannot; informal communication and lack of documentation make the team fragile, so the loss becomes a project, product, and business risk.
Self-check: Why is losing two members of a five-person agile team worse than losing two of a fifty-person team?
Connects to: Common Risks in Software Projects, Risk Identification
Risk Identification
Must-know: Risk identification methods (team brainstorming, manager experience) and the risk checklist classes: estimation, organizational, people, requirements, technology, and tools risks.
Top pitfall: Estimating very low to win a contract and then discovering the work costs far more — significant losses, possibly pay cuts or no salary if the company falls into deep financial trouble.
Self-check: What are the risk classes in the risk checklist used for risk identification?
Connects to: The Risk Management Process, Risk Analysis
Risk Analysis
Must-know: Risk analysis uses qualitative probability bands (insignificant to very high) and consequence bands (catastrophic, serious, tolerable, insignificant), ordered by seriousness. Key rows: financial crunch = low probability, catastrophic; unable to find replacement staff = very high, catastrophic; key staff ill = moderate, serious; CASE tool inefficient code = moderate, insignificant; size underestimated = very high, tolerable.
Top pitfall: Treating a low-probability risk as not worth tracking — the financial crunch is low in probability but catastrophic in consequences, so it must still be monitored; both ratings change over time and must be revisited.
Self-check: Why is 'unable to find a replacement with the required skills' rated catastrophic?
Connects to: Risk Identification, Risk Planning
Risk Planning
Must-know: The three risk planning strategy families: risk avoidance (reduce probability), risk minimization (reduce impact), and contingency plans (plan B for when the risk arises); planning is driven by what-if questions.
Top pitfall: Expecting plan B to be announced in advance — management usually keeps it unspoken and reveals it only when the exigency occurs.
Self-check: What are the three families of risk planning strategies?
Connects to: Risk Analysis, Risk Monitoring
Risk Monitoring
Must-know: Risk monitoring reassesses risk probability and effects at every management review using indicators per risk class; the estimation example: 50% of work done when 60% was planned means behind schedule, and the target is likely unrealistic because effort was underestimated.
Top pitfall: Treating a single missed milestone as proof of a wrong estimate — indicators are clues; the pattern of several indicators firing together confirms a risk; unapproved tool requests are a warning sign, not just an inconvenience.
Self-check: If 50% of the work is done when 60% was planned at review time, what does the indicator say?
Connects to: Risk Planning, People Management
People Management
Must-know: People are the greatest asset; most projects fail because of poor people management and people leave jobs due to bad managers; good software engineers do not always make good people managers; the four factors are consistency, respect, inclusion, and honesty.
Top pitfall: Assuming technical brilliance qualifies someone to manage people — software engineers often lack the management skills to motivate and lead a team; and managers without technical knowledge must delegate rather than manage what they do not understand.
Self-check: Name the four factors that influence the manager-people relationship.
Connects to: Motivation and Maslow's Hierarchy, Teamwork
Motivation and Maslow's Hierarchy
Must-know: Maslow's hierarchy (triangle): physiological, safety, social, esteem, self-actualization; lower levels must be satisfied before higher ones; for software professionals the social, esteem, and self-actualization needs matter most. Not examined in the exam.
Top pitfall: Assuming all people are motivated the same way — task-oriented people prefer solitude and the work itself, while interaction-oriented people are motivated by co-workers and social contact.
Self-check: What is at the top of Maslow's hierarchy of needs, and how do managers satisfy it?
Connects to: People Management, Teamwork
Teamwork
Must-know: Best software group size is four to six people, never more than 12 (communication links n(n-1): 8 people give 56 pathways). A cohesive group says 'we did it', not 'I did it'. Communication factors: group members, size, structure, composition, physical environment, and channels.
Top pitfall: Believing a group is just a balanced skill mix — a cohesive group that says 'we did it' is more than a collection of individuals; and assuming open-plan offices help everyone — noisy environments disturb concentration.
Self-check: How many possible communication links exist in a group of eight?
Connects to: People Management, Motivation and Maslow's Hierarchy, Key Takeaways and a Classic Book
Key Takeaways and a Classic Book
Must-know: Adding people to a late project only makes it later (The Mythical Man-Month, Frederick Brooks, 1975): like petrol on a fire, and nine women cannot shorten a pregnancy — new people must be trained and integrated, which costs more time than they save.
Top pitfall: Trying to recover a late project by recruiting fresh graduates at the last minute — the onboarding and communication overhead delays the project further; growing a team is fine early, not late.
Self-check: Why does adding people to a late project make it later?
Connects to: Why Software Projects Need to Be Managed, Why Software Project Management Is Uniquely Challenging
Exam Guidance Summary
Must-know: The comprehensive exam is open book; one question may be asked about people management; Maslow's hierarchy and software project estimation/costing are not examined.
Connects to: People Management
Was this lecture useful?
BitsNotes AI Assistant
Subject Notes AssistantConfigure AI Chat
Choose how to access the chatbotSigned in as
Powered by BitsNotes — 20 messages per day. No API key needed. Want unlimited access? Use "Bring Your Own Key" mode.
Sign in to use AI Chat
Get 20 free AI messages per day to ask questions about your lecture notes. Sign in with Google or GitHub — it takes 5 seconds.
Sign In to BitsNotesSwitch to "Bring Your Own Key" tab above for unlimited access with any OpenAI-compatible provider.