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.

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.

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.

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.

Keeping Your Best People – The Winter Holocaust

Keeping Your Best People

Keeping Your Best People – The Winter Holocaust

Keeping your best people is one of the major factors to success.

At a company where I was Chief Information Officer we used to hold People Satisfaction Surveys based on categories like career prospects, remuneration, management, the working environment etc. We held these every three months, in January, April, July, and October. One thing that we found was that morale was seasonally affected.

Morale was highest in October, dipping in January, hitting its bottom in April after a long hard winter and picking up again in July. We also found that the People Satisfaction Survey was a good leading indicator (by about 2-3 months) for staff attrition. When people are feeling at their lowest, they send out their CVs.

Lower Morale

During the winter people come to work in the dark and leave in the dark. It is not just this factor, though, that causes lower people morale. More projects are implemented in the winter (January 1st being a favourite implementation date). Because of staff holidays fewer projects are implemented in summer.

Therefore, people are working longer and harder in the winter on projects which are probably failing without much thanks or encouragement from management. While people are working, vis inertia kicks in and they don’t find time to compile their CVs. It’s only when they have a few days away like at Christmas, Easter or one of the spring bank holidays that they start to assess whether it is worth it. Many decide it isn’t.

Keeping Your Best People – Social Activities

To be forewarned is to be forearmed. The dark days of January, February and March are the time when you should organise social activities. At this company, we used to always hold the Software Academy Awards in February. There were various awards like best manager, best developer, best business analyst etc.

Everyone in the IT department voted for these categories. We organised an awards evening, with the sports and social club meeting most of the expenses. We invited senior management. We made presentations, in reverse order, to the top three in each category. We gave each of the first three a certificate.

Keeping Your Best People – Winners

We have the winners fifty pounds in the serious categories and a bottle of champagne in the joke categories. The people organised it for the people. It engendered much interest in the two weeks before and for a few days afterwards The fact that the award was given by their peers, and that the handing over of the award was witnessed by senior management, was important.

This one event won’t sustain morale throughout the whole winter but it will contribute to it. I’ve often thought of having another awards night with the awards being decided by management. This, however, is fraught with danger. As it is outside work hours, will people turn up to see what may be perceived as ‘management lackeys’ receive their awards?

Keeping Your Best People – Pay Rises

This time of the year is probably a good time of the year to give out pay rises and promotions. At the very least it will narrow the differential between what you are paying and what they could receive in the marketplace. Once the CVs are sent out you are probably too late. When the staff agencies are sweet talking your people, and other companies are keen to have them, the grass seems an awful lot greener on the other side.

It’s counterproductive to try to keep them once they’ve resigned. They usually refuse but tell the rest of your people you’ve made the offer. It becomes the perceived wisdom among the remaining people the only way to get ahead in the company is to resign. This is not good for morale.

When people do resign, companies usually either try to make them work their full notice period (being crucial to the project) or they have them out the door that day (sometimes supervised by the security guard and marched out the door). The first is not clever. People who are going are not motivated to work. They usually spend the time de-motivating other people. It is usually people who are close to them who are next to leave the company.

Too Harsh

The second way is too harsh. They have friends and colleagues who remain at the company. People will not appreciate one of their members who have given good service to the company being ceremoniously or unceremoniously ejected. They will feel that the company does not appreciate good service.

It is better, and gentler, to give them a couple of days to pass their work over to someone else. You are going to lose them anyway. You might as well get used to it. A couple of days is also not enough for them to seriously disaffect the other members of staff. They are usually in the first flush after their resignation and feeling kindly towards their old company. Thank them, at their leaving speech, for all the good work they’ve done for the company and wish them well in their new job. This is relatively painless and everyone is reasonably happy.

Keeping your best people is crucial to your success.

Learning from Mistakes

Learning from Mistakes on a project

Learning from Mistakes

Learning from mistakes is crucial to your success on projects.

One of the axe-sharpening activities for which there is seldom time is the activity concerned with understanding why mistakes were made and crushing them out of the process so that they do not occur again. One of the reasons why these activities are not usually allowed is that the time they take is not usually in the schedule and because many of the benefits are for future projects.

You can cure this in several ways. In the beginning do not attempt too much. Preventing defects, like politics is the art of the possible. Prevention of Defect meetings should happen, during projects, only when sub-systems are delivered into test, not when individual programmes are delivered. They should only analyse higher category defects. At one organisation, they had nine categories of defects of which they analysed only the top five categories.

The Lesson Learning meetings should last only an hour. There are two purposes for the meetings. The first is to ensure that the person who created the defects understands why they happened. If they take time out to understand why they created the defects they are less likely to create them again. This activity happens in other professions.

Football Clubs

At football clubs they use video evidence on a Monday morning to analyse the problems that occurred in the match at the weekend. The players are then able to analyse and visualise what they should have done. It breeds good habits. When Liverpool were the top team in the country, whenever a player was transferred from them to another club, the manager of the new club would always try to find out from the player what the Liverpool secret was.

But there was no secret. As Bill Shankly said, they hired the best people and did the simple things. They didn’t do things like pass the ball across their own area. They had cut out all the mistakes which had caused them problems in the past. This was good people with good processes.

Mistake Analysis

The second purpose is to allow the analysis of these mistakes so that the process can be changed to prevent the mistakes happening again. In the past I have found that many of these problems occur because of misunderstandings at various stages. Very often this analysis leads to elements of Rapid Application Development (RAD), especially Joint Application Development (JAD) being taken into the process and the use of developers rather than analysts, designers and programmers. The fewer handovers, the fewer misunderstandings there are.

Standard Practice

Fortune magazine once analysed the software practices of the top 500 companies in the USA. They found that there were four main practices which separated the best performing software departments from the worst. These were:-

o  Standardisation – of platforms, methods, models etc.

o  Joint Application Development (JAD)

o  Timeboxing

o  Prototyping

You may short circuit many of your defects by implementing these best practices.

You should analyse your mistakes so that you are constantly learning from mistakes and getting better and more productive as an organisation.