Embracing Agile software development
Everyone wants to be "Agile" these days. And rightfully so. Agile is a great way to write software. It empowers teams to be more nimble, customer centric, inclusive and productive.
What is Agile software development?
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.
Agile is a good fit for businesses from startups to enterprises, varying team sizes and most projects. That said, businesses that adopt Agile must have a mindset that is ready for change and committed to training.
Benefits of Agile
We live in the age of information where things change rapidly. Customers, competitors, environments, problems and solutions change. Agile is a mindset that allows teams to adapt rapidly as well.
Agile enables teams to succeed in environments of evolving customer preferences and requirements. Here are some reasons why your business should embrace Agile:
- Customer centric
- Focus on business results
- Better quality
- Better predictability
- More flexibility
- More transparency
- Happier teams
Is your team ready for Agile?
Before deciding to adopt Agile within your team, it is important to assess the level of readiness within your business. Here are a few considerations:
-
Right expectations. Agile is not a magic word that builds great software fast. Managers need to have a good understanding of how the methodology works and champion the use of it in their teams for success.
-
Right conditions. While Agile is suitable for most situations, it is not suitable for some. When requirements are clear and stable, it is better to stick to the waterfall approach.
-
Small steps. Agile involves mindset change and you all know how hard it can be to change people. Start with a small group of early adopters in your organization. Create environments where they can succeed. Pair them with external agencies that practice Agile. Demonstrate tangible results that other teams can take reference from.
-
Start from the top. Implementing Agile requires a cultural change that starts from the top and permeates all the way through middle and lower management. Organizations must be committed to the cause and willing to spend time investing, educating and training people to adopt this mindset.
Agile at Altitude Labs
At Altitude Labs, our designers and engineers embrace Agile to be more productive and deliver better results. Clients often hire us for our flexibility and nimbleness.
Here are some ways we implement Agile:
1. Iterative vs. Incremental
Source: Jeff Patton
At core, Agile teams 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
Agile teams approach big problems by splitting them into bitesize pieces. We then 'sprint' through a single piece in a highly focused and rapid manner. We typically adopt 2 week sprints.
4. Project management
We use project management tools like Trello or Jira to manage projects and keep track of tasks. 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. Trello or Jira addresses this problem by allowing you to easily create tasks, assign them to people and track them.
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. Learn
The process of learning involves getting in front of users, having conversations with them and getting feedback early and often. It is a key part to providing value throughout the process by ensuing that what we're working on is the task that will lead to greatest business impact.
Subscribe
Get the latest posts delivered right to your inbox