3 Pillars of Using Agile Methodologies in Organizations
I would like to introduce what is in my opinion the 3 biggest components of using agile in a company.
To be clear, this is not about the core agile principles. For that you should really have a look at http://agilemanifesto.org/. What this is actually about is what it takes to implement such methodology in an organization.
1. Product Strategy
This is the most important aspect. That sounds obvious but this is the most common mistake that I see organisations make.
Being agile only at the engineering level won't get you very far. I would even argue that without this part an organisation is not really agile.
What a company needs is to embrace an agile mindset at the business level. This include marketing and sales processes. A good approach is to make a product management team to drive this agile product strategy for the business side.
What it means is basically that the business should embrace the idea of testing business hypothesis, iterating and welcome strategic changes.
How does it work? Where to start? I very strongly recommend http://theleanstartup.com/
2. Engineering Process
I find that this part is the part that is best understood by organizations that want to be agile.
We have established before that the business wants to be agile. But it doesn't matter if you don't have the ability to execute. To do so you need a well defined and executed agile process. The process is here to support the product strategy.
Scrum, Kanban are commonly used and they are now almost mastered by everyone. My recommendation is however (depending on the size of your organization) to think more about how this process is integrated to the company processes and how to adapt them to bigger organizations.
Communication between engineering and the business is very important. Also some variant of those agile process are now documenting how to think those process at the company level. There are for example www.scaledagileframework.com, https://www.scrum.org/resources/nexus-guide, or Scrum of Scrums. I find those framework interesting and this is definitely a recommend to know some of their concepts.
3. Archtecture & DevOps
Similarly that the process is here to support the Product Strategy, the architecture is here to support the process. The idea of sprints or stories is to deliver frequently.
Your organization won't be able to do it if you don't have the right architecture. DevOps practices and a modern architecture will make sure that deliveries don't add more overhead and instabilities.
You should be able to deliver fast
You should avoid manual operation
You should have tests/automation to help you have confidence in the quality of your deliveries.