Episode Description:

Metrics are hard. Identifying which metrics to measure is even harder. So how do you get started? And how do you know when you have achieved true developer productivity zen? Like anything in life the path to mastery is a journey and today we are joined by a passionate staff engineer from Meta to share with us his theory on a developer productivity maturity model which paints a wonderful mental picture on knowing where we stand in our developer productivity journey and how companies can move through the stages. We also discuss productivity dashboards, if you actually need dashboards, how Meta thinks about developer productivity and more.

Our guest, Karim Nakad, has his Masters of Computer Science from University of Wisconsin and previously worked for Amazon for SageMaker and Prime. He is currently a Staff Software Engineer at Meta making an impact in the productivity organization. He is dedicated to improving developer efficiency across the board and paving the way by generating and exposing productivity and code quality metrics across the tech industry and alongside leading experts and researchers. His excitement around improving the daily working lives of software engineers is palatable and contagious and I can’t wait to dig in. I met our guest at a developer productivity engineering conference last year and when he summarized back to me the purpose of a project I was working on in such an eloquent manner I knew then he had to come on the podcast to share his thoughts and efforts around bringing happiness to engineers and building products for people.

When our guest is not helping engineers move fast and be productive, he games and travels the world. He also two Macaws a green wing and a blue and gold.

Enjoy!

Connect with Karim

Sponsor:

  • Get Space: Do you care about your engineer’s experience? Install Get Space’s real-time survey iteration tool now with code buildwithpeople and get 20% off your first year to get real insights into your engineers experience

Episode correction:

Karim wanted to clarify the difference and intersection between qualitative/quantitative and objective/subjective:

  • Qualitative: Non-number data such as the subjective free-form text in surveys.
  • Quantitative: Data that can be counted, such as subjective multiple-choice in surveys or objective system measurements.

Show Notes and useful resources:

  • DORA
  • The SPACE framework
  • Karim’s best advice: “Anyone can be an expert you just need to read the code”
  • Karim’s everyday tool: Obsidian - note taking app
  • Reflect note taking app
  • The Hack language
  • Karim says developer productivity is about creating an efficient and enjoyable experience as that is what encourages devs to do their best work
  • To measure, rely on frameworks our there like DORA or SPACE and Karim recommends using metrics you already have to start with
  • AutoFocus paper: Workgraph: personal focus vs. interruption for engineers at Meta - improved personal focus by over 20%
  • KPIs rule of thumb takes two forms: Latency and Reliability
  • An example of latency is test latency and how quickly do they complete
  • An example of reliability is test reliability and how often your test delivers good signal
  • Productivity Engineering Maturity Model (5 stages):
    • Ignorance: Not know about or not prioritizing developer productivity
    • Awareness: Forming a team focused on addressing highest pain points for example around continuous integration or testing
    • Initiation: Merging KPIs into a common productivity goal and creating dashboards
    • Refinement: Making recommendations on dashboards to improve productivity
    • Mastery: Automating and integrating productivity improvements into workflows
  • Advice for smaller companies: Keep an ear on the ground for industry research from companies like Google and Microsoft, and leverage frameworks like SPACE and DevEx to measure and improve productivity.
  • The importance of nudging teams in the right direction rather than mandating productivity solutions, allowing teams to find their own paths to improvement.

Building something cool or solving interesting problems? Want to be on this show? Send me an email at jointhepodcast@unfilteredbuild.com

Podcast produced by Unfiltered Build - dream.design.develop.