Live From INTERACT: Microsoft’s Developer Velocity Research

This week we have another episode from the 2021 engineering leadership conference INTERACT. In this live conversation I interview Henrik Gütle, GM of Azure for Microsoft Canada.

Henrik joins the podcast to break down the results and key takeaways of Microsoft’s research into the impact of remote work on developer velocity - and what engineering leaders can learn from it.

Scrum: The Obsession with Commitment Matching Velocity

The Obsession With Commitment Matching Velocity

Despite decades-long efforts of the whole agile community—books, blogs, conferences, webinars, videos, meetups, you name it—we are still confronted in many supposedly agile organizations with output-metric driven reporting systems. At the heart of these reporting systems, stuck in the industrial age when the management believed it needed to protect the organization from slacking workers, there is typically a performance metric: velocity.

In the hands of an experienced team, velocity might be useful as a team-internal metric. But, when combined with some managers’ wrong interpretation of commitment, it becomes a tool of oppression. So when did it all go so wrong?

Estimates Are Useful, Just Ditch the Numbers

Many people dislike estimating work items as estimates supposedly open the path to the misuse of velocity by the managers, reintroducing Taylorism, micro-management, and excessive reporting through the backdoor. To them, for example, the proponents of #noestimates, estimates conflict with basic ideas of agile product development such as self-management, becoming outcome-focused, or leaving the feature factory for good.

I like to suggest a different, less ideological approach: estimates are useful at the team level, just ditch the numbers. How so? Estimation of work items is a fast way for a Scrum team to figure out whether all team members are on the same page regarding the why, the what, and the how of the upcoming work. The numbers are a mere side-effect, probably still valid to inform the team, though. (Indeed, the numbers are not intended to be used beyond the team level.)

Measuring Developers Isn’t Tyranny

Informing someone that you want to “measure” them is not a great way to start a conversation. Software developers, like all people, tend to look unfavorably upon having their performance closely measured. But measuring developers is one of the hottest trends for companies around the globe. So is it tyranny to measure people?

People are quick to note that numbers don’t tell the whole story and can become defensive at the notion their productivity should be quantified somehow. This resistance can become even more entrenched when teams become stacked against each other. 

Feature Flag, What? Why? How?

Velocity in agile development measures the quantity of work a team can accomplish in a sprint. It can be measured in story points, hours or days. The higher the velocity of a team, the more features it delivers, the more value it brings to customers. Sprint velocity is a good measure in sprint project management to evaluate and estimate team productivity.

The measure of the velocity is based on multiple factors: the continuous integration (CI) process, the time to qualify the code changes, to test the regression, the security, the delivery, etc…

How to Maintain a Healthy Codebase While Shipping Fast

One of my greatest privileges building Stepsize has been hearing from hundreds of the best engineering teams in the world about how they ship software at pace while maintaining a healthy codebase.

That's right, these teams go faster because they manage technical debt properly. We're so used to the quality vs. cost trade-off that this statement sounds like a lie—you can't both be fast and maintain a healthy codebase.

The Single Greatest Lever in Shortening Cycle Time

This post is the second article in our Tactical Guide to a Shorter Cycle Time five-part series. Read the previous post here.

Cycle. Time. Get it?

You discover your engineering team has a long Cycle Time compared to the rest of the organization or compared to the industry’s top performers. Now what?

Problems Solved by DevSecOps

To understand the current and future state of DevSecOps, we gathered insights from 29 IT professionals in 27 companies. We asked them, "What problems are solved by DevSecOps – where is the greatest value realized?" Here's what they told us:

