MattWoberts wrote:
Well, after...erm.....10 years of developing software along slight variants of the classic waterfall model, today see's our companies first attempt at "Agile methodolgies" - in particular SCRUM.
I'm keeping an open mind, and trying to get my head around where the hell the documentation is, but I wondered if any of you guys follow an agile approach, and if you think it is usefull, or fad???
Back in the days there was also agile development, we called it 'ad-hoc code hacking', i.e.: writing code without a thourough plan about every detail what you had to build, solving problems when the emerge.
I wasn't a big fan of this, and stil ain't, the biggest problem of it is that you have to think about large problems first to avoid irreversable mistakes which will throw you back a couple of months, and when that happens far in the project, it's fatal. So you can't conquer every problem 'when it emerges', you have to think ahead.
I think a 'mix' of old days visions and agile development is the most pragmatic way of doing things: think through the global project and foresee big problems, then use a more agile approach for the finer details. I took that approach with LLBLGen Pro, as the project itself was simply too big to plan ahead in full detail, at least I didnt see the advantage of spending 4 months in design phase while I have to re-do half of it during development anyway because unforeseen details which clash with detailed designs done up front.
As I said though: you have to think through the global project, predict where problem areas are, try to avoid them/solve them up front. Then, during development, per functionality aspect defined in the global project, design it first, then implement it, to prevent yourself implementing the wrong things. This works great IMHO, as when you're designing the details you already have to solve the problems and typing it in becomes more or less just that, typing it in, which avoids big mistakes in implementations.
That doesn't mean mistakes are avoided. You'll always make mistakes and the more time you spend to thinking through the project, IMHO the more you'll avoid mistakes during development.