Archive for the ‘Project Planning’ Category

h1

Incompetent Systems

December 7, 2009

A few years ago I worked on an excellent research project called AstroGrid.  Nearly twenty commercial software engineers were to build a distributed astronomy data analysis toolkit to support astronomers, as part of an international global effort.

Some astronomers said they had seen it all before and remained skeptical, though their enthusiasm to help was not apparently diminished. I poo-poo’d them; I’d come from developing satellite control center software. I knew how to deliver software that worked.

We had a bunch of bright engineers, who worked hard and produced some pretty good stuff – sometimes very good stuff.  In my case, obviously, it was amazing stuff.

And after two years of quarterly iterative releases we’d still delivered no usable product.  There were a few applications deployed and used here and there, and some proper new science forced through as example test cases, but nothing that astronomers couldn’t have knocked up themselves in a few days of scripting. Sometimes they already had.

Lessons Learned

Forty man-years largely wasted and the project continued in the same vein – what was wrong?

There are lots of technical reasons: poor and shifting requirements, contradictory overall objectives, very little actual commercial experience in the team, unsuitable release procedures and version control, immature support tools, and so on.

But really these are all messing about in the weeds, looking for specific problems and specific someones to blame. Why did these technical problems exist, and why weren’t they resolved?  How did they persist – for so long?  More importantly, given there’s nothing new about these problems, why did they exist in this particular project and its organisation in the first place?

Importantly, I can’t think of any of the staff who were incompetent, and that includes the project manager and chief tech, which are roles that are sometimes (and sometimes should be) held responsible for project process. In this case though, while I disagreed with some of the activities (particularly the release process)  they were hard working and experienced, and yet still we produced nothing. For years.

Competent People working in Incompetent Systems

Imagine a new coal mine owner, who pops down the local and employs a bunch of brawny lads to mine the coal. He pays them for the amount of coal they hack off the coal face, leaves a foreman in charge to handle pick axe handle repair and pay and so on, and settles down in the now peaceful pub for a quiet pint, and waits for the money to roll in.

Within a few days the miners have pushed a little coal out of the mine to make room to get to the coal face and swing a pick, but little else.  Even if we assume they collaborate with each other (people are sociable and to some extent self-organise) to avoid bringing the roof down, there’s no incentive to get coal out and sold, just to get it far enough out to make room to hack more off the wall.  The targets, the incentives, the organisation, are all useless for the owner or any of the cold shivering pensioners waiting for the three lumps they can afford.

More importantly (because we often do things wrong, it’s nothing to be overly ashamed about), there is no local remit to make the changes required to make it useful. The foreman does not have the budget, the incentive or the executive power to change the organisation or targets to make the mine productive.

Someone somewhere can generally be found to make suitable changes. In this case, someone could pop down the pub and find the owner and tell him what’s up. But why bother? Time away from the coal face is time not earning. And who knows what the owner is like, maybe you’ll get fired for disturbing him. Again, there are barriers to improvement.

It’s an incompetent system, staffed by competent people.

Governance

What a lovely jargon word. But quite appropriate: who really is supposed to look after projects to make sure they get the support and training and the right staff at the right point, the right checkpoints and feedbacks and incentives?

In the commercial world near the marketplace these are normally fairly straightforward: money is the incentive. In order to make money, you have to provide someone with something they are willing to pay for. The focus is on that delivery of usefulness. So there are ‘automatic’ readjustments that come from that focus; if the miners were being paid for coal sold rather than hacked off a coalface, they would likely organise themselves into some sort of suitable structure and work process to deliver that coal.

As we step further away from the marketplace – to R&D projects in the commercial world, or academic research – getting these incentives right is trickier. Long term benefits of blue sky research are not only hard to define, but if you don’t have a good handle on some kind of target then you can’t differentiate between lack of delivery because we haven’t worked enough yet, and lack of delivery because the system is squashing any progress.

The Tools

Here I assume that pick axes (or more advanced machinery) are available. That people share a language (which isn’t always the case) and so self-organising is feasible. That currencies are in use, and so on.

When the tools are not avalable, the system isn’t the failure point. For example, evidence-based medicine has spread widely only relatively recently; it was hard to build systems for Good Medical Treatments without it.

Competent Systems

Competent systems don’t always succeed. Competent systems encourage success. Importantly, they have the feedback mechanisms that drive change from failures (and sometimes success) in order to direct effort to more success, rather than let that effort dissipate uselessly, or even have it directed unintentionally harmfully, as Incompetent Systems do.

h1

Handy Basic PM Checklist

November 21, 2009

John Brinkworth of Serco Consulting wrote a useful article in the rather patchy magazine Project Management Today. Most of the articles there are fairly superficial, or thinly disguised advertising for business tools or consultancy firms, but that doesn’t make them useless.

John’s article dresses up ten basic rules for managing your project well, at least technically, and I think they make a good checklist. Here’s my own slightly modified and heavily cut down version:

Objectives: Make sure you know what you’re doing, unambiguously, and measurably which means making sure they are specific enough to do so. Prioritise. Make sure everyone knows what they are.

Stakeholders: Engage with external experts, buyers, end users & their managers, maintainance staff & their managers, and suppliers.

Resources: What have you got for staff, budget, space, equipment, training? For how long?

Deliverables: Related but not quite the same as objectives, know what you actually have to deliver and why, and which are more important than others.

Schedule*: Plan the work in short enough pieces that establish a tempo, that keep people’s eyes on targets that are close enough to be felt, to give feedback as they are reached, to let everyone understand that progress is being made, and to correct for problems early rather than late.

Quality: The engineer’s usual prime focus, so I won’t expand here.

