Sunday, August 20, 2006

Guaranteed productivity gains with SOA

Recently there have been yet another slew of claims from people claiming they have discovered the Silver Bullet of software engineering. Now Fred Brooks wrote an couple of essays No Silver Bullet and Silver Bullet re-fired. The first essay has a great line

There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity
Get that, there is no single development that will give an order-of-magnitude improvement. And yet people are still claiming three to five times productivity gains. This is muppetry of the worst sort.

So I'm here to say exactly how you get a guaranteed FIVE TIMES productivity gain on your projects. This revolutionary approach will ensure projects deliver much faster, have higher quality and are more maintainable.

I call the solution "Employing shit hot people to do the work". In this solution instead of worrying about the right language for the project you employ a bunch of shit hot developer-architects and then let them pick the right technology, methodology and approach.

Now the only minor problem with this is that I'd say that only 1% of people I've ever worked with fall into this area, and I've never worked on a project with more than two people in that group. I'm not talking about people who are "good" coders, I'm talking about the people who when given a new system to debug are at the line with the error in under an hour after teams of "experts" have spent weeks looking at it. I'm talking about people who when given a vague description of a solution have already outlined the final solution and how to solve it within the course of a day. I'm talking about people who look at the solution and then pick the right technology to solve each of the bits. The sort of people who use new technologies and make bug reports including line numbers. The sort of people who discuss solutions with the business in their language. The sort of people who are great at the abstract and brilliant at the detail. People who can hold in their head the whole architecture, and still knock out code for the most complex bit of the system. The sort of people who don't disappear up their technology backsides and develop ivory tower solutions that no-one uses, these are the sort of people who build great technology that is fit for purpose, no more, no less. People who are known to throw toys out of prams at the right times and for the right reasons

People who are, in short, rather rarer than hens teeth. But if you really, seriously, want to get a big productivity leap then its the only guaranteed solution. Quality of people is the most important thing when considering the success of projects, the technology they use can only help or hinder based on that quality.

With SOA you do at least have a chance to target these people at the overall and then to get them to solve the toughest challenges, while leaving the rest of the developers to deliver the other services. This is potentially one of its biggest gains, the ability to have a structured way in which to really get these over-achievers to deliver, rather than have them dragged down to the level of the weakest. By providing clear boundaries and clear technology, methodology and complexity guidance you can use SOA to target your delivery based around the most important factor, the quality of your delivery team, rather than having to "make do" across everything.

This won't give you a massive productivity gain in a single step, its the application of lots of best practices and keeping in mind that need to attract, and retain, some people from that 1%.

Technorati Tags: ,

4 comments:

Anonymous said...

Its a pity that peoples idea of good people can be so different. My current company believe its the best coder. My last company believed its was the best powerpoint presenter.

Anonymous said...

Its a pity that peoples idea of good people can be so different. My current company believe its the best coder. My last company believed its was the best powerpoint presenter.

Steve Jones said...

The concept of good is pretty static, the trouble is that sometimes the judges aren't in that group either! Good means the best coder, the best architect, best debugger, most thorough tester, the best communicator, perm 4 from the 5 and you've got your person. Get a team of ten and you are cooking with Steorn provided free energy :)

Anonymous said...

Its a very nice blog for...
architects in bangalore , architects in bangalore , interior designers in Bangalore , interior designers in Bangalore , architects in bangalore , architects in bangalore , interior designers in bangalore