2 Ways to Accelerate Developer Productivity
For many in software leadership, the tools designed to optimize product development have become a double-edged sword, consuming more time than anticipated. As the challenges multiply — from organization design to cloud architecture — tech leaders’ frustration is clear: We need investment in areas that simplify, not complicate.
I recently ran into a CTO friend of mine at a tech industry happy hour and asked how her new job was going.
“We’re spending way too much time writing software that manages the software that we actually sell, instead of building features for customers,” she replied.
Sound familiar? I’ve had dozens of similar conversations over the past year with software leaders who are concerned by the level of complexity in software development.
“Product development is so complex right now. Software leaders are pulled in so many directions about generative AI, cloud, cost, security, platform engineering, talent retention, roadmap planning, etc. I feel like I’m juggling so many things that I get into decision comas,” an experienced VP of engineering recently told me.
I resonated with these comments, and I believe it’s why there is so much attention on platform engineering currently. There is a strong need to provide a straighter line from development to business value. From my years of working with dev leaders and teams and from my recent conversations with folks about their most pressing challenges, here are two actionable platform engineering investments to reduce complexity and improve productivity for your dev teams.
No. 1: Organize Teams Around Customer Value
The happy hour I mentioned above is usually dominated by startup leaders hiring aggressively and venture capitalists looking for promising investments. In the past few months, the event has instead been dominated by talented people looking for new roles in tech and a very few venture capitalists looking for profitable companies.
According to the site layoffs.fyi, more than 230,000 tech workers have been laid off globally this year by more than 1,000 tech companies. Small and big companies alike are looking for ways to get the best results without hiring. In times like these, it’s critical to leverage modern team design concepts to set our top talent up to thrive.
Commonly, I see organization design changes made with a focus on solving engineering problems or building new platforms. For example, when a previous startup I worked for was acquired, the new company mandated that we create an organization to build out a new SaaS platform for multiple product lines. There was initial excitement around taking on a big technical challenge, and some of our best team members signed up to lead the way.
Determining the scope for the initial MVP (minimum viable product) and subsequent priority decisions was difficult for this talented group. When asked who will receive value once the platform is production-ready, the answer typically devolved into “everyone!” It became evident that the lack of a clear end-customer was hindering decision-making. In the end, this expensive investment accomplished little, despite a lofty goal and talented people.
Related, the common pattern currently is to create platform teams to build infrastructure and configure cloud services. Rapidly, teams in that position become the key dependency for every other team to deliver their commitments. In startups and enterprises alike, the team that is meant to help developers move faster somehow becomes the bottleneck. Why doesn’t this design work?
We’re building teams around a specific solution or a product problem, rather than around value delivery for a customer set.
When teams are built around a specific technical problem or predetermined solutions, you run a high risk of not working on the right thing. This is especially true for platform and DevOps teams. Often with this design, you’ll see the team outlive the core reason for its existence. When a team structure remains protected even after the core reason for the team is solved from the customer’s standpoint, poor decisions are often made.
Even worse, sometimes the customer wasn’t aware of the problem or the value of effort in the first place. In my experience, when teams are built around a solution or a specific problem, the problem magically never seems to be solved quite well enough. The teams themselves are not to blame; they are set up to struggle by the organization design. It’s a huge deal to give a team an identity as it will create their purpose for coming to work each day. Let’s make sure we are creating those identities around long-existing value.
Designing for Long-Lasting Productivity
The better way is to design your teams around delivering value for customers, both internal and external. This type of organization design promotes measurable outcomes for the people who benefit from the work. In turn, the team is incentivized to prioritize the most valuable efforts.
For example, at a previous fintech startup, we built an organization to focus on product offerings for the small- and medium-sized banking sector. Each person in this organization was dedicated to the planning, development, delivery and support for this customer segment. The team learned quickly from the first solution release as customers provided early feedback that it was missing key integrations and configurations.
These new capabilities were prioritized based on potential new revenue for the company divided by the time it would take to recognize that revenue. By focusing on providing value to a well-defined customer, the team was able to continually adjust priorities while creating a high-growth revenue stream for our company.
This concept works for internal stakeholders as well. Considering the platform team example, a straighter line to value is to build teams around developer productivity. With developers as the internal customer, the priorities of the team are assessed by their potential impact on accelerating productivity and improving developer experience. They prioritize work that allows developers to focus on business outcomes, such as taking away cognitive load around infrastructure, compliance and security. This design multiplies the value delivered to their customers.
No. 2: Automate Self-Service Infrastructure for Developers
After addressing platform team design, the next investment to turn to is self-service infrastructure for developers. Leaders often estimate that their development teams spend around 40% to 50% of their time on infrastructure configuration and provisioning. What a perfect area to invest in for large returns.
As tech companies scale and complexity arises, it’s common to create a platform organization to build infrastructure scripts and tooling for developers. This approach can yield early positive gains in unlocking cloud services. However, developers find they quickly become dependent on these teams for new services, configuration and deployment, causing delays and ultimately reducing productivity. Typically developers ultimately go around these teams and their systems and create shadow IT and compliance issues.
For example, a platform team I worked with recently was experiencing rapid customer and employee growth and had outgrown their monolith application. They were in a competitive market, so new feature development was critical to their success. They quickly realized that they drastically underestimated the amount of work required to build and maintain infrastructure for their developer teams.
The platform team leader told me, “I wanted to make it simple for developers with infrastructure as code tooling. My strategy was to build out templates and simply have the developers clone a project, clone these commands, and they’d be ready to start developing. It didn’t work that way. It became a major time suck because developers spent way too much time learning infrastructure tooling instead of cruising ahead with their core skills.”
This platform team ended up taking all the infrastructure work back to a core team that once again was the bottleneck for developers. Frustrating, right?
Automation Accelerates Productivity
Fortunately, recent advancements have made it possible for us to invest in self-service platforms that automate infrastructure provisioning from the actual code that the developers are writing. It benefits the platform team too. Instead of being a dependency for the dev teams, they are freed up to add value around monitoring, performance and security. Tech leaders who invest in self-service for their developers are really investing in providing their people with more autonomy.
Best-selling author Dan Pink provides insight into how autonomy is a key factor in driving innovation and productivity.
“Human beings have an innate inner drive to be autonomous, self-determined and connected to one another. And when that drive is liberated, people achieve more and live richer lives.” — Dan Pink in “Drive: The Surprising Truth About What Motivates Us”
The easier it is for developers to independently deploy their code to production safely, the more productive and satisfied they will be.
For example, a team we recently worked with faced major business risk and productivity issues that kept them from shipping innovations as quickly as they wanted. They invested in a self-service platform that automated infrastructure management so the team could focus on feature development. After this investment, the team increased their productivity by 12 times while reducing their cloud expenses by 60%. The straighter line to serving your team is to find key areas for automation, act quickly and move on to better problems for your team to solve.
That’s the approach we’re pursuing at Nitric. Our passion lies in the belief that applications and platforms should be a joy to build. We’re helping companies reduce platform dependencies with cloud development. From the conversations we’re having with technology leaders, the pain is very real. Dramatic improvements will come if you design your platform teams around customer value and focus on automated developer self-service of infrastructure.