Change: Stakeholders will change their mind and need new things, different things. Your team will find some things harder than expected, some easier. Track change requests and their acceptance (or not) so you know what the new changed status is of all the other factors, such as deliverables and acceptance criteria.

Pragmatism: Work in the real world. Wishful thinking is fine but don’t let it affect the tasks. Hedge optimism. Mitigate pessimism.

Acceptance: Stay close to your stakeholders, particularly the ones with the cash. Know what’s acceptable and make sure it’s measurable. Understand what’s good enough: you may well – and should – aim for higher than this, but you need to know what will be ‘all right’ to fall back on.

Clean Finish: When it’s all over, tidy up. Give the team a finish marker (a party, gifts if they deserve them, a short speech thanking them). Feed the lessons learned sensibly into company doctrine. If it’s successful, make sure all concerned are aware of it, make sure it’s written up well and appropriately in staff CVs and their appraisals, in the company newsletter, in customer publications, in press releases.

—-

* Steve Smart at Logica’s Space & Defence Division once told me “There are three factors that you always need to balance: cost, quality and schedule. Managers tend to concentrate on cost, engineers on quality. But the important thing to the customer is generally schedule: delivering something that is not quite right and costs a bit too much is much more preferable to delivering something that is late; because at least they get something they can use”

h1

Pablo’s Guide To…

September 26, 2009

“Pablo’s Guide To Estimation” and “Pablo’s Guide to Plain English” were, along with the can-do attitudes of the people I met at logica’s space division, the reasons I became a logibod.

My first ‘proper’ salaried job was with logica’s space division, back in 1997. It was only supposed to be for a couple of years, to raise enough money to re-start a business in Africa.

Instead it destroyed my prejudice that all sizeable companies were stereotyped uncaring corporations, bound only by red tape and process. I was assimilated. I became a logibod. But the space division left me for the Surrey countryside, where I was not willing to go.

Recently I went looking for “Pablo’s Guide to Estimation”, sure that the Internet Would Know of a quite famous semi-official document spread widely in a fairly significant software house.

But instead of providing a leaked copy, the internet tells me that the author was a Paul Coombs, and that he died last year of cancer.

I’ve bought the book derived from his in-house guide to estimating and it has all the good things I remember, including a chapter on “estimidation”, and a number of “Blindingly Obvious Rules of Estimation”. One of these being the frank, surprisingly useful and blindingly obvious “Your estimate will be wrong”.

Hopefully now this page will tie them together; when future ex-logibods go looking for it, they will find this and so the book. Glory to the Search Engine.

(The book is suitable for beginners and intermediate estimators, and is a lighthearted, plain and useful guide to predicting the cost of developing software. It includes not just estimations but reviews, templates, tips to aid, traps to avoid).

h1

Horses for courses don’t invent wheels

September 26, 2009

The phrase ‘let’s not re-invent the wheel’ is often applied when looking at a new problem, and tells us that we should not work out a solution in isolation but look around for existing similar work. However it’s also often misapplied to building the solution, that is: when a wheel needs to be built, we should use an existing one. 

This is a Bad Thing. Wheels may come with the same side-on shape (generally round), but they come in many sizes and weights and widths and treads and load capacities and power hookups. 

Some wheels only look like other wheels at first glance. A motorcycle wheel for example, is about the same size as a car wheel, and it has a tyre and everything. But there are a variety of power deliveries (via chain or belt or direct shaft), none of which are compatible with modern cars, and the build is lighter and weaker, and the tyres have a different cross section that is vital for going around corners. 

Horses for courses

A wheel built a hundred years ago for a cart, with a hard rim and hand-greased rolling surfaces, would last a very very short time on a modern car before bursting into flames or fracturing into a fast flying cloud of sharp and pointy shards. 

Wooden wheels on a hummer

Although you can always count on someone, somewhere, to make it work

 

It would take quite a bit of work to fit a modern car wheel to a pedal bicycle, what with altering the frame to fit and adapting it to take the chain. And it would be heavy to move and awkward to steer and nearly impossible to repair by the side of the cyclepath. 

Attaching a bicycle wheel to each leg of my chair would certainly up the speed at which I zoom up and down the office cubical aisles, but the stability of my chair, its ergonomics and my typing rate are all also likely to interfere with my productivity. And health and safety might want a word. 

Building our own wheel

When it comes to a specific application – a wheeled horse for a hard-surfaced course perhaps – we should indeed look around and see what other wheels exist and the various wheel building techniques. 

May be there is one we can buy off the shelf that will work just as we like, but even so we will have to learn enough about wheels to properly evaluate these shelved ones against our requirements. And we need to ensure that the wheel can actually be supplied in time, that instructions for its installation and maintenance are understood, and that parts will be available as appropriate. 

If there does not appear to be an exact fit, we may be able to modify an existing wheel. This too means understanding not only general things about wheels, and establishing the same assurances of documentation and supply, but some very specific ones about that specific one; will the material take a weld for the hoofals? If we bore holes to take bolts what change will it make to the structural strength? What help will we get in doing this – if any? 

Where we want more control over the build our wheel, we can still re-use other components. We can build our wheel so it takes one of the standard motorcycle tyres for example, so that the horse can corner properly. 

And in any case, we can use modern tools – such as plasma laser lathes – that make the build time for specialised components very short and the quality very high, even where we are building our own specialised bespoke (heh) components. 

So, let’s not reinvent the wheel

When it comes to building a solution we need to establish and re-use skills and methods and tools. Even without re-inventing the wheel, we can and often should build our own wheel from various existing components where appropriate, but otherwise happily manufacture our own special components to create a wheel that will do the job.

Design a site like this with WordPress.com
Get started