kalafoto - Fotolia
Microsoft has jumped on the emerging buzzword "developer velocity" as a measure of how fast a development organization can turn ideas into software.
Microsoft's recent Build 2020 virtual conference repeatedly invoked the phrase, which was highlighted in a recent McKinsey & Company report that ties competent software development to better business performance.
"Improving business performance through software development comes down to empowering developers, creating the right environment for them to innovate, and removing points of friction," the McKinsey report said. "Industry leaders refer to this capability as 'developer velocity.' This goes beyond the definition of velocity as it relates to agile methodologies -- meaning it is about not just speed but also unleashing the full potential of development talent.
Developer velocity is about "turning developers' ideas into software that supports the needs of your customers, and the goals of your business," wrote Scott Guthrie, executive vice president of the Cloud and AI group at Microsoft, in a blog post.
Moreover, developer velocity involves minimizing barriers to developer productivity, he wrote.
"The more you enable developers to build productively, collaborate globally and securely, and scale what they invent, the better business outcomes you'll see in areas including financial performance, innovation, and customer satisfaction," Guthrie wrote.
Old wine in new bottles?
The buzzwords change, but is developer velocity anything more than good old programmer productivity writ large? Either way, that should be the end goal for any developer organization, and some experts voiced skepticism.
Andrew Brust, a Microsoft MVP and founder of Blue Badge Insights, a New York IT consulting firm, said he views developer velocity as nothing more than "marketing mumbo-jumbo for enablement and productivity -- which is also marketing mumbo-jumbo, but probably easier to decode than 'velocity.'"
Organizations should enable developers in three primary ways: to develop apps for new platforms and form factors without significant new skill set requirements, to do collaborative development more effectively and to enhance the developer experience across platforms, as opposed to building cross-platform apps, Brust said.
"I'm just thinking of things like VS Code that let you do dev work on Linux and Mac, and even in the browser, as well as Windows," he said of the cross-platform enablement. "That's distinct from developing applications that would run natively on those platforms."
Developer velocity comes to the fore for enterprises burdened with rapidly responding to unexpected challenges with new applications.
"The concept and positioning are very valid, but it does seem like a very marketing-oriented initiative," said Larry Carvalho, an analyst at IDC. "In a broader sense, developer productivity/velocity is tied to capabilities of overall cloud adoption beyond just developer tools and Microsoft's message does not completely cover all aspects of the challenge."
Most major software-driven companies now have teams to support developers with more productive workflows and tooling.
"We generally look to companies such as Netflix, Uber, Lyft and Spotify for leadership in these areas because of their proven release cadence for new features," said James Governor, an analyst at RedMonk, which is based in Portland, Maine and focuses on issues that are important to software developers. Governor cited Netflix for building its open-source Spinnaker continuous delivery engine and having its own Developer Productivity team.
"GitHub and HashiCorp are two of companies most well-loved by developers and they're collaborating on the developer velocity term, which should help it become more widely adopted. Developer velocity is not super well-defined, but that doesn't make it any less valuable," Governor said.
Andrew BrustConsultant, Blue Badge Insights
Enterprises need to move faster than ever before, to remain relevant or even transform to be winner in digital transformation. Changes caused by the COVID-19 pandemic, such as shutting down, slowing down, speeding up and reopening, make it even more important that enterprises can move fast.
Developer cycle time
According to Richard Campbell, an IT consultant, co-host of the .Net Rocks! podcast and Microsoft MVP based in Coquitlam, British Columbia, speed counts, as developer velocity is a bit of a spin on an older concept called developer cycle time -- the duration between writing some code and getting it running.
"So, you code a little, run a little, debug a little, run a little and so on -- cycle time," he said.
This was easy in the days of tools like Visual Basic where the developer's PC was essentially the same hardware that a user would have, so they could code and test in the same machine.
However, between mobile development, utilizing the cloud and so on, the cycle times have been getting longer.
"You write some code, and it takes time to push up into the cloud, out to the mobile device -- so it takes a while to see what you've written in action and make corrections," Campbell said. "Microsoft is nothing if not a dev tools company. So what you're seeing from them is an emphasis on improving cycle times by improving the tooling -- creating fast mobile emulators, rapid deployment engines, edit-and-continue mechanisms so that you can push changes out without recompiling -- all techniques for shortening cycle time."
Ultimately, shorter developer cycles mean that more software gets delivered faster.
Microsoft is positioned to drive this idea forward by bringing the best of their developer tooling into the cloud and enabling new ways of working collaboratively so teams can focus on delivery, noted Elton Stoneman, a Microsoft MVP and director at London-based Sixeyed Consulting.
Low-code equals more velocity
There are two key ways to accelerate software development: Offload traditional developer work to (tech savvy) end users with low-code/no-code tools and at the same time provide the pro developer with productivity tools, increasing their velocity. Microsoft addresses these two areas with PowerApps and innovations around Visual Studio, said Holger Mueller, an analyst at Constellation Research, Monte Vista, Calif.
"PowerApps and other low-code/no-code tools are about getting to something useful in as little time as possible," Campbell said. "For certain classes of application, they are the fastest way to get things done. That's some serious developer velocity."
McKinsey also identified low-code, no-code tools as enablers of developer velocity. In that regard, Microsoft made a bit of a splash at the Build 2020 event when it announced its acquisition of Softomotive to expand low-code robotic process automation (RPA) capabilities in Microsoft Power Automate.
But Microsoft still has work to do.
"The first is around continuing to strengthen their low-code story and improve things like their RPA game," said Thomas Murphy, a Gartner analyst. "I think this is key as people need ways to quickly automate more processes and workflows. On the other side of developer productivity are things like IntelliCode and how you make [pro] developers more efficient. Overall organizations need people and tools that can help them be responsive to events, be effective with new technologies and gain effective skill levels."