Foundations of Methodology

Oren writes a post that my high school English teacher used to call “thought provoking”.

According to Oren, a methodology can only be effective if implemented by Good people. Lior in the comments, seconds that thought.

Methodologies are there to put order in things. For example, in my developer past, we had a methodology, where developers would write their code, then write non-automated unit tests. I’ve grown a lot since then, and learned a lot how to this better, but at the time, it worked. And it was good enough for both “good” and “not so good” people to understand and do.

I think effective methodologies are those that are understandable and acceptable to the people of all kinds. And guess what – they are the simplest ones. And as long as they are kept like that, they work.

When do they break?

Let’s look at TDD – it’s simple. It should effectively for everyone, right? It took me awhile to get effective at TDD, and I consider myself lucky. Many people (including Good people) try it and drop it after a while. For me, real understanding of the reason behind TDD came after a long experimentation and self determination. I’ve managed to do it by myself, but it would be a lot easier if I had a partner to hold me accountable to the technique.

And I think that’s the final element in successful methodology. It has to enforceable, preferably by the group, and if not – by managers.

So to summarize, methodology needs the following foundations. It needs to be:

  • Simple – to understand and follow.
  • Acceptable – to see the reason and benefit it brings.
  • Enforceable – to make sure everyone follows it.

From there, it can be improved.

So now that I’ve stirred up the pot, what do you think?