How to manage software project

Standard

Starting a project from scratch could be very overwhelming. Especially if you are beginner in the project management and  you are not sure from where to start or how to connect all the pieces.

Would it be nice to have a complete guide on how to manage a project with a real-life example? From the initial phases of creating a business case, collecting the requirements, to the executions and all the way to closing.

The experiment

Having all that said  I decided  to create a series of blog posts where I will introduce a Software Project and plan it step by step, including all the necessary parts and relevant tutorials for it.

For being more specific and closer to the real world I will plan and build an open source software project. Sounds interesting, huh?

cartoon-admitting-mistakes.jpgThe product

Some time ago I did a small research about the estimation practices in the project management.

While I was doing that I didn’t found any useful web application which provides tools for performing Monte Carlo Analysis and basic estimations like PERT or 3-points.

So I thought it would be awesome if we have a simple tool, which can provide this functionality – simple, easy and user friendly.

The best of both worlds

I will begin my experiment following the Watefall model – create the project charter, collect the requirements, create Work Breakdown Structure (WBS), define and estimate the activities.

Meanwhile, according to the plan, I will write some code and create the application myself 🙂

The main goal here is to apply all the theory I have learned from the PMBOK, practice my PM skills and create a valuable product at the end.

Feel free to share your thoughts about my experiment or give advises, using the following twitter hashtag #onlineestimations or comment here 🙂

So, let’s start!

In this article I will create a project charter and identify the stakeholders, as part of the initiating phase.

The Project Charter

Creating a project charter is one of the most essential parts of the project planning. At first it may looks unecessary, however it can help:

  •         the stakeholders to have an overview of the project’s main goals
  •         you clear your mind over the project
  •         finding the weak spots

Here you can find great tutorial on how to write your project charter (free template in included).

Back to our project: in the next few paragraphs I will fill out all the components, needed for creating a project charter.

Business Case Statement
Currently in the market it is hard to find a free system, which allows the project managers to create estimations of the tasks in their projects and compare different approaches.

The system we are aiming to create should give the end user different options for their time or costs estimations, using the most popular and useful techniques. It would also allow them to perform Monte Carlo analysis, which can predict many different possible outcomes, based on statistical formulas.

Problem Statements
1. Turn the complex statistical formulas in programming algorithm.
2. Create the system simple and user-friendly.
Goal Statement
1. To have a tool, which can use different estimation techniques and can show the difference in the end results.
2. To have a graphical representation of the results.
Project Scope
Deliverables: The system should have options for using a PERT and 3-Points estimations, should allow to perform a Monte Carlo analysis, should show a graphical representation of the results, should compare the different techniques and export the end results.

Assumptions: The system shouldn’t have a very complex architecture.

Constraints: One or two months for development and one resource.

Out of Scope: Only one type of Monte Carlo should be implemented.

High-Level Project Risks
One risk would be the transformation of the statistical Monte Carlo formulas to working algorithm.
Stakeholders & Affected Business Areas
The project will be open sourced, so every project manager could benefit from it.
Core Team Members
As this is experiment, only me 🙂 I can use some external consultants though, so every volunteer is more than welcomed.

Our next step will be to create a stakeholders list. In our case this is only an experiment and we don’t have any different sides involved, so we should kind of skip this part.

However as I try to design the system to be useful after all, I will treat myself as an end user.

If you want to see how the planning will go, use the hashtag #onlineestimations

 

Project estimations with Monte Carlo Analysis

Standard

The estimation process in project management is quite an important activity because many decisions depend on its precise completion. It is quite challenging considering all the different factors impacting the project’s execution. That is why there are various techniques which can help us create our estimations.

In this article we will have a brief look at the most common practices according to PMI and we will pay special attention to those of them based on mathematical approach.

Estimation Techniques

  • Analogous estimating – we compare our current project with past similar ones. This technique is also known as “top-down”. We should be careful with it because sometimes it’s not very accurate.

analogous2

  • Parametric estimating – we estimate the unit cost/duration per activity and then the number of units required for completing it, e.g. $10/hour or 3 days/module. The measurement, however must be scalable, otherwise we risk to lose accuracy.
  • Bottom-up estimating –  we have concrete information about the atomic activities, so we can estimate them in lowest level, then easily combine them in order to get estimation for the composed activities and thus for the entire project. This approach might be very time consuming, so it needs special attention when it comes to lager projects.
  • Three-point estimation – this technique considers the risk and uncertainty by taking in mind estimations for the optimistic, pessimistic and most-likely outcomes:

.opm

We can use it by identifying values for optimistic (best-case scenario), pessimistic (worst-case) and most-likely values of the current task. After that we can calculate the formula for receiving more accurate result for the Mean – the technical definition of “average” value.

       3p

  • Three-point estimation – PERT – variation of 3-point estimation where we have again the values for Optimistic, Pessimistic and Most-likely estimation. The difference lies in the formula where we calculate the most-likely value with different weight.

pert

Based on the Beta distribution, this statistically proven formula will give us more realistic result of the Mean.

We can also calculate the standard deviation – “σ”, which measures the amount of variation from the mean. This can be quite useful when we measure the risk of the uncertainty, but this is a topic for another article 🙂

deviation

The last two techniques are really common in the project management world, but unfortunately they give us only rough estimations. There are times when we need a justification of the decision we have made and this simple formula would not be enough.

This is where the Monte Carlo Analysis comes in.

Monte Carlo Simulation

Technique, used in project management where we can calculate random project estimations within a given range, as many times as we want. This simulation is based on probability distribution and produces many different outcome values.

Now, let’s see how this estimation works…

Example

We were given the following data for completing a simple task in days. You can think of something like creating a super simple mobile application upgrade.

example

We will calculate the Mean with the techniques above and will monitor the differences

Three-Point Estimation omp1

Using this formula the result for our Mean is  = 7.667

 

PERT Estimation

omp3  Using this formula the result for our Mean is  = 7.833

Did you notice the difference between the two values?  Now let’s take a look at another technique for estimation…

Monte Carlo Simulation

First we will try simple simulation of random values from 5 to 10 and apply it 500 times.

The result here for the Mean is 7.547.

You can notice that in this scenario we don’t use the most-likely value, that’s why the mean is a bit lower. However if you try it with very large numbers the difference won’t be that significant.

Note: For those of you who are interested in testing this in Excel, the formula for random number between a range is RAND()*(P-O)+O this is necessary because the rand function returns a random number between 0 and 1 and this way we can use it for whatever range we want.

Monte Carlo Simulation v2

In the next test we will use the Monte Carlo Analysis with the Triangular distribution – it will use optimistic, pessimistic and most-likely values:

distr

From this graphic we can notice that the values which are occurring most frequently are between 7.5 and 8.5.

The average of all the 500 random values is 7.733 a lot closer to our most-likely value. Therefore our Mean is 7.733.

Conclusion

As we tried different estimation techniques we found out that the result are approximately the same with slight difference, see below.

final

However every project is unique and it is our responsibility to find the right method and use it, but remember these estimations will never give us 100% probability.

Cheers!