Microsoft has taken a page from the auto industry to use a process called Kanban (pronounced “con-bon”), a Japanese word meaning “signboard” or “billboard.” It was developed by a Toyota engineer to improve manufacturing efficiency.
Microsoft is using Kanban to drive engineering improvement and streamline workflows at Microsoft.
In its simplest form, Kanban involves creating a set of cards that track manufacturing or other step-by-step processes. These cards, tacked to a corkboard, can be used to highlight trouble spots and avoid overcapacity. That latter quality helps Kanban users resist loading up a job with too many side tasks.
“I learned about Kanban when I was in the Marine Corps,” says Ronald Klemz, a senior software engineer for Microsoft Commerce and Ecosystems. “When I joined Microsoft, I could see how it applied to software engineering.”
As it turns out, Microsoft already had an internal Kanban evangelist: Eric Brechner, who has since started his own company, leaving behind an influential legacy and a must-read book.
Although Kanban at Microsoft had a toehold, most engineers still used “scrum” or “Waterfall” development frameworks. Both attempt to help teams manage and assign workloads. Scrums, for instance, consist of regular planning meetings followed by two week to month long sprints that are meant to complete a particular stage of work.
We had a need to really visualize our work, which scrums couldn’t provide. Another engineer said, ‘Hey, have you heard about Kanban?’ We did some research and decided this was a good fit.
– Jon Griffeth, software development engineer, Microsoft Commerce and Ecosystems
While plenty of good work has come out of scrums and Waterfalls, they are not always ideal for driving engineering improvement. In scrums, for instance, the regular meetings can be time consuming and even though scrums are designed to break big jobs into manageable pieces, teams can still become overwhelmed if customers add new requirements on the fly.
“At the start of each two-week scrum cycle, you’re expected to know everything that you’re going to do in those two weeks,” says Snigdha Bora, an engineering lead with Microsoft Digital, the organization that powers, protects, and transforms Microsoft. “But there are things that will happen in those two weeks that you can’t know in advance. All of that goes away with Kanban because it has no limitations or artificial boundaries of a week or two weeks.”
“We were having problems managing with scrums, and were constantly missing sprint conclusions,” says Jon Griffeth, a software development engineer and program manager for Microsoft Commerce and Ecosystems. “We had a need to really visualize our work, which scrums couldn’t provide. Another engineer said, ‘Hey, have you heard about Kanban?’ We did some research and decided this was a good fit.”
Whether built with simple paper tags or using more sophisticated software versions, a Kanban board shows rows of cards arranged in columns that represent stages of a project’s workflow. Each card contains a specific task and who is responsible for it.
One of Kanban’s most valuable aspects is that each column is designed to self-limit work in progress. If an extra card is added that exceeds the agreed upon limit of tasks, the column heading might light up red, indicating a possible bottleneck that could delay work.
“It helps to simplify the workflow, so people aren’t getting hit with all kinds of sudden, ad hoc projects,” Klemz says. “They’re able to focus on the agreed-upon workflow.”
“When we would want to add an item to the workflow, Kanban helped us have more objective conversations about what we could and couldn’t do,” Griffeth says. “It also brings accountability within the team, and people get to pick a task and run with it. Then, if they are done with it, they can go to the next item on the priority list.”
If you finish a model, you don’t have to go to the project manager and ask what needs to be done next. You can see what’s next right on the Kanban board, pick up the next step and run with it.
– Baala Arumugam, senior software engineer, Microsoft Commerce and Ecosystems
That last point underscores another advantage of how Kanban at Microsoft drives engineering improvement: Its visual nature makes it easy for someone who is a newcomer to a team, has been on vacation, or is a part-timer, to look at the Kanban board and immediately see what needs to be done.
“With Kanban, it’s much easier to pick things up if you’ve been gone for a couple of days or if you’re just coming into the team,” says Baala Arumugam, a senior software engineer for Microsoft Commerce and Ecosystems. “And if you finish a model, you don’t have to go to the project manager and ask what needs to be done next. You can see what’s next right on the Kanban board, pick up the next step and run with it.”
That is especially handy in a time when COVID-19 has essentially all Microsoft engineers working remotely, often in different time zones. With Kanban boards, often created with Microsoft Azure DevOps, they can always immediately see the status of a project.
Binu Surendranath’s team owns the tools, processes, and controls to ensure that Microsoft’s preferred suppliers and partners are paid in a timely way once invoices are approved. They also ensure tax and other statutory compliances globally, provide tax and statutory compliance information, and report payments to the Internal Revenue Service.
Those multiple workflows led to siloed work, with different members of the team unaware of what co-workers were working on, or how their work had an impact on others.
“Everybody had their own priorities,” Surendranath says. “If I’ve finished one part of the puzzle, I celebrate a victory. But that didn’t really make a dent in the overall project. We support global businesses that are expanding exponentially. Having common, quantifiable business outcomes for everyone to work towards became an obvious need.”
Kanban has helped his team create a more collaborative work environment while still giving engineers plenty of freedom for innovation and simplification to positively impact customer experience and business needs, Surendranath says.
Sounds good. But what about concrete benefits to Kanban at Microsoft? There are plenty.
“Gone are the days when we’d spend nine months on a quarterly update,” Surendranath says. “Now when you close and open Outlook, you have a new Outlook because of the frequent updates Microsoft makes to it and other apps. That takes a more agile development approach that Kanban works well with.”
The agility plays well with Microsoft customers, who like to see product improvements that are rapid and seamless. The same goes for the business expansion of Microsoft Azure and data center launches and announcements.
“From the time Microsoft CEO Satya Nadella announces a roll-out, we have just a few weeks to get everything up and running,” says Surendranath. “Kanban has really enabled us to meet that need with a high level of confidence and transparency.”
Kanban also helps Microsoft teams more effectively manage and deploy global statutory laws and compliance, which can change rapidly with predefined timelines and in most cases are non negotiable.
Griffeth’s engineers, meanwhile, were assigned the task of creating a new purchase order workflow for a team in India.
“We tracked a lot of what had to be done in Kanban,” he says. “It helped us see where a bottleneck might be, such as the product owner flooding the first step of the process with a lot of requests, or if code validation becomes a problem.”
The result: A smoother process, happier customers, and a team that worked well together. The team also saw improved productivity because no one was spending time in scrum meetings or working as scrum master.
Kanban continues to be a learning process for Microsoft engineers using it, and it has not yet gained truly widespread acceptance. But it has shown a path to make software development faster and more trouble-free, while helping teams work together more effectively.