A little while ago we were asked if we could do a talk on ‘developer experience’ at QCon. I volunteered.
We were having lots of fun at the time building a CI/CD system out of Jenkins and Kubernetes, and using a bunch of hipster languages in the project and I thought I would be pulling lessons out of that, but in the end all that was cut and I ended up talking about the origins of LShift (and some other things that followed on from that).
We all know the mission statements of major companies that give them their, well, mission. “To organize the world’s information and make it universally accessible and useful.”, or “to accelerate the advent of sustainable transport by bringing compelling mass market electric cars to market as soon as possible.” Informally, the mission statement of LShift when it was founded was approximately “To create a good developer experience for good engineers”. Now, all organisations say they want to treat their employees well. But what happens when it’s the mission statement, the organising mantra? My fumbling attempt at an answer can now be viewed here.
Briefly, I focused on two major tactics LShift adopted to create a good experience
- Opportunities to keep learning
- No project managers
To keep generating opportunities to keep learning, LShift became a consultancy. This generates a wide variety of fresh fields to explore, and constant opportunities to achieve greater mastery of CS. A lot of the ‘developer experience’ world is about achieving a perfect flow for a small set of tools, but we constantly change environments and tools so I explore a few implications there.
The ‘No project managers’ idea was about control of the project, and hence the empowerment to set yourself up to succeed. The flip side is that you take the responsibility on yourself, and we’ve found that’s a deal worth making.