Agile is a huge buzzword in Silicon Valley these days. But what exactly is it?
Agile is really a set of principles for developing products no one has seen before. An extract from the Agile manifesto reads:
In Agile, the highest priority is to satisfy the customer through early and continuous delivery of valuable software. Changing requirements, even late in development, are welcome. Agile processes harness change for the customer's competitive advantage.
That sounds great. But how do you achieve that?
There are several processes designed to help teams implement Agile. Some popular ones include Scrum, Lean or Extreme Programming (XP). Of startups that run Agile, 80% of them use Scrum because it is effective and easy to implement.
Note that Scrum has been found to be most optimal for teams of 5-9 people. For larger team sizes, break your team up into smaller teams of 5-9 people.
This article lays out some techniques we use at Altitude in a way that does not require any prior knowledge. The aim is not to cover everything, but rather to provide a high-level understanding of Agile.
1. Iterative vs. Incremental
Source: Jeff Patton
At core, we develop products in an iterative rather than incremental manner. To illustrate this, imagine painting Mona Lisa in two ways. The top diagram shows the iterative way while the bottom diagram shows the incremental way.
We like the iterative way because our clients and us can visualize the product at every stage of development. This means that we can align our vision and respond to changes in requirements early on.
2. First Things First
With any product, we build the most important features first. This might sound obvious, but has never been the case in traditional software development. Teams used to spend long periods of time examining requirements and planning. In contrast, by prioritizing the most important features, we deliver business value early. The diagram above illustrates the theoretical difference between Agile and traditional techniques. The x-axis on each of the graphs represents time and the y-axis represents the metric denoted in the title.
3. Sprints
We approach big problems at Altitude by splitting them into bitesize pieces. We then 'sprint' through a single piece in a highly focused and rapid manner. A traditional sprint could span anywhere from two to four weeks. We tend to prefer shorter sprints of 3 days to 1 week.
4. Project Management
We use Asana to manage projects and keep track of tasks. Asana is a free project management tool that takes away the reliance on emails. Emails are generally bad for managing workflows because threads are long and hard to keep track of. A single email thread could span several different topics. Messages get lost along the way. Asana addresses this problem by allowing you to easily create tasks, assign them to people and track them. Trello is another popular but paid project management platform.
5. Standups
Like tightly bound rugby players in a scrum, our goal is start and finish as a team. Standups, or scrum meetings, are a part of our daily routine. We use them to keep abreast of what everyone has done and is working on. The goal of standups is to improve communication and accountability.
Standups are designed to be short and sweet. The team stands together and people take turns to talk briefly about three things. Any follow-up discussions should take place after the standup.
- What he/she worked on yesterday
- What he/she is working on today
- Any blockers to development
A 'standup' should be conducted, well, standing up. A rule of thumb we use is: if you feel your feet getting restless, you're taking too long.
6. Reflections
We love reflecting. The process of reflection allows us to come up with ways to serve our customers and work together better. We set out structured time for formal reflections where we talk about everything we've experience in a direct, constructive, honest and professional manner.
We do this by creating a list of topics to discuss. We go down the list and talk about what went well, what went not so well and ways to improve.
Acknowledgements
Our methodology is based off what we've learnt from Amber Deibert, a professional Agile coach, as well as Bay Area companies we have worked at including Hack Reactor, Monsoon and Famo.us.