Project Estimation on Successful Projects

Project Estimation - successful and unsuccessful

What is Project Estimation

Project Estimation is where you work out what length of time in man days or man hours that it will take to complete a task. all of these tasks are added together to get the Project Estimate.

Project Estimation is one of the most important tasks for a successful project. Yet so many places get it wrong. If you get it wrong then you can be scuppered right from the start. You will be fighting an uphill battle all the way – and it will be unsuccessful.

1. How Are Projects Estimated

I have never seen anything so unscientific as the process used for estimating IT projects. It goes something like this. If 100 metres can be run in 9.58 seconds then if you multiply that by 100 you can see how fast someone can run 10,000 metres.

What usually happens is very rough. The project estimator(s) will take chunks and say this should take 10 days, this should take 15 days, this should take 12 days. This is just from their experience but it is a very rough and unscientific method of estimating.

2. Who Estimates Projects Currently

You often get a Project Manager coming in from the outside who estimates the projects. All they can estimate is how long it would take the average person in previous places he or she has worked on previous projects he or she has worked on.

They have no idea on the speed that the people at this new company can create software. Let’s face it, even the people who have been at the company a long time would be pretty poor at estimating how long people they know would take to do a piece of work never mind someone from the outside.

3. How Project Estimation is Done

Tell me this. How long do you think it would take me to run 10,000 metres? That’s right, you know very little about me, what condition I am in, what age I am, whether I smoke or not etc. It could be anything. However, what if I gave you an extra piece of information?

What if I told you that the last time I ran 10,000 metres I did it in 40 minutes. I also said that I had done some good training since then and was now in slightly better condition.

That would help you a lot in estimating how fast I could run 10,000 metres next time out. If you then estimated that I could run it in 39 minutes next time you probably wouldn’t be very far out.

4. How Projects Should be Estimated

So, now tell me. How often, in project estimation, is this information available. That is, how speedy are the analysts and developers in an organisation. What is the quality is the code that they produce?

And yet, as you could see from my 10,000 metres question, this information is crucial. That’s if you are going to make a proper assessment and do a proper project estimation of how quickly a project can be done.

With the information of how fast I had done the 10,000 metres it would be entirely possible to do a reasonable project estimation of how fast I could run a 10,000 metres again. Without this information you are likely to be wildly out in your project estimation of how fast I could run the next 10,000 meters I participated in.

And yet this is how, in IT, project estimation normally works. Stupid isn’t it?

How to Estimate Current Company Project Speed

The first thing anyone should do before project estimation is to find out how quickly that the company was able to do previous projects. This will not be as difficult as you may imagine. The company will have a record of how long the project took in terms of man days, how much the system cost. It will also have the functionality of previous systems documented.

The first thing that a new Project Manager must do is to find out how fast the company was previously in creating a system. He or she should take a good example from a recent similarly sized project.

The best way to measure the speed of a company in doing projects is to count the function points. It’s not a perfect way of project estimation. However, it’s a lot better than the usual finger-in-the air method that is currently used.

5. How to Use Function Points to Measure Projects

You will have been provided with the number of Man Days that the previous system took to implement. Once you have your Function Points counted, you can then divide the Man Days by Function Points. That’s to find out how many Function Points were previously delivered per day.

Once you have that information you can then use that for project estimation on the new project. You have the specification. So go and count the expected Function Points. One problem that you have here is that, as the system progresses, the number of Function Points is likely to rise as functionality is added or reveals itself.

6. How to Estimate Likely Project Creep

What you should do here is to ask for a copy of the original specification at the start of the previous project. That is before any functionality was added. If you count the function points in that you can then see how much the number of Function Points increased through the project.

If it rose 30% through the project you would then add 30% to your estimate once you’ve counted the initial Function Points as that is the growth you would expect. This may take a little time but it is well worthwhile.

7. How to Use the Average Company Speed for Estimating Projects

This shows you the rate that the organisation can create working code. However, the individuals on your project may not be all the same. Also, they may have different speeds of producing code. Although salaries are not that different in IT for people on the same grades, at the same companies, productivity can be very different.

However, when estimating the length of time a project will take it is probably better to take the company average rather than factor in the different speeds that different developers and analysts go at. This will give you a little extra contingency.

