The most annoying myth of software development

“And what method do you use?”
The project manager looked at the lead developer then turned back to me and said “Well, we are a small company, so we don’t need a method”

I have run into similar situations a couple of time and I think it is one of the most annoying myths there is.? – “We are …. so we don’t need a method”.
Well, the good news is that no matter what the project manager says, the developers usually have a method, a software development process, or even a methodology. What these words mean?

method: 1: a procedure or process for attaining an object: as a (1): a systematic procedure, technique, or mode of inquiry employed by or proper to a particular discipline or art (2): a systematic plan followed in presenting material for instruction b (1): a way, technique, or process of or for doing something (2): a body of skills or techniques. (from Merriem-Webster)

method: a way of doing something, especially a systematic way; implies an orderly logical arrangement (usually in steps) (from Web definitiosn)

methodology: 1 : a body of methods, rules, and postulates employed by a discipline : a particular procedure or set of procedures 2 : the analysis of the principles or procedures of inquiry in a particular field (from Merriem-Webster)

software development process: a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process. (from Wikipedia)

So what the “we don’t need..” means is that we develop software without any logical process, doing things as we please, no order, no logic, we just hack it together. Given that the company is still running, I suspect the developers know better and they use some method, process or something.

The lead developer cleared his throat “well, we use a waterfall like method. We certainly don’t want to go agile”

Yes, just as I thought, there is a process. A waterfall one, but if it works then that’s perfect. The developers need some process – even when they protest loudly against any process introduced by the management -, otherwise they will get lost. So they build a “homemade” one. It is a bit sad though if a project manager thinks they don’t need it, and doesn’t even recognize the existence of an already used process or method. Or simply does not know meaning of the word.

The method used is not a trivial or unneccessary thing, it has a big effect on how the development is done, and as a result it has an effect on a lot of other things. The way a company creates a product affects HR decisions, sales and marketing decisions, business decisions, use of resources, and so on.

But still, it seems to be a widespread belief that if a software company is small, or smart, or in a definite business or simply they feel like, then they don’t need a method, they can just work anyhow.

And by this I don’t say that you must choose RUP, or UP, or Scrum, or Agile, or any of the buzzwords. But you have to face the fact that you can’t work without a method – you don’t build a doghouse without one, even if it’s a simple one, so why do you imply that you can build a complicated software without one?

Usually this is one of my first questions on any interview or project startup meeting, and when I hear the “we don’t need…” answer that’s the end of the meeting on my side.

Enhanced by Zemanta
2 Responses to The most annoying myth of software development
  1. Arpad
    February 27, 2009 | 10:36

    On one of the Microsofrt conferences the key speaker asked the auidence (mostly developers) who uses a standard methodology and who has some home-brewed.
    Approximately one-third followed a standard, one-third had own methdology, and the rest had probably nothing.

    The question is very good, i also wouldnt go to a company without a formal method for development. Especially if the PM happy with this. Usually the developers are against a method and the PM who can enforce it.
    Developers tend to develop on their own way, they get upset if somebody wants to tell them how to do programming.
    (I guess he wasn't a real PM, just a fake one)

    But you MUST have a method, even if the folks don't like it. If you don't have starndards and you don't document, then your project will fail.
    Even if the project starts as small, there is a chance that it grows, you add a few more developers to the project, and then all will collapse because of the lack of procedure and documentation.

    It is funny you mentioned agile development. When people don't want to follow formal method, they claim they prefer agile development. But what they are really doing is cowboy programming.

  2. Roland Hesz
    February 27, 2009 | 11:13

    I like the cowboy synonym. Although, I am pretty sure that the real cowboys had strict procedures, cattle are prone to wander off either with help or on its own if you are disorganized. :)

    As for the general Agile practice, I think here you can find some explanation: Dilbert on Extreme and Agile Programming

Leave a Reply

Wanting to leave an <em>phasis on your comment?

Trackback URL http://fracturedbloughts.rolandhesz.com/2009/02/26/the-most-annoying-myth-of-software-development/trackback/