I was helping my daughter with her homework tonight. We did some reading and some very simple sums. In both cases, I noted that if she didn’t know something, there was a method of working it out. In the case of reading, she can use phonics and letter/sound recognition to work out a word. With sums, she could use a number line (or her fingers).
In essence, there was a method that could be used in place of knowledge to arrive at the correct answer.
Made me think again about the essence of software development methodologies and how I maybe to had to slightly refine my previous ranting about ants.
You see, the world of software still largely revolves around the use of various methodologies and, as is described very well here, they have their place. The thing is, that no one methodology works in every situation and people often struggle to work this out. This is because, like a child learning, the methodology is their method to work out what to do in lieu of knowledge. It is something they believe will always work for them.
Like a child who can now read and do sums without thinking, the best software development method is simply doing the right thing as necessary. This may sound over simplistic but, with experience, this is exactly how it works. Can you tell me why you know 7+3 = 10? Do you have to work it out? No, you just know. The same applies to the ideal way to deliver software. It changes each time and with each new situation so your feel for what needs to be done informs the plan.
Methodologies exist as the safety net for those that don’t have the feel. Without a methodology they wouldn’t know how to start or proceed. So they get their fingers out and start counting. Which is not necessarily a bad thing. Except when they choose the wrong fingers. And then, well…
Bonus point for naming the film the post title comes from…