By: Peter Boileau, Senior Business Analyst
Agile Development is a blessing for developers, but is it for everybody?
It allows teams to create custom software quicker than using more traditional, rigid development processes. But for some companies, Agile Development isn’t a simple adoption of core principles. Some companies have a complex first release of their Minimum Viable Product (MVP) that depends on a number of business units while other companies are plain massive.
Does your company have a challenge you’re worried won’t mesh with Agile? Thankfully, Agile Development is its namesake: agile. You can adapt its processes to match many of your business’s characteristics.
Still not convinced? Let’s explore some non-traditional scenarios that prove Agile can fit your team.
National Leasing: the massive MVP
Sometimes with Agile, a company will release a net-new product by launching an MVP and incrementally release features that best meet its customers’ needs. In National Leasing’s case, we replaced two core systems that multiple business departments use for every lease or loan we write. This meant our MVP was massive in scope. We realized it would take years to develop, and we needed to adapt Agile to fit our project. Our solution: merge practices from Agile and the Waterfall Method.
Our hybrid took things great about Agile – scrums, backlogs, sprints – and adapted it to fall within our development team’s three defined roles that reflect a more traditional Waterfall approach. Here’s how it worked: we took our massive MVP and broke it up into different sprints. For each sprint, a Business Analyst met with users to create user stories. The Analyst sent that story to a Developer for coding. Finally, the team sent software for testing, where users suggested improvements and identified bugs. All the while, teams scrummed regularly to track progress.
Don’t restrict your project to fit any development framework if it won’t meet your needs. Agile is based on a set of principles, which I talk about here; not a rigid process. Although we borrowed from the Waterfall Method during our project, we still scrummed regularly, worked in sprints and most importantly, listened to our business leads to deliver software they needed.
Microsoft: Agile at scale
In 2011, Microsoft Corporate Vice President Brian Harry announced the company’s shift to Agile Development and Scrum. It split its 4,000-member Developer Division into hundreds of 10- to 12-person teams, each in charge of specific features for the company’s large suite of products. Usually working in three-week sprints, Microsoft cut delivery time, increased customer satisfaction and modernized its products. How did the software giant achieve such a drastic change at such a large scale? The company outlined its entire process here, but here are some notables:
1. Continuously integrate
Splitting its Development Division meant the company had some teams working on different features on the same project. Rather than silo teams during sprints and hope to integrate everything upon completion, relevant teams work together daily. They fix code integration problems as they go, saving testing time in the long run.
2. Manage technical debt
To prevent the number of software bugs from overwhelming the teams and negatively affecting development, Microsoft created the “bug cap.” If at any point in the project the number of bugs exceeds the number of engineers on a team times four, the team halts the project and fixes the bugs until the count once again falls within threshold. For example, if a team has five engineers, that project can’t have more than 20 bugs at any given time. This is a great rule of thumb to prevent a project from incurring mountains of technical debt that will hinder its release date.
3. Strike the right balance of alignment and autonomy
How can you align developers to your company’s product goals without micromanaging? Microsoft tasks its managers with pointing developers in the right direction and then empowers teams to execute from planning to delivery. It helps create ownership among development teams and removes oversight from management – as long as the teams fall within the maximum bug threshold mentioned above.
Even large companies that relied on more traditional development methods can use Agile effectively with the right implementation plan and top-down buy-in. With large projects, allow teams to collaborate, manage your technical debt regularly so bugs don’t get out of control and empower employees to develop autonomously.
Salesforce: empowering employees
Salesforce is one of the largest customer relationship management (CRM) companies in the world. With thousands of businesses using the program and millions of customer records, the company handles a ton of data. Like many companies using Agile, Salesforce’s philosophy is Scrum. The company keeps its development teams as small as possible and empowers low-level employees to make decisions so teams are self-sufficient.
Like most smart companies that use Agile, Salesforce took the method’s core principles and molded them to fit its needs. The company trains every new engineer using a two-day Agile boot camp to show him or her how Salesforce implements Agile and ensures all developers speak the same language. From lean management to extreme programming principles, developers learn exactly how to best create products in Salesforce’s fast-paced, data-driven environment.
Like Microsoft, Salesforce prioritizes scaling its development method alongside its business growth. To keep its culture of idea sharing, managers encourage developers to submit new ideas and own that project. Developers can then present their ideas to internal stakeholders, and if the idea garners support, they present the idea to senior management for a broad company sign-off.
Every member of your development team is valuable. Keep idea generation and communication free-flowing so your team suggests new products and speaks up when they recognize a programming issue.
Adapting Agile for your business
While the three companies above all took different paths to implement Agile, they share one thing: they adapted the development method to work within their frameworks. So don’t let your company’s idiosyncrasies deter you from adopting Agile Development. Mold it to address shortfalls in your current processes and your company will sharpen its focus and complete projects faster.