Velocity

  • Product and company velocity of delivering features to customers. How fast customers are gaining value from new features or client requests. We're confident to say we are continuously shoring up our defenses. If everything had to be manually vetted, you could not keep up. Confidence in delivering secure, high-quality software.
  • With proper attention paid to security, product development and distribution would be much safer and faster.
  • Protecting data and applications without affecting business operations. DevOps provides a quicker time to value for customers and does that continuously throughout the product life with the end user. DevOps may ultimately evolve into such an efficient process that it provides real-time deliverables. In that environment, speed is essential. Protecting without impacting is what DevSecOps should strive to become.
  • 1) DevSecOps solves for both DevOps and Security/Compliance at the same time. It enables businesses to rapidly bring new applications to market but in a safe and compliant manner, ensuring business requirements are met or exceeded along the way. At the same time, implementing DevSecOps also requires the service organization to mitigate, avoid, transfer and accept any residual risk necessary to operate and reach customers. The greatest benefit to a service organization of DevSecOps is continuously learning from customer feedback though lightning fast application deployments – without having to compromise on security or compliance. 2) In the same way that DevOps helped reduce the psychological distance between the development and operations teams, DevSecOps brings security into the fold and become part of the ongoing engineering process. This has security benefits, of course, but it’s a rising tide that lifts all boats – a secure system will be more reliable and resilient, with a better ability to detect unexpected activities of all kinds.
  • DevOps started because of the desire for speed. We’re seeing quicker releases. When I look at the overall market it’s probably the reduction of risk by designing with security baked in from the beginning.
  • It comes back to the different kinds of risk that exist. In financial services, there are regulations and fines tied to regulation. How damaging can a breach be to the brand? The cost of implementing good security controls doesn’t have to be extreme. Companies can adjust the amount of work, effort, and cost to the risk they have. If databases have security built in it reduces risk.
  • The greatest value of DevSecOps lies not with automation and efficiency, but rather, in the ability to help the business manage cybersecurity risk. This means all DevSecOps activities should focus on managing risk and improving cyber resiliency for the organization.

Security Conscientious

  • Security becomes a top motivation. By default, DevOps provides uptime, feature velocity, and scale. If DevOps is working, security is built-in.
  • Embracing DevSecOps maintains innovation velocity that translates to the achievement of business goals without skimping on security. More professional DevOps take security seriously being mindful about how things work and how things work securely.
  • We have all heard about large organizations being sued and hurting their brand image due to security vulnerabilities in their software and applications, and the applications causing compromise of customer information. DevSecOps ensures that security is a norm and not an afterthought, ensuring developers always develop with the security of applications in mind.
  • Culture developed around it. Everyone is responsible for security. Automation of tools to keep up with speed and agility is great. Make sure you’re building security into every phase. Data breaches could be the result of a design flaw, not just bugs. If security is implemented in design the breach may not have secured.
  • DevOps in the early days is about moving fast and agility. But then realize you can’t improve speed without improving security. No number of features or availability will stop security incidents. Helping clients ensure security in the fast-moving environment.
  • The goals of development teams — speed, flexibility, innovation — can seem at odds with what security teams need to do, and traditional models of security are often perceived as blockers for development. A DevSecOps culture that unites both groups around a shared objective and pushes security “to the left” weaves security steps into developer workflows and results in faster, more secure releases without stifling developer innovation. Whatever the mission of the development organization, a DevSecOps culture supports and enables it, positioning security as a partner for successful software delivery.

Image title

What (Really) Is Velocity in Scrum?

Unlike most other races, measuring velocity isn't always beneficial in Scrum.

In complex and uncertain environments, more is unknown than is known. And what we know is subject to change. Only what we have achieved is known (unless we prefer to cover up). Progress is in what we have done, more than in what we plan to do. What we plan to do are assumptions that need validation by emerging actions and decisions. We make and incrementally change decisions based on what is known.

In Scrum, it is considered a good idea for teams to know about the progress they have been making. It is one parameter (of several) to take into account when considering the inherently uncertain future.

Delivering the Least Scope

One common misconception of Agile is that it simply allows you to get everything done faster. This is simply not true. Agile allows us to plan a much smaller scope of work, delivering iteratively and incrementally to deliver the least amount scope needed to solve the problem/capture the opportunity. The speed comes from only delivering what the customer needed. This is in contrast to how we used to scope a release when we delivered everything we thought they might want.

Focus on being skeptical and delivering the minimal instead of trying to deliver everything in the release.

This is stakeholder debt. I define stakeholder debt as the difference between everything they scoped for the release, minus what the customer uses.

Increasing Dev Velocity and Customer Experience Through Bug Dives

Debugging can lead engineers into the dark corners of a codebase, giving them time to gain a deep understanding of some section of code, but this vital information — the bug and the fix — often stays in the brain of the engineer who worked on the issue. 

What happens if a similar bug appears in the future? Do you task another engineer with shipping a fix or is it best to pull the original engineer away from their existing work? In this blog, we’ll dive into best practices for sharing knowledge within the engineering organization for startups.