Project Estimation on Successful Projects

Project Estimation - successful and unsuccessful

Project Estimation

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.

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.

Project Manager

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.

Problems of Estimating Software Projects

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.

Normal Project Estimation Techniques

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?

Company 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.

Function Points

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.

Original Specification

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.

Different Speeds

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.

How to motivate People to finish ahead of Schedule

Motivate People

How to Motivate People

One of the most important tasks on a project is how to motivate people to finish ahead of schedule – yet so few project do it. Indeed they will punish you for it.

My first ever job in computing was for Barclay’s Bank. We worked at Juxon House just by St Paul’s Cathedral but the Computer Centre was in Willesden. The computer was there so that’s where we went to test. None of the bosses were over there so it was a bit more relaxed.

While busy testing another program I was given a program with an estimate of 15 days. I decided to really knock myself out and worked on it on the train going home and coming in and at home as well as in work. I got it finished in 3 days. I was delighted with myself. However, I was a bit knackered to after that.

Program Scheduled

So, what I decided I would do would be to stay for a couple of extra days at Willesden and just chill out. I would go back to Juxon House on the Monday with a program scheduled for 15 days that to their minds I did in 5 days.

Everyone would be pleased and it would be very positive for my career. So, for a couple of days I did nothing but read the papers and get sausage sandwiches from the canteen.

Finishing Work Early

I felt I deserved that. However, when I got back to Juxon House the reaction wasn’t what I expected. Someone had reported to the big boss two levels above me that I had been spending my time at Willesden reading papers and eating sausage sandwiches.

I argued that I had finished a 15 day program in 3 days and spent 2 days recovering. I was told that of I have finished a program in 3 days I should have asked for more work.

That’s when I realised that there were no kudos in finishing work early and I was never stupid enough to do so again. The only reward you would get was more work and probably tighter schedules.

This is one of the main reasons why developers only ever finish work on time or over time and one of the main reasons why project are late. They don’t motivate developers to finish their work early so it is always on time when they can and late when they can’t.

Project Supply Chain to Motivate People

However, I had a solution to this. When I said that developers got a mark out of 10 for timeliness, they didn’t get 10 for finishing on time. They got 7. If they wanted to get 8 or 9 or 10 they had to finish ahead of schedule. There was one developer called Adam Sandling who consistently finished all his work ahead of schedule.

This was a huge bonus for the project as this helped to equalise out one or two other delays that we had on the project. It was crucial.

Continuous Improvement

Another motivation for Adam was in improving as a developer. As we said earlier on we measured software by Function Points. We fed back to the developers how productive they were, as measured in Function Points delivered per month. It’s a bit like the cricket or baseball batting averages.

People want  to improve. You have to motivate people properly though. They want to be a 30 Function Points a month developer rather than a 20 Function Points a month developer.

It is a measure of how good they are. Just like baseball or cricket players they want to getter themselves. It motivates them to become better. Now, there is motivation for them to finish work ahead of schedule.

What type of Project Managers do we want?

Project Managers

What type of Project Managers do we want?

Not all good programmers or good analysts become good Project Managers. It is in fact a very different skill from either of these.

How do we know who will become good Project Managers? One of the crucial skills needed is leadership. Leaders, in real life, tend to evolve rather than being appointed. How often do we see leaders of countries whom their predecessor has appointed, being swept aside after the demise of the ‘great leader’.

Also, there are some people who are used to succeeding in life. Again, there are those who are used to failing. If one tennis player is used to losing to another player, he, when losing again, will take no great steps to reverse this.

When it comes to the time when the one who is used to winning is behind, he or she puts great mental and physical effort into reversing this situation. They just ‘can’t let it happen’. Therefore, it usually doesn’t.

Natural Leaders

Picking natural leaders who don’t let bad things happen, and who can right bad situations when they do happen, is crucial. This type of person usually has a positive attitude. He is keen to insert the kind of processes into the software development life-cycle which will help him succeed.

Also, on a project, when reverses happen, as they invariably will, they have the self-belief to set it right.

Those who are not used to winning, as in life they are used to this situation, will spend their effort not in clearing up the mess but in justifying themselves. They will make sure the blame does not attach itself to them. You need people who will grow in a crisis not shrink.

Picking the right PM is crucial to a project.

Running IT Projects the way Movies are Made

Running IT Projects

The Movie Analogy to Running IT Projects

