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

 

Advertisements

How to read and create Pareto Charts

Standard

Pareto Principle

We have all heard something about the Pareto Principle. Actually it goes with different names, such as:

  • Pareto Low
  • 80-20 Rule
  • The Principle of Imbalance
  • All kind of modifications of these

It is very powerful tool, which can help us perform a root cause analysis and detect the most important issues in our project.

The most common phrase related to Pareto principle is:80-20

 

 

 

You can encounter the following as well:

  • 80% of the results come from 20% of the efforts
  • 80% of the sales come from 20% of the customers
  • 80% of the work is completed by 20% of the team
  • 80% of the customers uses only 20% of the features

In this article we will have an overview of the Pareto Diagrams, how to read them and how to create them.

First let’s take a look at the following scenario.

The problem

Our management is giving us a task to improve the user experience in the company’s website. So what should we do first?

One option is to collect feedback from the current users for what is bothering them.

The result of online survey, sent to 200 of our regular visitors, is a total of 162 responses.

What should we do next?

Create a list

Divide the responses to different categories (it is considered a good practice to have less than 10 different categories).

At the end we come up with the following list, which now should be analyzed.

g1

That’s the moment when the Pareto Diagram comes to our mind.

Take a look at the graphic below, it looks complicated, but actually it is not at all.

pareto-graphic

As you can notice the blue bars represent the number of users complaining about similar issues. The interesting part here is the orange line which is also called cumulative line or Pareto curve.

This line gives us the cumulative weight of every bar.

So far, so good. But where exactly lies the Pareto principle here?

Imagine you can draw a line across from the 80% mark to the cumulative line and then down into the bars, as in the diagram above (the dotted red lines).

This means that 80 percent of our complains come from the first 2 issues – the site is too complicated to navigate and it is too slow.

This sounds awesome, right?  If we manage to eliminate the two problems we will get significantly higher feedback.

Create your own Pareto Chart

Now when you already bought the idea of using Pareto Diagrams, let’s learn how to create them.

Step 1

We need to get our initial statistics and sort them out from largest to smallest:

sorted-data

Step 2

We need to create another column for the cumulative values. For each cell in the Cumulative Count row as value we need to set the total number of complains from the rows above.

So for instance, in the cell C2 we put the same value as the one in B2, as this is the first row we count.

pareto-cumulative

Step 3

After that in every cell we put the sum of the users’ complains (the current row included).

pareto-cumulative-done

As you can see in the last 7th row we have the same value as the total number of complains. This means that our calculations are correct, so we can proceed with getting the cumulative percentage.

Step 4

The next thing is to create a Cumulative Count % Column which can count the percent of every row from the totals. You can do this by dividing the cumulative value by the total and multiply by 100:

cumulative-2

After we do that for the whole table it is time to create the graphic.

Step 5

First you need to select Column A, B and D at the same time without selecting the Total row.

Then click on Insert tab of the Excel and select a graphic.

pareto-diagram

Right after you do this, you will receive the following diagram, which of course needs to be modified a bit.

Step 6

You have to select the orange bars and click right button of the mouse, then select Change series char type.

pareto-chart

You will get the following screen from where you need to pick the Combo type and select the second chart.

pareto-setting

That was the last step before our creation is done.

I hope the article was useful to you.

Cheers!

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!