For every 10 companies claiming to have an agile development environment, maybe 1 actually does.
This is because "Agile" sounds a lot better than "horrible collection of organisational code smells we've accumulated by having no real process". Here are some things that are emphatically not agile development:
- Jumping straight into development with little or no planning
- Embarking on half-baked ideas with the view of figuring out what you want as you go along.
- Dropping what you're doing mid-stream to work on something else.
- Long pre-release correction, bug fixing or change request cycles.
- Infrequent, long, sit-down "stand-up" meetings.
- Starting every project with a fixed deadline (especially an internally-generated one)
- "Lots of mini waterfalls"
The first four are cowboy coding; using the word "Agile" to cover the fact you’re doing everything by the seat of your pants, most likely lurching from crisis to crisis while throwing the occasional deliverable over the wall in the hope it won’t be thrown back.
The other three are attempts to call other methodologies something they’re not, often compromising the tenets of those methodologies to make them fit some notional idea of agileness. Look – if you’re going to do waterfall, then at least have the decency to do it properly rather than trying to cram all the long-duration tasks involved into tiny sprints.
Basically, if you’re not ticking the boxes on the Agile Checklist, you’re not "doing Agile". Sorry.
Agile development still has a lot of defined process, and if anything the emphasis on upfront planning is greater than most developers are used to. The key differences are that we start development when we have what we need (no more, no less), and that we test, fix bugs and refactor code while we develop to make sure our software is always working and releasable at the end of each sprint.
There is one positive if you or your company is saying "Agile" even when its development process isn't. It means there’s probably at least a trace of an appetite for doing things right. Why not start by introducing one small element of that? (I'll be suggesting some good starting points in another post soon).