Lately I’ve heard a lot of software companies saying they are agile. However, when you start a conversation with the representative of these companies you can easily notice that Scrum is the only word they know about being agile.
Nowadays be agile means be "modern". Developers want to work in agile projects. Customers are looking for agile companies/consultants. Even Gartner predicted in 2010 that "agile development methods would be utilized in 80% of all software development projects". So.. what is the point?
Well.. the point is:
Be agile != do Scrum
Actually, be agile is much much more than do Scrum variants. Be agile requires the team to feel and act as agile. It must be running into the veins of the developer. But, unfortunately, what we can see is that the word agile is being used as marketing purpose by many companies.
While discussing about that with a friend I’ve decided to write down my thoughts about this subject. So, in my point of view, you ARE NOT agile if:
if you don’t focuses in built-in quality
There is a principle on the Agile Manifesto that says “continuous attention to technical excellence and good design enhances agility”
Agile teams must feel pleasure delivering high quality software. The era which said that software process ensures software quality have finished a long time ago. You must focus on quality from inside-out. That is, the code must be high quality, so that the functional may fit the user expectations.
With a poor code you have: more bugs, poor performance, poor extensible strategy, unreadable code, etc.. Consequently, you have a customer less happy.
if you are not able to make your customer to work in your side
if you do not pay technical debits
If you do not automate tests (in all levels)
If there isn’t regression tests
If you do not refactor your code
If you do not enhance your design/architecture
If you do not use continuous integration
Nowadays I would say, If you do not use continuous delivery
If you do not monitor your software when it goes live
If you do not learn from your live software
If you can point a person or a developer as the responsible for a delivery failure
If you do not trust in your team
If your team is separated by sites (i.e. DBAs, testers, developers, etc)
if you do have more trainees and junior developers than senior ones
The problem is that most companies which say they are agile have more trainees than senior developer. In these companies the software quality tends to be poor. I would like to say that there is nothing wrong with trainees and junior developers. The only point here is that they don’t have enough maturity to make decisions or to enhance the software design.
As any other software methodology, trainees must added into an agile team in a planned manner.
If you try to institutionalise a process that have worked for another team
If you do not use working software as the primary measure of progress
If you do not continually improve your process
If your process do not welcome changes
If you have closed scope contracts
Be agile in closed scope projects is extremely hard. This is possible if you have a very tiny software, but with large ones practice have shown us that it is not possible because you will reject changes or make changes difficult to happens. What goes against one of the main principles of the Agile Manifesto.
if you have large iterations
if you can not break your requisites to fit into a sprint
If you do not use MVP (Minimum Viable Product).
If you say ‘done’, when the functionality is not shippable
...
It is important to say that there is nothing wrong with a company trying to use Scrum, Kanban, XP or whatever. What I’m saying it is wrong is that there are many companies using the word agile as a marketing purpose only. They have no process, no adequate team and because they’ve started to do stand up meeting and put some notes on a blackboard they sell themselves as agile.
Just because you’ve started to use Scrum and Kanban does not means you are Agile. That means you've done the baby steps to the “right” direction. Be agile is more difficult than most of people think.. That is why there is only few companies in the entire world that REALLY are agile.
Please, leave your comments.. I will appreciate them..