- Do great golf clubs make you a great golfer?
- Does a formula one race make you an expert driver?
- Do great development tools make you an expert developer?
Being agile is about following the Agile Manifesto.
There are implementations of Scrum and XP that WORK and are agile because they implement sound development processes. However, there are also plenty of organizations that are implementing Scrum and XP incorrectly (see Does Agile Hide Development Sins?)
Agile does not dictate that you have a fixed development CYCLE, but you can definitely succeed with one. What is required is that you break a project into multiple cycles where you iterate on development.
Agile does not dictate HOW you keep your requirements (back log or stories) but you must have an effective requirements process. If your requirements process is broken then you will never succeed with agile.
The Agile Manifesto puts the priority on things critical to development:
- Processes and tools
- Comprehensive documentation
- Contract negotiation
- Following a plan
Tools will never extract or synthesize quality requirements and build quality code. The only way to get to proper understanding of a project is to put priority on individuals and interactions; people and communication are the only way to solve problems -- tools are a secondary concern.
There is no way to get the requirements correct unless you have a strong working relationship with the customer. The customer often does not get the initial requirements correct and often development does not understand them. Focus on customer collaboration is the key to mutual understanding.
This is where most projects fall apart because both parties have a tendency to focus on contract negotiation. Contracts are necessary, but focusing on limiting liability and protecting yourself will not yield a relationship that leads to working software.
It means making reliable estimates up front of all requirements, not just caving into pressure from upper management (see Why Senior Management Declared Deadlines lead to Disaster). This often means adding time to the projected end of the project when new requirements are discovered or technical challenges force work arounds. Unfortunately, many projects do not re-adjust the projected end date under these circumstances, which leads to a death march project (see Death March Calculus)
Agile development is about producing quality software by understanding the principles of the Agile Manifesto. Agile development is not about deluding yourself simply because you are using a tool that supports agile development. You can implement a very solid light weight agile solution using only spreadsheets.