So take that for granted in the beginning. Otherwise you could be badly hit if some of the better people took ill or left the company.

So, now you have your scientifically calculated the speed that the organisation can create working code. You should use that now for your estimate of the project and include the Function Point growth contingency.

The Cost of Failed Projects

Failed Projects

Failed projects

Failed Projects are costing companies and countries an absolute fortune every year. The cost of Failed Projects accumulated each year comes to more than the Gross National Product of some hefty sized countries.

Let me first of all give you some shocking facts related to the development of technology projects.

EU figures looking at 214 technology projects from 1998 to 2005 showed that only 1-in-8 technology projects met their time, budget and quality objectives.

Indeed the total cost of technology project overruns in the EU in 2004 was £142bn. Yes, that’s billion.

They found that 23.8% of all projects don’t get finished at all.

Project Failure

A survey by KPMG in 2010 showed that  an incredible 70% of organizations had suffered one or more failed projects in the prior 12 months!

A survey by Logica in 2008 showed that 35% of organizations abandoned a major project in the last 3 years.

A survey by KPMG in 2005 showed that only 2% of organisations said that their projects that year met all of their objectives.

Fixing Faults

According to Dosani 80% of technology projects cost more than they return. That’s because the companies overestimate the benefits and underestimate the costs.

According to the National Institute of Standards & Technology in the USA companies spend £60bn a year fixing faults in IT systems. Indeed 80% of the cost of a system is in making fixes to it.

In January 2013 it was announced that the Ministry of Defence had overrun by £468m on 16 projects in the past year. They had a total slippage of 139 months in the past year.

So, they have 16 projects that have overspent by an average of £29m each. Also, they have slipped by an average of 8.7 months each  in the last 12 months.

There are some astonishing figures here that show that the world has not come to terms with successfully implementing software projects on a regular basis.

Just try getting the system you are going to develop insured against failure.

Change Needed

All over the world technology projects are failing and costing companies and countries incredible amounts of money.

Something has to change.

Companies need to take another look at the way they develop software. The whole paradigm is wrong. There are just too many failed projects.

Successful Projects

At one company where we ran projects for major companies like Texaco and Exxon (Esso) we managed to get 4 out of 5 projects done on time. One of them  was well ahead of budget and ahead of schedule.

The only one that failed to deliver was one that we had to outsource as we didn’t have the right skills in-house to do it.

Our people looked askance at the poor project management practices on the project. It was  as if they were looking at a backward people using backward methods. They were not surprised when the project failed.

Huge Opportunity

Because there is such a huge problem there is also a huge opportunity. We intend to explain what needs to be done to get projects completed not just on time, to budget and fit-for-purpose but to be finished ahead of schedule and ahead of budget.

We change completely the way projects are run. We’ll explain how it is done in coming articles on this website.

In 2009, Roger Sessions, a well-known author on the subject, in a White Paper called The IT Complexity Crisis: Danger and Opportunity, estimated that failed projects in IT cost a staggering $6.2 trillion a year globally.

That’s more than the GDP of the UK ($2.43 trillion) and Germany ($3.57 trillion) combined.

Houston, I think we have a problem!

I think we also have a solution!

Projects Overrun – 11 Reasons why Projects Lose Money

Projects Overrun

Why Projects Overrun

Projects overrun all the time. They overrun for many reasons.

Most Projects lose money. Here we want to show you why projects overrun both time and budget. We will show you the main areas where money leaks away. We tell you how to stop the haemorraghing of profits from the project or the overrun of budget.

A Finance Director of my acquaintance once said, when I gave him the Project estimate plus or minus 30%, “You can forget the -30%. Projects are never under. You just hope that they are not too much over the +30%”. He was, of course, correct to say that (but not on this project).

There are many reasons why they overrun.

1.  Firstly, project estimates are usually wildly out

because there is no historic data on how quickly an organisation can produce software and so the estimation process is completely flawed.

If you were asked how much time someone would take to run a marathon without knowing what time they took previously your estimate could be wildly out.

The first task before estimation should be to find out the previous speed of delivery of functionality. This can be measured in Function Points per Man Month.

2.  Secondly tracking a project is wildly out

mainly because incomplete tasks are counted in the tallies. How does one know how many errors there are left to fix in a piece of software?

