Written by Brenda Taylor, Scrum Master at Callmedia, 19th April 2018
Agile: a definition
Many of you will have heard the word ‘agile‘ being used within our work environments over the last few years. In fact, being agile is one of our company values here at Maintel. But what does agile actually mean within a work context? According to the Cambridge Dictionary, it has several meanings:
- The ability to move your body quickly and easily
- The ability to think quickly and clearly
- Ways of planning and undertaking work in which it is understood that making changes as they are needed is an important part of the job.
According to the Agile Alliance, Agile is ‘the ability to create and respond to change in order to succeed in an uncertain and turbulent environment’.
This basically states that we should not be fixed in our thinking and actions, but able to change what we do and when we need to do it. That’s really easy to say, but when you are trying to deliver a product or project for a customer that has specific requirements, how do you make these changes and keep the rest of the people involved informed and on track? There are various frameworks available that help with this, including:
And when it comes to software development there are even more frameworks, like agile software development, lean software development, Crystal and more.
So, what do these frameworks do for us? Most advocate a list of activities to perform, or backlog, which needs to be prioritised and ordered. This backlog needs to be visible to everyone involved and easily shuffled when priorities change, with continual inspection of the process so that you can continually adapt and improve.
Agile in practice
It works like this: you start work on the highest priority item, finish that item and remove it from the list, before re-assessing the activities and re-prioritising if necessary. This is continued until either all the work is complete or the project is compete. The project could be deemed ‘ended’ before the work is complete for many reasons, but a common one is that the company is getting value from the work already completed and believes that the remaining work won’t reap sufficient benefits to justify continuing. Reprioritising and assessing the backlog can be carried out at regular intervals as with scrum (called sprints), or as and when needed as with Kanban. Most agile frameworks advocate releasing the work at the end of each sprint or suitable period.
The good news is that these principles can be applied to almost anything!
Take this example: John had an upcoming family visit and was worried about everything that needed doing prior to their arrival. He wrote each related activity on a Post-it note and placed them in order of priority in a column on the left side of their kitchen table. Some things need to be done before others, so the order was crucial. There were two rules: a task (Post-it note) had to be completed before the next one was started, and whoever took a task had to move the Post-it from the left-hand column and place it in the middle of the kitchen table so the other person knew they were working on it. Once completed, a task was moved to the right-hand side of the table. This meant that all the tasks were completed on time, without the family falling over each other or duplicating work. There is an online tool available that will keep track of the work for you called Trello.
Agile working at Callmedia
Here at Maintel, our Callmedia team uses agile software development methods to write the software that enables call centre functionality. We use Visual Studio OnLine (VSO), a Microsoft software development tool to manage our backlog, with sprints that last two weeks. Within our business we tend to consider and agile approach when we don’t have a defined set of requirements at the beginning of a project and when requirements tend to become clearer as the project progresses so priorities can change.
The benefits of agile working
There are myriad benefits to adopting an agile approach, including:
- You can gain feedback and change the priorities of activities if and when required. For example if a customer told you they wanted a product available on Android before iOS devices, but then Apple brought out a new model and the customer changed their mind, you could refocus on iOS and get that done first.
- Customer feedback can be used to change what you produce to be more in line with what they need. For example a customer might have originally wanted their product to have a blue background, but after a rebrand now needs it in different corporate colours.
- By delivering as early as possible (i.e. before all the work is completed) you can start to reap value from the work carried out. Just think: how many times a year does Microsoft update and add new functionality to existing products?
- By delivering partially completed work you can experiment and gain feedback that tells you if you are doing the right thing and what other features should be added.
- You don’t invest more than you need to – you can stop work when the product has reached a level of maturity that means investing more time and money won’t be rewarded.
- Teams working in an agile manner using scrum tend to feel more empowered to make decisions and hence feel more in control of their working life.
- The feeling of teamwork that can be generated by working in an agile way is very rewarding for the team members, and makes work more enjoyable.
The drawbacks of agile
- There is some repetition in re-assessing the backlog and testing regular deliveries (including regression testing of work already delivered). The only way to do this well is to automate as much of it as possible, and this requires investment in software tools and hardware.
- There is no hard and fast set of requirements that are written down with every possible option defined – being agile is more about collaboration, working closely with customers and stakeholders and receiving feedback.
- The repetition can get monotonous, and keeping everyone involved motivated can be challenging at times.
- Contracts for work specific to customers is difficult to define, and time and materials contracts are better suited to agile deliveries. However customers can gain many benefits from agile, including stopping the work at the point they deem it no longer of value.
- Managers tend not to like the agile approach as they feel like they are losing control. Mangers have to learn to trust their teams, as provided they get the backlog items correct, the team should still produce what the company requires.
- It takes time to make the transition to true agile working, and during that process often managers don’t feel they are getting the benefits they were promised. As a result, they tend to blame the framework for failure to deliver.
And that’s it – agile in a nutshell!