Tuesday, January 17, 2012

Infamy! Infamy!

...they've all got it in for me!

Excruciating Carry On pun aside, here's the long overdue link to the talk I gave to the Limited WIP Society way back in March 2010 (my fault for not posting it here - it's been up on the SkillsMatter website for ages).


(Sorry, this is just a link. I can't work out how to embed this directly into the blog page - any ideas, anyone?)


Monday, January 16, 2012

Software development is not an assembly line

Thunderbird assembly line
Analogies are useful to a point. They allow people to relate new ideas back to something they are familiar with, giving them a safe framework from which to explore new territory. However they can also be immensely damaging and misleading. I was recently reminded of one  particularly well worn example of the latter type that needs to be laid to rest once and for all:

Building software is not the same as building a car. Developing a software product is definitely not a simple assembly line process.

When building a car on an assembly line, you make the individual components - wheels, engine, chassis, seats etc - and then construct the finished item from these. Each component has already been designed in its own right, and they have all been proven to fit together many times previously. There is absolutely no creativity involved in the construction process. There are limited opportunities for different combinations of components (and those that are possible are well tested).

Software development is a fundamentally different problem. You don't have a set of predefined components. But you do have close to an infinite number of ways to build the final product. Individual components making up the final product need to be built, and so have not been proven to work together. The whole construction process requires a huge degree of creativity to produce a final, working deliverable. The nearest you can get to a car manufacturing analogy is to think of building software as attempting to build a car from raw lumps of metal, with no existing, pre-proven designs for the components. Trying to emulate an assembly line by believing that you can build component after component and expect them to immediately bolt together without problems will inevitably lead to tears before bedtime. Yet many teams still fall into this trap.

If it can be related at all to this analogy, software development has more similarities to car research and development than manufacture.

Consider this. A new car design is first prototyped as a collection of conceptual drawings that are iterated towards a final design. Then these are fleshed out to various models and mock-ups which would never make it to the forecourt, but which are used to invite more feedback. Then working prototypes are produced, and again, more feedback obtained, and designs iterated (or the design is shelved or binned). Finally, after many, many iterations, there is a new model of car available to purchase. Sounds familiar? Iterative software development creates a simple demonstrator of the system, then keeps on adding to it, refining both the functionality and the design until it is good enough to release to users.

This is where software development fits. It has more in common with pre-manufacture prototyping than assembly lines. But this doesn't stop us from stealing relevant, useful ideas from the assembly line. Kanban, anyone? 

Tuesday, November 22, 2011

Misquote

Charles Darwin 01Anyone who reads my articles will already be familiar with the quote I use at the top of each page - "It is not the strongest of the species that survives, nor the most intelligent, but the one most responsive to change.". For me, this cuts to the very heart of agile and lean techniques. Being successful is not about being powerful, or even knowledgeable in the traditional sense, but about being adaptable and smart.

Way back in June an anonymous poster pointed out that the quote was misattributed to Charles Darwin. To my shame, I sat on the comment until I had the time and patience to research the correct answer.

I can now confirm that you were absolutely correct, Mr Anonymous. It was misattributed. The quote most likely comes from the writings of Leon C. Megginson, Professor of Management and Marketing at Louisiana State University at Baton Rouge. The quote is a paraphrasing of Darwin.

I won't bore everyone with details, but here are links to the corroborating articles.

One thing Darwin didn't say: the source for a misquotation
Survival of the Pithiest


Quiet here, isn't it?

I've been fairly quiet recently for various reasons, but rumours of my online demise have been grossly exaggerated. The brief hiatus has given me time to think about several new articles that are now in the pipeline, so watch this space.

Wednesday, July 06, 2011

Blogger Profile Change

All change!

I am in the process of migrating this blog to another account. For anyone following via my Blogger profile, I am now over here.

It's not personal

Oh dear. It would appear that some people reading this blog and Twitter feed believe that I am writing specifically about them. Naturally, this makes them a little sensitive to the criticisms that I sometimes level at the industry and the comments/observations I make.

Let me reassure everyone that the articles I write generally don't relate to any one client, or incident, or person, or project. There really would be little point in writing about anything that is only specific to one project; to be fair it would be deathly dull, and irrelevant to everyone else. Even in the rare case when there is a particularly interesting success or failure story, I ensure that names are changed, and generally wait a while as well before publishing to anonymise the problem and protect the guilty. And remember I have had people I have never worked with before accuse me (albeit lightheartedly) of spying on their project, so some observations must be common across multiple projects.

Sometimes I publish idle thoughts. Sometimes (hopefully) insightful. Other times complete rubbish, the ramblings of a madman.

So where do these snippets come from? Certainly some of the material comes from personal experience, both past, and to a small degree, present. General observation of the industry provides a huge amount of material, with certain themes and problems coming up time and again (and often from way back too). Some comes from discussions with fellow developers and coaches working in other companies, a throwaway comment triggering anything from an idle thought to a complete theory. Some more comes from talking to managers, a very different but related discipline. Yet more from talking to people outside our small, mad world of software development. Then there are the books, films, documentaries, seminars... Everything influencing everything else, trying to compete for space in a grand unified theory of software development, the universe and everything.

So maybe, just maybe, it's not about you.

But...

If you do start thinking that anything I write sounds like it is directly referencing your project. Or your company. Or even you personally. Stop and think. Why is it resonating with you? Why is it sounding familiar? Why are you embarrassed/angry at seeing something so familiar in print?

Then ask yourself the two most important questions of all:
"Are we doing something stupid here?"

"If we are, how do we stop doing it?"
Remember, it's not personal. It's about working smarter.

Tuesday, July 05, 2011

A blast from the past

Once upon a time, in a galaxy far, far away, I spent several happy years working for the legendary Acorn Computers and their near mythical set-top box subsidiary, Online Media. We did some seriously cool, groundbreaking stuff there, including being (arguably) the first to stream video over internet protocols. All the computers ran on RiscOS, a homegrown, lightweight, adaptable operating system for ARM processors.

Alas this time came to an end, and Acorn disappeared, but their legacy lived on. RiscOS carried on, supported by various companies.

I had mostly forgotten about it until now. An old colleague recently mentioned that in 2006 a group of ex-Acornites started a new company, RiscOS Open Limited (ROOL), dedicated to maintaining the operating system and take it forward. The OS is still available, and supported. So do take a look, and if you have an interest in RiscOS then do consider helping them out.