Developers underestimate the time left to complete to take the pressure off themselves. Who wouldn’t? Only completed tasks should be counted.

3.  Thirdly, there is no motivation for anyone to finish ahead of schedule

. That means that the different components of a project are either finished on schedule or behind schedule. Unless you are very lucky and all the many components are finished on time then the project will be over time and over budget. There are several ways to cure this problem.

4.  Time is the most important thing on a project

and that is what is measured and monitored. However, Fitness-for-Purpose and Quality are usually more important to the customer.

However, these get sacrificed because Time is the most important driver whilst the project is running and the others are not usually measurable or measured during the project. The goals of the project should be aligned with what the customer wants. We have ways to measure this.

5.  They say be careful what you measure as that is what you will surely get.

They also say Time is Money. However, this is not the case on projects. Because Time is all important, quality and fitness-for-purpose of the system suffers. The rework to fix this scuppers the Time (and money) as well. This is the main reason for the failure of virtually every project and it is very curable. It makes projects overrun.

6.  The Customer is King so they say – and who would want to upset a customer?

Unfortunately, the customer, or those working for the main customer, are the ones most likely to screw up the project budget. They fail to deliver information, equipment and data on time unless there are systems in place to make sure they can’t. There seldom is.

No one likes to kick the customer but there are times when the customer becomes the supplier. Processes must be put in place to make sure they, like any other supplier, deliver on time – or else.

7.  External suppliers can also screw up the schedule, budget and profitability of a project,

and make projects overrun, by not delivering on time. There are seldom mechanisms in place to make sure that this is monitored and everything is delivered on time or there are severe penalties.

8.  The way projects are measured,

and the way those working on them are monitored, is penal, de-motivating and bad for morale. There are better ways of motivating those working on projects and making them strive for success rather than having all their concentration on not failing.

9.  The person running the project may well have got to that position by being a good analyst or developer.

However, the skillset for running a project is totally different from the skills and abilities they have shown so far.

Any aptitude for their new role would be just a fluke. The project management role on a project should be split the way it is in the film business. They have a Director responsible for creating the system and a Producer responsible for the logistical side.

This is currently done nowhere. So brilliant analysts and developers are failing and causing major losses to their companies because they can’t estimate, track and manage suppliers. They can’t manage the other logistics that are needed to run a project successfully. These are skills which are nothing to do with being a good Analyst or Developer.

10.  The same mistakes are made over and over

in projects which is why projects overrun. There is never time to look at what went wrong and how it could be put right with both a short-term and long-term solution.

Even football teams take time on a Monday morning to go through the video to show how things went wrong. This is so that the team can see how they can stop those things going wrong in the future. The same system would work on IT projects.

11.  One of the main ways that profitability leaks away from a project is through poor Change Control

.  If this is not rigidly adhered to the customer gets a lot more functionality than they paid for and projects overrun. Of course functionality will grow as one looks more closely at a project. However, that is an opportunity for a supplier to make more money from a project rather than get the same amount of money for a greater amount of functionality. This is one of the main money leakers on a project. It should be one of the great money makers on a project.

Success Rewards

Capitalism has been a much greater success than communism. Yet at one of the bastions of capitalism, free market companies, their IT projects are run as if they are the command and control economies of communist states. There is little motivation for the workers to achieve. It would be much better to open the doors to capitalism and unleash the people on IT projects to achieve. The reward of success should be the main goal of people management on projects rather than the fear of failure.

The FD said to me “You can forget the -30%. Projects are never under. You just hope that they are not too much over the +30%”. That is certainly true in the way the great mass of projects are run. However, it doesn’t have to be so. We have shown you why projects overrun. However, there is another way.

Read on…

Accurate Project Tracking for Successful Projects

Project Tracking

Project Tracking

One of the most important factors in a successful project is accurate Project Tracking. People seldom track projects accurately for reasons we will describe below. Bad data means bad information provided to management who then take bad decisions based on that bad information.

Time Pressure

Virtually all the pressure put on those working on an IT Project is Time Pressure. To everyone involved in a project being on schedule is the most important aspect of the project while it is being built. That is because time is money and it is easily measurable.

From developer to project leader to Project Manager to the Project Sponsors and senior people in the company time against schedule is by far the most important measure of a project when it is being built.

