Alistair Cockburn (one of the originators of the Agile movement) says this about Crystal Clear (one facet of his Agile methodology):
Crystal Clear can be described to a Level 3 listener in the following
words:
“Put 4-6 people in a room with workstations and whiteboards and access to the users. Have them deliver running, tested software to the
users every one or two months, and otherwise leave them alone.”
That is a definition of agile, admittedly for experienced development staff who know what they're doing and can be trusted to get on and do it. So does that mean you have to use CI and TDD and Pair Programming and all the other fashionable things? Put simply... No.
Agile is not about following a set of processes, its about being effective. What that means to you depends on your team and how it works, what you find useful to you. If TDD doesn't help you produce working code, then stop listening to the lesser lights who shout about it on the web and do not use it! If Pair Programming really helps your team to focus and get stuff done, then ignore anyone who says its a waste of time and organise your team like a 3-legged race at school sports day.
I did agile many years ago, so many we didn't even realize we were doing agile - we delivered iterations of the product every month, and cycled round fixing bugs and adding new features regularly. We did absolutely zero unit tests as such things had not been invented, and the refactoring book had not been written. So yes, you absolutely can do agile without any of the so-called agile practices.
Alistair also says this of Kent Beck:
Asked about XP and the five levels of the Software Engineering
Institute’s “Capability Maturity Model,” he replied with XP’s three
levels of maturity:
Do everything as written.
After having done that, experiment with variations in the rules.
Eventually, don’t care if you are doing XP or not.
Eventually, don't care if you're doing XP or not... wise words that should remind you not to fall into this trap.