Is your goal to be agile or to write software? Sorry. ‘Both.’ is the wrong answer!
There needs to be a focus. Something has to have priority. You can’t serve two masters. Here’s why.
Let’s say your team has used a waterfall (command-and-control) process for a while and is comfortable with it. The team has heard much about agile software development approaches and wants to give one of them a try. Why not, right?
The team reviews Scrum, Kanban, Lean, XP and maybe a few other approaches to agile development. They decide that Scrum sounds like an approach they can embrace so they adopt Scrum and kickoff a project.
Now the fun begins.
Problems, issues and concerns invariably surface. Choices and trade-offs need to be made. This is where it gets interesting.
If the team’s primary focus is writing software, the team members will naturally fall back to their comfort zones. They’ll perform tasks in ways that are familiar. The end result may generate good code but it won’t be agile.
If the team’s primary focus is being agile, they are more likely to remain in their ‘uncomfort’ zones. They’ll put in the extra effort to get the tasks done in an agile way. The end result may not be the most efficient but it will be a learning experience toward building an agile foundation.
What really matters?
Remember that a key part of agile software development is prioritizing and ordering work. If you don’t know what’s important, you won’t deliver what really matters to the business. When you don’t deliver what really matters, you fail — no matter how good your code is.
Ultimately, the team’s objective is too help the company generate revenue and/or reduce costs. The only viable reason for adopting an agile development approach is to meet one of those objectives. If you don’t believe being agile will help increase revenue or reduce cost, why are you bothering?
If you do believe that agile software development can help, then you need to make it a priority to be agile. If you don’t make being agile a priority, you won’t be.
So, I’ll ask you again — Is it your goal to be agile or is it your goal to write software?