Of course, when a system is implemented and put into production there are other factors that become more important, i.e. where the system does as it is supposed to do, whether or not it is easy to use, the quality of the system in terms of how it works and how often or little it falls over.

These will all become more important eventually than time. However, they are less easily measured than time and are less important in terms of the tracking of the system during the build.

Project Tracking and Management

Virtually all the Project Management tracking during a project is about tracking time. That is a huge mistake – and counterproductive. It is the main reason that projects are late and over budget.

Be careful what you measure because that is what you get. There is tremendous pressure on developers to deliver on time.

So they do. It takes the pressure off of them. However, sometimes they would be better to take a little longer to test the software to make sure that it is working properly before handing it over for testing.

However, at that stage, no one is putting quality or fit-for-purpose pressure on them.  So what you get is software on time – but not necessarily fit-for-purpose or properly tested.

User Acceptance Testing

It has been shown by studies that the earlier you catch a problem in the software development cycle the cheaper it is to fix. If it is caught early in the cycle it is very cheap to fix. If it is caught late, e.g. in User Acceptance testing or in Production it is very expensive to fix.

And yet there is so little pressure during the software development process to get things right from te start. It’s all time, time, time. That’s what gets measured and this is where all the pressure comes from. And yet time is seldom the most critical factor on a project.

Quality Solution

So, how do we get round this? How do we make the most important factors on a project the most important factors while the software is being built? How do we pit Fit-For-Purpose and Quality pressure on developers during a project?

That’s very easy. You ask the customers what is important to them, how important it is and then you reward all those along the software developer supply chain for giving the users what they want.

Simple, isn’t it?

Fitness for Purpose

So how do you do that?

Very easy indeed!

You just ask the customers or users. You just ask them what they want from the Project and how important it is to them.

They usually come up with Fitness-for-Purpose (it does what they asked for and what they want), Quality (in terms of not falling over), Ease of Use, Timeliness and Documentation. You then ask them how important these different factors are. You ask them to give a relative weighting factor.

Project Results

It will usually go something like

5 – Fitness-for Purpose

3 – Quality

2 – Usability

2 – Timeliness

1 – Documentation

There you are. You see how relatively unimportant timeliness is in the scheme of things. And yet that is the main thing that is measured during a project. That is the source of the main pressure.

Time Pressure on Project

However, this is counterproductive. The more time pressure you put on the less Quality, Usability and Fitness-for-Purpose you will get – and that will have a huge impact on timeliness in the end as you will have to fix all of this late in the cycle rather than early when it would have been much cheaper to fix.

Once you know what the user wants from your software development and from the system you are going to deliver to them then you have got to make sure that this is what is delivered to them.

Supply Chain

So, how do you do that? You create a Supply Chain from developer to analyst to systems tester to User Acceptance tester to the End Customer. At each stage whoever is receiving the software will give it marks for Fitness-for-Purpose, Quality, Usability, Timeliness and Documentation. They will be marks out of ten.

These marks will then be multiplied by the weighting factors so that the Timeliness mark will multiplied by 2 and the Fitness-for-Purpose mark will be multiplied by 5. These marks will be added together to produce a total mark for the delivery.

Best Return on Investment

If they allowed me to introduce just one process at any company I went into, I would introduce this one. This one makes the most difference. The reason is that it totally changes behaviour and means accurate project tracking.

Whereas previously developers would succumb to the time pressures on them and hand over work they weren’t completely satisfied with, I found that the developers and analysts themselves would resist the time pressures a little more as the realised that the bigger marks were for Fitness-for-Purpose and Quality and wanted to make sure that they got good marks for those.

They would hold on to their software for an extra day or two beyond schedule to make sure they were completely satisfied with it and it wouldn’t keep bouncing back to them. Accurate project tracking matters a lot.

Right First Time

Getting things right first time makes a huge saving in timeliness as it saved in the usual heaps of rework that timeliness pressure usually means so, you see, the less time pressure you put on and the more quality pressure you put on the more time you save.

What I found when I implemented this was that you needed to manage projects and people needed a lot less. People knew what users wanted and so managed themselves. In fact even when you put time pressure on them they’ll resist you as they take the long-term view and deliver what users wanted most and what gets them the highest marks.

