In 2021, companies’ adoption of outsourcing is oft-discussed. But there is less familiarity with InnerSourcing, which aims to bring principles from the open source software movement and apply them to software being built inside an organization. Coined by Tim O’Reilly in 2000, InnerSource asks organizations to embrace a culture where everyone feels empowered to contribute, opening up internal development to a wider range of employees.
The concept is one that has been embraced by engineers at Intuit, a global financial software company that develops and sells financial, accounting, and tax preparation software for small businesses, accountants, and individuals. It’s headquartered in Mountain View, California, but like so many organizations this year, has shifted to a remote workforce during the COVID-19 pandemic. In that environment, improving communication and collaboration is paramount.
Matt Madson is a Senior Software Engineer with Intuit, which he joined in the summer of 2017. He has a wide range of experience in the world of tech, everything from embedded systems at Northrop Grumman to crash reporting systems at Sony Playstation. As part of Intuit’s Tech Culture team, Matt works on initiatives like InnerSource that create an environment where developers are empowered, can deliver with speed, work in a unified way and have fun. While working on these initiatives, Matt noticed a trend that he was familiar with from more than a decade in the world of programming. “I would see people asking the same question time and again. Often they would get an answer, but it wasn’t stored in a durable way that made it easy for others to access later. That meant a ton of time and energy wasted.”
The problem was particularly acute for engineers on the support team. “Our support staff was expressing frustration that they couldn’t focus on their core tasks,” says Madson. “They were getting constant interrupts in Slack, people were always pinging them with issues they consider urgent, and they didn’t have time left to actually work on addressing the underlying problem areas that these questions and issues arose from.”
In June of 2019, Intuit began using Stack Overflow for Teams to try and organize information. Instead of posting a query in email or chat, employees were encouraged to add them to Stack Overflow for Teams, where content is organized and searchable by tags. That would allow anyone to quickly search for the solution to their issue before turning to support staff for help. Madson saw fewer repeat questions and a noticeable improvement in productivity for support engineers. But the bigger picture was how this tied into a cultural evolution towards InnerSource.
“Let’s say someone comes to you with an idea or an issue. It involves one of our products, but not one they work on directly. It would be great if they could actually find out where that code lives and look at the code base. Maybe they can start being productive in that code base and in theory, actually fix that problem directly for the customer,” says Madson. “That to me was the big kind of selling point of InnerSource. What's stopping us from just fixing problems that customers have?”
Connecting Offices Around the Globe
Intuit took a phased approach to introducing Stack Overflow to its ~5,000 engineers, taking time to be thoughtful about the product’s use, piloting it with small groups of users and seeding relevant questions. By summer of 2020, Stack Overflow had rolled out to the full technical community at Intuit. The community has contributed over 7,000 questions and is adding more than 100 questions and answers per month.
Stack Overflow for Teams has a metric, Knowledge Reuse, that measures the people who come to Stack Overflow for Teams, but don’t ask a question - in other words, that user reused existing information from the knowledge base to answer their question. Intuit is seeing knowledge being reused by engineers almost 120 times a day since they launched widely.
Staff Software Engineer Rocio Montes has been with Intuit for seven and a half years and has gotten to know a broad swathe of the company’s technical teams. In the summer of 2018, she became a Technical Lead in the Tech Culture Team, focusing on how to expand and improve adoption of open source and InnerSource principles across engineering teams at Intuit. She traveled from her home base in California to India, Canada, England, and France, meeting with technical teams at these regional offices.
We listened to these engineers to try and figure out what their biggest blockers and problems were ... What we realized after numerous discussions was that communication to and from the center out to the spokes was really hard. They were looking for ways to improve collaboration.”—
Rocio Montes, Staff Software Engineer
Another mantra repeated by the teams she met with was a desire to communicate through code, to allow the knowledge teams already possessed to be better leveraged by colleagues. “To me, that is the core of InnerSource, to find ways to tap into the resources your employees already have, and to find new channels for disseminating that information,” says Montes. “We want to communicate through the work that we're doing and not create more meetings, more time spent figuring out where to look or who to ask. Stack Overflow plays a big role in InnerSource because it helps us document all these answers that are needed for engineers to move quicker.”
One of Montes’ big goals was to empower engineers from across the company to solve problems in areas they might not be directly assigned to, and to break down silos between departments so that expertise and ideas can more easily spread.
Stack Overflow plugs into both of those goals pretty nicely. You see areas where you might have the answer and you can find solutions from subject matter experts you have never met. You are able to move faster and collaborate on code that you hadn't worked on before.—
Rocio Montes, Staff Software Engineer
Because questions and answers can receive votes and comments from any user, it reinforces a culture where contributions are welcome. “Every code review can be an opportunity for mentorship,” says Montes. As InnerSource and Stack Overflow have spread, “it actually makes it so that both contributor and maintainers are learning from each other.”
Intuit still has traditional documentation. “We are pretty big on having ADRs (Architecture Decision Records) documented on the repositories,” says Montes. But it has made Stack Overflow for Teams part of a small handful of products that will consolidate Intuit’s developer collaboration tools. It’s even adding a dedicated community manager to help improve and grow its internal Teams instance. The goal, says Montes, is to ensure documentation isn’t just for recording rules, but for solving problems. “Stack Overflow helps out on unblocking engineers, and that is a big thing we didn't use to have.”