In this podcast recorded at QCon New York, Shane Hastie, Lead Editor for Culture & Methods, spoke to Sangeeta Narayanan of Netflix about improving the developer experience, and why it matters.
Key Takeaways
- Developer Experience is about making it easy and simple for software to be developed, released and operated
- It’s about identifying and removing whatever creates friction in the process of building software
- Modern approaches increase the cognitive load on engineers in every part of the process, DevEx tries to reduce that load
- The tools and infrastructure you use to build the system is as important as the production environment – treat your tooling in the same way you treat your production environment
- DevEx goes beyond the tools into anything which influences the ability to do effective work, the culture, motivation, team and individual health and productivity
Subscribe on:
Show Notes
- 00:18 What Edge Development is at Netflix and the Developer Experience group
- 00:56 Sangeeta’s background and experience
- 01:13 Optimising the process of developing, shipping, releasing and operating software
- 01:50 Developer Experience is about making it easy and simple for software to be developed, released and operated
- 02:20 Any time spent fighting the system or tools is time not spent delivering value to the business
- 02:46 It’s about identifying and removing whatever creates friction in the process of building software
- 03:36 Inviting people to contribute to the conversation about why this matters
- 04:04 One of the key goals of many of the changes in development practices (everything from cloud services to agile and DevOps) is to increate the velocity of innovation
- 04:36 Developers are required to, at the very least, be aware of the operational characteristics of their software, if not directly responsible for that operation (“you build it, you run it”)
- 04:48 These approaches increase the cognitive load on engineers in every part of the process
- 06:03 Examples of ways in which DevEx is made real
- 06:15 Docker provides stability of immutable infrastructure – you get the same environment for development as for production
- 06:31 The promise of serverless is that you don’t have to worry about anything except the business logic
- 07:24 Going beyond simple logs and alerts to truly context aware logging and alerting – not just what happened but where in the system it happened and why it happened
- 08:05 In the API environment a useful metric is “time to first hello-world” – how easy is it to get up and running with an integration to your system
- 08:43 This goes beyond agile/lean approaches which are about removing waste, into reducing the cognitive load and removing time spent fighting the system
- 09:28 The deployment unit is shrinking which is good, and it brings an overhead of understanding the composition of all the various services
- 10:14 Creating a holistic view of how your system behaves is hard due to the sheer volume of services/components
- 10:52 One implication of this is that the tools and infrastructure you use to build the system is as important as the production environment – treat your tooling in the same way you treat your production environment
- 11:12 Using Netflix as an example of the importance of developer tools for production stability
- 11:57 Tooling as first-class Tier Zero components because they need even higher availability than the production systems;
- 12:06 The need for innovation in insights
- 12:16 The emotive impact of tool use
- 12:31 We have KPIs for our systems, but we don’t measure team health and productivity with the same rigor
- 12:55 Developer education is another area of DevEx
- 13:20 The friction caused by outdated, or missing, documentation
- 14:12 Examples of things that could be on a health dashboard to expose the hidden costs of friction
- 14:35 Build the instrumentation into your tools in the same way you build it into your production systems
- 15:04 The complexity of the support environment that results from smaller services
- 15:40 The value of insights from the analytics in developer tools
- 15:53 Infrastructure services are now commoditised and cheap – developer time is expensive and scarce
- 16:38 The goal is to create room for ideation and deep thinking by reducing the overhead waste in developer work
- 17:40 These ideas are a logical extension of the lean/agile thinking which has been prevalent over the last decade
- 18:05 Make the cognitive burden and cost of interruptions visible
- 18:34 The need to keep up with changes in the tooling and infrastructure itself adds additional cognitive load
- 19:28 This is not dependent on organisation size, it’s about identifying the impact and overhead costs and investing in areas that will make work flow more effectively in the local context
- 20:14 For startup organisations, developer time is a significant factor of total cost, so optimizing that is an important consideration
- 20:45 The goal is to make it easy, quick and simple to develop and ship software
- 21:23 Exploring what DevEx means in different contexts
- 22:03 Examples of ways to “shift-left” and reduce external dependencies
- 22:55 The goal is to get a conversation started and to build a community around improving the overall developer experience – inviting others to contribute
Mentioned:
- QCon New York
- DevEx Track at QCon
- Netflix
- Docker
- Article – The Role of DevEx in Microservices
- Sangeeta on Twitter