The easiest way to run a project is to put in good processes that reward people for the right things. That’s what you are doing here. Yet, how few project do this.

Good project tracking is crucial. Poor data results in poor information.

Rewarding Success on a Project – Getting it Right

Rewarding Success on an IT Project

Rewarding Success on a Project

The best way to get IT systems built on time is by rewarding success on a project.

A Chief Finance Officer of my acquaintance used to say when given estimates that were supposedly accurate to plus or minus 30%, “There’s no such thing as minus 30% in an estimate. The only hope is that it doesn’t go beyond the plus 30%”. He is absolutely right.

Once an estimate is in place you can never do it any quicker. Parkinson’s Law will kick in unless there is an antidote to it. And few Project Managers ever run projects with an antidote.

What happens, normally, is that at the planning stage, the project is split into tasks and time allocated to these tasks. Once a number of days is allocated to a task, that then becomes the minimum that a task will take.

A project is therefore composed of tasks that are finished on schedule and some that are finished late. The hope is that the late tasks do not add up to a figure that is beyond your contingency.

On Time or Late

Why do people seldom finish tasks ahead of schedule? Because there is ‘nothing in it’ for the developer to finish ahead of schedule.

If they ever do, they soon find the task estimates becoming even  tighter for them. They soon learn not to make a rod for their own back. They learn to pace themselves.

Finished Ahead of Schedule

What can be done to encourage them to finish ahead of schedule? The answer is to challenge them, appreciate them and reward them for it. Rewarding Success is crucial to get more of it.

Barry Boehm, of Cocomo fame, once calculated project productivity according to whoever estimated the tasks. If a programmer’s supervisor estimated the task, productivity was 6. If the programmer himself estimated the task, productivity was 7.

If the analyst who wrote the specification estimated the task the productivity was 8. If there was no estimate at all the productivity was 11.

This is not surprising. Parkinson’s law and the fact that there is ‘nothing in it’ for developers to finish ahead of schedule means people either finish tasks on time or late.

Project Without Estimates

What can you do with Barry Boehm’s information? You can’t run projects without estimates or plans. Senior Management would never authorise the project in the first place. However, as soon as the estimates are published, they are no longer estimates, they are minimum times. There is only plus 30%, no minus 30%.

The answer is that Project Plans must exist for reporting purposes to senior management but there is no need to publish these plans to developers. Instead, you should challenge developers.

Instead of being told that they have, for example, 20 days to complete a task, they should be told that their productivity is 20 Function Points per month and that the task is estimated at 20 Function Points.

Psychology Change

This is a change in psychology. Everyone wants to become better. The first way, i.e. number of days, is threatening to them. It is implicit in the estimate that when the time is up they will come under pressure and may be in trouble.

The second way is a challenge to them. A task which they complete at a faster rate than their norm gives them a sense of well-being in that they are getting better at their chosen profession.

A task which they complete at a slower rate than their norm is a lost opportunity to better themselves.

Productivity Metrics

This relies of course on you having productivity metrics for individual programmers. Individual organisations can decide whether these metrics should be published or not. There are pros and cons.

Some people say that people would stop helping other people as this would cut their own productivity rate and not allow them to progress up the ‘cricket averages’. You can cure this by not making productivity the only criteria for rewarding project personnel.

Rewarding Success – Teamwork

Teamwork, for example, should be another reward criteria. The England international cricket selectors do not just pick the players who are top of the batting and bowling averages.

On balance, I would tend to publish the individual productivity averages as this would tend to challenge people to not only better themselves but to become the best.

These productivity metrics are also useful to management. They need to find ways of keeping those with high productivity at the company. Rewarding Success is a really good way to do it.

It shouldn’t be the case that people have to be promoted into management in order to obtain rewards. You may gain a poor manager and lose a highly productive developer.

Reward Mechanisms

If you do not reward those who want to remain as developers, they will probably leave  your organisation. To earn money commensurate with their ability, they will probably become freelance.

You will probably have to hire expensive freelancers, who have no knowledge of your systems, to replace them.

The best way to keep them is by paying them a base salary plus performance bonuses. The performance bonuses should be related to their own performance, the performance of their project area, and the performance of the project as a whole.

Most organisations, who pay bonuses, pay too little to motivate their developers. These bonuses should be related to how much the project team save the organisation.