It may seem strange but running IT Projects is not that much different to making movies. They are created in small clips and then put together at the end. So, the way movies are made appears to be a far better and more successful process than running IT Projects.

Programming, Analysis, and Project Management are different skills. Some programmers and analysts make good project managers. Others do not. Many do not want to become project managers. What they want to do is earn more money.

How often have you seen, at your organisation, that the best business analyst with the best business systems knowledge can’t run a project for toffee? Also, how often have you seen a project manager who is logistically good and gets systems delivered in reasonable time, deliver systems that are not fit for business purpose?

Senior Business Analyst

There is a cure for this. It enables you to use your best people most effectively and it helps to keep them at your organisation. This is the use of Directors and Producers. In the movie industry, the Director is the person who is the creative genius, the Steven Spielberg, the person who makes the picture. This is your Senior Business Analyst.

The Producer is the person who handles the logistics. He or she hires the actors and draws up the contracts. He books the locations. He makes sure everyone turns up at the right place at the right time, the costumes are made, the food arrives, the star has the best caravan, the movie is on schedule etc.

Doing all this, as well as making the movie, would sap Steven Spielberg’s creative energy. There is no reason why he would be any good at this just because he can make good movies.

Software Producer and Director

The Producer and the Director would have equal standing and would therefore have similar recompense. The Director may even have a higher recompense.

This is a difficult idea to sell to senior management as they like to see one person in charge, i.e. the logistics person. This idea of Producers and Directors seems to them to be a bit ‘arty’ and not of the real ‘hard-nosed’ world.

They also usually have projects which run over budget and time. Those projects do not deliver fit-for-purpose systems. Also, their best staff leave in droves in this ‘hard-nosed’ world.

It should be explained to them that they would only have one point of contact. As the pressures on them are mainly money and time, the Producer would be their point of contact.

Academy Awards

There is also the problem of potential conflict between the ‘arty’ Director and the ‘real world’ Producer. It is important, then, to appoint a Producer who gets on well with the Director. Notice that it is this way round. In the movie world, it is often the case that the Director appoints the Producer. It is often someone who he has worked with successfully in the past.

Organisations continually complain that they are constantly losing people with good business knowledge from the systems department. With this change of emphasis, you will be able to keep your best Business Analysts. At the Academy Awards it is noticeable that although there is an award for Best Director, there is no award for Best Producer.

Project Goals Aligned

To cut any potential friction between the Producer and the Director, when running IT projects, make their rewards mechanism the same. That’s so that their goals are aligned. Don’t reward the Director for fitness-for-purpose while rewarding the Producer for Timeliness and meeting budget.

If you have problems selling this idea to senior management, just call them the Project Manager and the Senior Business Analyst while separating the roles.

It is better, however, if you can convince them that this is a good idea. It makes it easier to justify the kind of rewards for the Director / Senior Business Analyst which would keep him or her at the company.

Selecting Project Managers – Category 4 Minks

Selecting Project Managers

Selecting Project Managers

Selecting Project Managers is one of the most important things you can do. If you get it wrong you scupper the project from the start. The right people with the best processes is the perfect mix. So what type of people do you want when selecting Project Managers?

Project Manager Minks

A few years ago, in the UK, the Animal Liberation Movement, set free a number of minks from a mink farm. Some of the minks, who had been bred in captivity, remained in their cages even when the doors were opened.

Others stayed out for a while but came back at feeding time. Others still stayed out but could not adapt to the wild and were either killed or died of starvation. Others however stayed, adapted to the wild and thrived in their new environment.

Try thinking of you employees and fellow workers and which categories that they would fit into. Select your Project Managers only from the ‘category 4 minks’.

Do not confuse them with the ‘category 3 minks’ who are usually loose cannons. Do not worry if they are relatively junior. Double or triple promote then if you have to.

Appreciate, also, that the ‘category 4 minks’ are the ones most likely to leave your organisation. Those are the ones that you most want to stay.

Promoting People

If you promote the leader from within the ranks, you will find problems with those that they have leapfrogged on the way up. These problems come from people who want to stay at  the company but who assumed that, in the natural order of things, that their turn for promotion will come soon.

Many of these people are good analysts or programmers that you would wish to keep at the company. You need to be able to manage this or you’ll be left with good leaders but fewer good technical workers and especially fewer people with good knowledge of your systems.

Company Progression

How do you handle this? By having different ways of progressing up the company. Very often people mainly want promotions because of the extra status and income attached to it. You must find other ways of giving them this status and income if they achieve good results.

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.