If you’ve worked with development teams in recent years for websites, web apps, mobile apps, or a variety of other products, you might have heard the terms “Agile”, or “development sprint”. Agile is a way of working that’s become hugely popular in the 2000s particularly for teams of developers.
It grew out of the principles of Lean, a process developed from the method that Toyota used in their manufacturing plants since the mid-to-early 20th Century. But what makes these two methodologies stand out from the rest when it comes to both manufacturing and development? How are they similar to each other, and how are they different - and which should you choose to use in your teams?
The lean methodology
Lean is all about tight, small cycles that produces MVPs. Growing out of a manufacturing method that was employed throughout the 20th Century in Toyota plants, it took on a refocused and new meaning when it started being used in software and development teams across the world.
Lean helps to ensure that you’re building the right thing to meet the needs of your customer, by employing an incredibly efficient Build, Measure, Learn feedback loop. This cycle involves building a minimum viable product and shipping prototypes that appear real and are functional, but aren’t fully fleshed out (to minimize time spent).
From there, the measure step of the cycle comes from collating real user data from testing carried out with the prototype built in the build step. The learn step is where the biggest benefits of this process come from, employing the data that you’ve collected to generate ideas that you can put into the next iteration of the build step.
Lean also places focus on small batches. The main principle behind this idea, as outlined in The Practice of System and Network Administration, is to do work in small batches as opposed to giant leaps. This allows you to stick to schedules of continuous delivery, and to quickly develop MVPs that iterate on data and ideas you’ve collated and developed over the build, measure, learn cycle.
The Agile methodology
When the book The Machine That Changed The World was published about early manufacturing-focused lean systems in 1990, it took the world by storm and got people thinking about how to speed up their workflows in other industries.
A group of 17 developers met in Oregon in the year 2000 to discuss methods that they could use to develop software on time and without the frustrating overheads and stress that came with many big projects at the time. They’d been meeting infrequently since the early ’90s and had been discussing the drawbacks of the methodologies that were currently in use for software development.
This meeting seemed to get the ball rolling, and the momentum kept going when they met again the following year in Utah. This meeting is now known as the Snowbird meeting, and from it we got the Agile Manifesto, which is the brainchild of industry-leaders and succinctly describes the goals of Agile development, which include:
- Continuous Delivery
The Agile Manifesto lays out that the ultimate goal is to keep the client happy. It suggests that the way to do this is to deliver continuous updates as early as possible and to get functional prototypes and software in front of the customer as quickly as possible.
- Embracing Change
Part of the issue with previous methodologies like Waterfall was that there was a significant lag between business needs and software development runtimes. When starting out on a big development project to satisfy a particular business need, it wasn’t uncommon to find that projects would be canceled or outdated before the software was even nearly ready to be delivered.
Agile encourages and embraces uncertainty and last-minute changes, which are an unfortunate reality of software development. The focused tightened sprints that come with Agile allows for constant re-evaluation of the development direction and allows for those late-stage changes to be brought in and completed on time.
- Collaboration is King
One of the most important ways that Agile combats lag and keeps software development focused on current business needs is by encouraging developers and business people to meet daily. Agile encourages face-to-face meetings as the most efficient and clear method of communication, which is why the daily stand-ups that come with agile development are so key.
This, along with the previous three points, is why we at Bothrs make use of Agile. We believe in having great collaboration with our clients and delivering functional software quickly. We believe in “trying and doing”, rather than defining a rigid set of rules for each project.
- Maximize Work Not Done
Any work that your development team is doing that isn’t pulled directly from the backlog is a wasted resource. Agile encourages your team to do small, iterative loops of work, and keep development as focused and streamlined as possible.
In this way, it aims to ensure that you’re not wasting time or effort on “spare” development that doesn’t need to be done and keeps your timeline tight as well as helping you to get into a flow state with only the essential development being done each cycle.
- Self-Organizing Teams
The people who developed the Agile methodology believed that the best and most efficient team is a self-organized one. With this in mind, teams are encouraged regularly to meet and reflect on their previous sprints, determining any weaknesses or sticking points.
During these meetings, they should aim to become more effective and adjust their working patterns and behavior to meet that goal. That’s the purpose of retrospectives, and why their frequency needs to be decided by the team themselves, taking into account how long sprints are and maximizing time spent working where possible.
The Lean Startup
Outlined in the book The Lean Startup by Eric Ries, Lean Startup is a method focused on making sure that you’re developing the right product, rather than making sure that you’re developing in the right way.
It takes a little from Agile principles, and a little from lean principles, and emphasizes testing ideas against real users and collating real data to prove that what you’re developing is not just right for the customer, but right for the business too.
We’ve found that Lean Startup is an incredibly efficient way to get to the heart of what our clients should be offering, and what makes them unique. It helps us identify the problems that they can solve for their customers, unearths USPs that hadn’t been found before, and can even change the product offering completely into something that our clients’ target audience really needs.
Similarities & Differences
You can see that there are clear similarities between these two working methods. Both of them prioritize delivering fast, efficient work. They both also put particular importance on iteration, flow and focus. The end product (and the customer’s satisfaction) are high up on the list of aims for both of these methodologies.
Eliminating waste and respecting people enough to organize themselves are key to the philosophies of both of these methods, and fast delivery of quality functional software through tight, well-defined and focused development cycles typify both of them in terms of practical and measurable work.
Agile is a methodology that draws a lot of strength from collaboration, both within the development team and outside of it, involving separate groups coming together to check in on how things are going and refocusing if needed. Lean encourages a much more stripped-back approach to development, focusing instead on keeping everything very minimal and efficient rather than communicative and reactive.
The Bothrs Way
At Bothrs, our development teams work largely in Scrum, which is a specific implementation of the Agile methodology. If we’re not working in Scrum, it’s likely that our team is working in Scrumban - another similar but different implementation.
We always keep our development teams Agile, utilizing Scrumban in our day-to-day work and running our office on a Lean implementation, eliminating waste to maximize productivity and customer satisfaction, as well as maintaining a keen overview of each team and making sure we eliminate roadblocks and issues wherever we find them.
Our Lean Startup processes also help to ensure that we’re focusing our efforts on the right things for our clients, as well as putting our clients on the best path for their businesses by taking our clients through the Bothrs adaptation of the Build, Measure & Learn-loop that Lean Startup emphasizes - which can sometimes be something completely be different to what they approached us wanting initially. This sort of change is something that Lean is great for handling, as well as rooting out in the first place.
We keep our projects tight and focused, and always finish our work before starting something new - ensuring flow and focus by not keeping too many plates spinning at once. We employ strict Agile and lean processes throughout our workflows and across our teams to ensure that there is zero time wasted.
The clear scopes that we set on problems that we will solve in a specific amount of time helps us to always deliver on our promises within those timeframes. We use information gleaned from real user testing (carried out with real-looking but non-functional prototypes) to build MVPs that are designed to tackle our clients’ desired metrics.
There’s no doubt that the lean and Agile methodologies are similar, and have similar underlying philosophies and ideologies that make them both very effective. There’s overlap between what they can offer to businesses, but there are fairly significant differences that make each methodology useful in certain circumstances.
Agile provides more room for last-minute changes and updates by allowing and encouraging collaboration, whereas lean focuses more on tightly focused and highly efficient workflows. Lean Startup is great for ensuring that you’re working towards something that’s not only effective, but also the right thing to be producing in the first place.
What you choose to use in your teams is up to you, and it will likely take some experimentation with these methods to find what works best, but it’s possible to employ different methodologies at the same time at different levels of your business. Managing your Agile or Scrumban teams with Lean helps to keep your studio working efficiently, and utilizing Lean Startup in branding and client deep dives can form a great foundation for the work you’re carrying out.