Posted by: ahmedashfaque | March 2, 2016

agile and software project planning – part 2

In the previous post we learned about risks on software projects and how plan driven project planning is not able to cope with these risks. Continuing to our discussion, there is one more areas which is prone to project risks, It is about testing the software product. How much time will be needed to completely test the software product is never known in advance. Software testing involves testing the software product and find out all software defects so that these defects can be rectified and thus the software product becomes defect free. Some factors which impact scheduling of testing activities includes number of defects uncovered and time required to fix them. It is never known as to how many defects are there in the software product and how much will be needed to fix them. This leads to unknown amount of time required to carry out testing activities. This is a major risk which definitely impacts the project schedule. So the project planning is never good enough and thus project execution will have unknown risks.

All the factors mentioned so far results in unknown quantity of risks associated with software projects. So any project planning done is never good enough. This means plan driven approach is not a good fit for software projects. This is why risk driven approaches to software development methodologies evolved. These methodologies are better known as agile methodologies. It is because these methodologies enable the project team to cope with ever changing demands of the customer. These methodologies also tackle project risks effectively. How they do it? let us learn.

In agile methodologies, a project planning is never done. So by design these methodologies are never plan driven. The motto here for the project team is: whatever software requirements come to the project team, they are ready to handle. For this to happen, it is important that the project team is small. The other requirement is that the project team should be working in real time so that they are exactly in synch with current demands of the customer. What it means is that they will work on a software product or a part of a software product which has product features which are currently in demand. This implies that the project team should complete their work in short cycles. Since the software product features should conform to the needs of the customer; so presence of the customer during software development is also required.

So we can see what agile means when it comes to developing software products. To implement the requirements of agile methodologies, concepts of customer on premises, iterative product development, incremental product development etc. have evolved. The software product is developed through small increments. Only a few software requirements are taken at a time and the project team creates the design and develops product features which fulfill these software requirements. These increments of the software product are integrated with the existing software product. Slowly but surely the software product thus gets developed which is always in synch with current demands of the customer. Since the customer is always present with the project team in form of a product owner or representative of the customer, customer requirements are always fulfilled.

Some of the most popular agile methodologies for software development include eXtreme Programming, Scrum, Unified Process etc.

We will learn more about planning aspects on agile projects in our next post.



  1. […] the previous post, we saw the essential ingredients of any agile methodology to build software products. Now we will […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s


%d bloggers like this: