SurvivalProjC5 

SurvivalProjC5 

Introduction 

Surviving a software project is hard. It takes focus, and implementing good systems to keep you on track. This guide will help you survive your project and develop a successful one. 

This article covers Chapter 5 of the Software Project Survival Guide by Steve McConnell. This chapter covers the importance of project planning, and how to create a project plan to help you succeed. 

Please keep in mind that this article talks about 'Staged Delivery', which is a project management methodology that is not as popular as Agile or Waterfall. However, the principles discussed in this article can be applied to any project management methodology. 

Let us begin. 

The phases of a project 

A project can be broken down into several phases. These intellectual phases are: 

1. Discovery 

2. Invention

3. Implementation

These phases are not linear and can overlap. Meaning, you can be in the discovery phase while also being in the invention phase. This is normal and should be expected. 

The first phase, discovery, is where you gather information about the project. This is where you figure out what the project is, and what you need to do to complete it. Things such as requirements gathering, and it can be done by interviewing stakeholders, and building user interface prototypes. 

The second phase, invention, is where you figure out how to solve the problem. In this phase, you will figure out the architecture of the system, and how the system will be built. As the book mentions, this is the transformation of uncertainty into certainty. 

The third phase, implementation, is where you build the system. This is where you write the code, and test the system. This is where you make sure that the system works, and that it meets the requirements. 

Having flexibility in these phases is important. You should be able to move between these phases as needed. 

Project Flow 

The project flow is the order in which the project will be completed. In staged delivery, the project flow is broken 

down into several stages. 

1. Software Concept 

2. Requirements 

3. Architecture and Design 

4. Stage 1: Detailed Design, Construction, and Release 5. Stage 2: Detailed Design, Construction, and Release 6. Stage n: Detailed Design, Construction, and Release 7. Software Release 

Staged delivery emphasizes the importance of planning and risk reduction. By breaking the project down into stages, you can reduce the risk of failure. 

In the book, the author mentions that staged delivery gives several benefits. These benefits include: 

1. Critical Functionality is Available Sooner 

TO SUMMARIZE: 

The software does not have to be fully completed before it can be used. Users can start using the software as soon as the critical functionality is complete. 

2. Reduced Risk 

TO SUMMARIZE: 

Delivering the software in stages reduces the technical risk of unsuccessful integration. This is because releasing the software in stages allows you

to identify and fix problems early on. From the requirements perspective, staged delivery reduces the risk of delivering the wrong software that does not meet the user's needs. 

3. Problems Become Evident Sooner 

TO SUMMARIZE: 

By delivering the software in stages, you can an idea of the project's progress. Whether the release is on time or not, you can gauge the software's quality from the release's quality. From there, you can intervene and fix the problems. 

4. Status reporting is Simplified 

TO SUMMARIZE: 

Developers spend less time writing status reports 

5. Staged Delivery Makes More Options Available TO SUMMARIZE: 

Staged delivery gives the team more options on whether to release the software or not. But it will always drive the project to a releasable state. By the time the team wants to release the software, it is already in a releasable state. 

6. Time estimates are more accurate 

TO SUMMARIZE:

By breaking the project down into stages, you can make more accurate time estimates. Instead of making 1 large estimate for the whole project. you can make smaller estimates for each smaller release. 

7. Staged Delivery balances flexibility and efficiency TO SUMMARIZE: 

Delivering software in stages gives the project team a defined set of periods to consider making changes. This period is the time between releases. The book mentions "Addressing changes between stages frees the team from having to consider changes continuously and builds a 

guarantee into the project that changes will be considered periodically.". This gives the team a mental break from having to consider changes all the time.

Drawbacks of Staged Delivery 

While staged delivery has its benefits, it also has its drawbacks. It increases the amount of work such as testing, documentation, and supporting previous 

releases. As you release in more stages, this kind of work will increase. However, these costs often remain hidden until the project is well underway but are exposed when staged delivery is used. 

Conclusion 

Staged delivery is a project management methodology that emphasizes the importance of planning, and risk reduction. By breaking the project down into stages, you can reduce the risk of failure. This methodology has its benefits, such as critical functionality being available sooner, reduced risk, and problems becoming evident sooner. However, it also has its drawbacks, such as increased work in testing, documentation, and supporting previous releases. Finding the right balance between the benefits and drawbacks of staged delivery is key to a successful project. 

Part 2 will discuss the planning phases of a project, and how to account for the amount of effort, and time needed to complete a project.

Author: Aiman DeTA



More . . .

Copyright ©2024 Mulhaq. All rights reserved.