The Beginners Guide To Agile
One dictionary definition of Agile is …… ‘The ability to move quickly and easily’.
In IT terms, it generally means the ability to be highly responsive and flexible to changing business needs. Unfortunately and all too often in IT departments, the concept of “being Agile” is equated to just “doing Scrum and Sprints”, and while Scrum is an excellent framework for managing complex projects, the application of just applying Scrum practices does not necessarily increase an organisation’s overall agility.
Being Agile is more a state of mind…a philosophy. Often it is more perspective than prescription. In order for an organisation to “be Agile,” they must also be…
The term Agile crept into use within IT with the publication of the ‘Agile Manifesto’ in 2001. The Agile Manifesto is at the heart of Agile thinking, although it has taken 15 years to become ‘mainstream’ thinking.
In simple terms the Agile Manifesto stated that…
‘Individuals and interactions’ over ‘Processes and tools’
‘Working software’ over ‘Comprehensive documentation’
‘Customer collaboration’ over ‘Contract negotiations’
‘Responding to change’ over ‘Following a plan’
And while we value the items on the right, we value the items on the left more.”
Please note that nowhere it does say abandon the statements on the right as some believe. Some process, tools, documentation, contracts and plans will be required to ensure that the items on the left will actually happen.
The Agile Manifesto is also underpinned by twelve principles.
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face‐to‐face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity‐‐the art of maximising the amount of work not done‐‐is essential.
- The best architectures, requirements, and designs emerge from self‐organising teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
Look around, how many principles can you see being applied around you in your organisation?
Agile teams are generally set up as self-organising teams with the authority to decide how work gets done, who does it and and how long it should take. That does not mean that they can do whatever they want... There will be policies, processes and procedures that will have to be adhered to. The trick is to ensure that these policies, processes and procedures are actually Agile, whilst at the same time meeting business needs.
Self organising teams lead to:
- Fast decision making
- Increase motivation
- Increased brain power
- Increased levels of initiative and continuous improvementThe Growth Of Adoption Of Agile Principles
Over the last couple of years the philosophy of Agile has expanded beyond just Software Development into a number of areas of IT and the business, as well as underpinning the DevOps approach it now encompasses:
- Agile Project Management
- Agile Service Management
- Agile Test Management
- Agile Architecture
- Agile Security Management
- ...and overarching Agile Management and Leadership
Let’s consider at a high level some of the ways adopting an Agile approach and mind-set will change the way we work.
Agile Project Management
Unlike a traditional waterfall approach, Agile Project Management does not expect or want all the detail defined up front.
There needs to be enough analysis and design in order to provide the framework for the requirements and the solution, with the detail being added as the project progresses.
Supporting this, and by delivering in Increments (rather than a single “big bang”), each Increment is accepted and demonstrates a solution that works. Each subsequent Increment builds on that confidence, as well as addressing any issues that emerge.
One of the key principles is ‘Iterative development’, which is the simple process of building feedback into each iterative cycle thus ensuring that the evolving solution converges on an accurate solution, as each cycle gets it closer and closer to where it needs to be.
A key Agile requirement is developing a mind-set that recognises that change is simply a fact of life and are all part of the iterative process. This recognises the simple fact that often it is not possible to fully describe something up front and expect that description to be fully accurate.
Agile Service Management
While IT service management is often overlooked as an Agile practice, it is the integrated approach to managing IT services that actually enables IT to meet customer requirements in a timely manner. Whether formalised or not, ITSM processes transcend every aspect of the service lifecycle from design, development, deployment to operation and retirement.
By their nature, ITSM processes were not intended to be complex or bureaucratic. Agile Service Management strives to instil Agile values into scaled ITSM processes thereby increasing IT’s end‐to‐end agility and ensuring consistency and speed. ITIL® is the most prominent ITSM framework.
Agile Service Management (Agile SM) ensures that ITSM processes reflect Agile values and are designed with “just enough” control and structure in order to effectively and efficiently deliver services that facilitate customer outcomes when and how they are needed.
The goals and objectives of Agile Service Management include:
- Ensuring that Agile values and principles are embedded into every service management process from design through implementation and continual improvement
- Improving IT’s entire ability to meet customer requirements faster
- Being effective and efficient (lean)
- Designing processes with “just enough” scalable control and structure
- Provide services that deliver ongoing customer value
Agile Service Management encourages a continuous learning environment and promotes better collaboration between development and operational teams by cross‐pollinating vocabulary and methods
What Is An Agile Process?
An Agile process is one that delivers “just enough” structure and control to enable the organisation to achieve its outcomes in the most expeditious, effective and efficient way possible. An Agile process is easy to understand, easy to follow and prizes its collaboration and outcomes more than its artefacts.
The characteristics of an Agile process include:
- Having an accountable owner
- Clarifying everyone’s roles and responsibilities
- Bench-marking itself against Agile values and principles
- Being lean, efficient and expedient
- Being scalable
- Adapting to change
- Leveraging automation
Agility does not happen overnight. Moving an organisation to an Agile mind-set and an Agile approach takes practice and perseverance. Identifying an organisation’s level of “just enough control” takes time and experience. You may not get it right first time.
Changing the culture thinking and behaviour of individuals takes repetition, openness and patience. Embracing the Scrum values of Commitment, Focus, Respect, Openness and Courage is essential for success.
Wherever you are in your Agile journey, remember that it is important to understand what it means to “be Agile” before you attempt to “do Agile”.
Start simple and stay simple. Pick one area to pilot as a learning experience. Identify key stakeholders and influencers and build a small self‐organizing team with cross‐functional skills and appropriate levels of ITSM and Agile Project Management training. Remember to also encourage feedback.
Don’t rush. Start with Minimum Viable Products and Processes and move forward from there. Introduce the new or improved process in small, frequent increments. Give the organisation time to absorb, adopt and adapt to new behaviours. Mature your processes holistically and organically. Small, short term wins will deliver greater wins in the long term.
Remember organisational change is often more successful and long lasting through adopting an evolutionary approach not bloody revolution. It’s also a marathon not a sprint (pun intended…)
I hope this article has been of use to help you understand and adopt an Agile approach within your organisation.
Why not try your hand at our ‘Agile Mini Quiz’?
Click the 'Take Agile Mini Quiz' button below to take our quick Agile Mini Quiz and test how much you know about our latest article 'The Beginners Guide To Agile' and see what you have absorbed or what you knew already.
Or why not consider taking some formal accredited training (Accredited by the DevOps Institute and APMG).
- DOI DevOps Foundation
- BCS DevOps Foundation
- Certified Agile Service Manager (CASM)
- Agile Project Management Foundation
- Agile Project Management Practitioner
Other areas of formal Agile training will be announced during 2018 and beyond