When do we need to apply a software development methodology

development-methodologies

There are many software development methodologies – SCRUM, agile, XP, etc. – and they all have there advantages and disadvantages I suppose.

But when do we really need to apply them? Surely they are not necessary for small 1-man projects, but for large 50+ teams you can most certainly not go about ad-hoc:ing the whole thing.

So what's the line for when to use and when to not use such a methodology, if there indeed is one?

Best Answer

Even in a strictly 1-man project (you coding software for yourself with no schedule) you have to:

  1. Figure out what you actually want/need.
  2. Figure out how it can be done (various approaches).
  3. Implement it.
  4. See what you got and go back to 1), refining the requirements.

You could do it informally (cowboy), but given that the 1-man project is a special edge case (usually there's at least you and someone else you're working for), doing it with some well founded light formalism is virtually always preferable. Keep in mind that the core of the Agile Manifesto is really just a few principles. The formal methodologies (e.g. Scrum) aimed to reach those principles can and should be tailored according to the team size etc.

Related Topic