Monetary Rewards

If the estimate is based on previous productivity, then the project team should get 25 – 50% of what they save the organisation.

Organisations, especially when the Finance Director is present, tend to get too greedy when allocating a percentage of the savings to the developers. As a result this reward does not motivate them. The project doesn’t save anything. There are just additional costs.

A good example is in the City of London where traders earn most of their money by making lots of money for their companies. The difference here is that the developers would make most of their money by saving their organisations lots of money.

An organisation which keeps most of its best developers, who also have systems knowledge, and who become more and more productive with each project, is going to be powerfully placed to develop computer systems competitively.

Rewarding Success is vital to the success of the project.

Motivating People – Black Dan Developers

Motivating People

Motivating People on a Project

One way of motivating people is to give them a sense of achievement. Instead of threatening them with deadlines let them achieve.

My cousin is a fifth dan black belt at Karate. I thought that it was pretty good when he progressed through the various belts to become a black dan. I thought that this was it. He had arrived. I was even more surprised to find that he continued to progress through the dans and that he had become a bit of an expert. He had never been that confident before.

Now his self-esteem is extremely high and he carries that into other areas of his life. He had left school at fifteen to go into the shipyards. After succeeding at karate he went back to university and got himself a university degree.

Software Developers

Compare that to software developers. There are trainee developers, developers, and senior developers. At senior developer you have arrived. And then you don’t go anywhere – no matter how much better you become at software development. To progress you have to do something else like business analysis or project leadership

I’m not suggesting that you should call people fifth dan senior developers (exposing yourself to ridicule), but perhaps you could have Expertise Level 5 senior developers. Achieving these levels could be related to their productivity levels, quality levels, and customer satisfaction levels etc.

Objective Measures

If the measures are objective instead of based on management opinion, the developers know what they have to achieve instead of having them harass their managers at their reviews.

Striving for theses higher levels gives them objectives, keeps their interest, and motivates them towards continuous self-improvement. It also gives them status among their peers, status which they may not be able to transfer to another company.

Productivity through Motivation on a Software Project

Productivity Through Motivation

Productivity through Motivation

One of the greatest gains you can make on a software project is better productivity through motivation.

The great American Football coach, Vince Lombardi, once said that there are a lot of coaches who can improve the team tactically but that the really successful ones are those that can get “inside those guys’ heads and bring the best out of them”.

I have asked many people who work as developers in the industry how much more productive they could be if they were really motivated. Most of these have many years of experience. The answers they give me are usually in the range of being 50% to 200% more productive. I won’t name them here. When asked what would motivate them to achieve these greater rates of productivity they usually answer that if they were working for themselves they could achieve those levels.

Doubly Productive

It is very interesting to note that your project members could be, on average, doubly productive if truly motivated. Maybe they will never give you the same productivity that they would give themselves. You should be able to unlock some of these productivity gains, though, if you simulate, as far as possible, working for themselves.

You should create the conditions in which they profit (and profit well) from their productivity gains. You should use the model of the City of London traders. They are trained well, given a base salary, motivated by a sharing of rewards, and set free to make money for their companies and for themselves.

Best Developers

By doing something similar, it would be easier to keep your best developers and to stop them going freelance. So, by giving them a base salary and a pension you give them security. Also, by giving them a chance to earn large bonuses by bringing in projects, and their parts of the project, ahead of budget and schedule, you give them the chance to make money.

With this mixture of security and earning potential, and possibly career progression as well, why would anyone want to leave to become freelance? Why, indeed, would they want to take another permanent job with another company which has backward practices, low rewards, and fewer opportunities to achieve and be recognised.

Imagine All Your People

Therefore, imagine a company where the people are highly motivated, have security, are well rewarded, and have high self-esteem through high (and constantly improving) productivity. This company will retain its best people and their business knowledge. It will, as a result, produce software of better quality and with better time-to-market than its competitors.

People’s morale, as a result, will be high. Customers will be highly satisfied. They will, also, gain market share and have high margins. The Finance Director will smile. The shareholders will be rich. They will reward their senior management. This company, as a result, will be a world beater. There’s absolutely no reason why this company could not be yours.

It is not easy. Any change is resisted. To be forewarned, however, is to be forearmed. Productivity through motivation, therefore, is the best way to get it.