Chapter 10. Quality, Testing, and Staging

If your bench is cluttered and poorly organized, it’s hard to find the tools and materials that you need as you work along. You constantly just have to shuffle things around to make room for the work that you’re actually doing. And, in short, everything takes so much longer than it should, and more accidents and mistakes happen along the way.

Josh Tidsbury, Apple developer evangelist and woodworking enthusiast, “Great Developer Habits”, WWDC 2019

If you are at a point in your software career where this does not loudly ring true, I promise you will get there sooner than you think. Personally, I try to hone my code once it’s initially working to ensure it is the most clear and logical implementation, a very Pythonic trait indeed. But I treat my professional code with the consistency of expertly pruning a bonsai tree and infinite raking of a sand garden. I actually sometimes just marvel at the code’s beauty as it sits on the screen. I work on my code not to reach the edges of perfection but to achieve the ever-elusive done.

It turns out that most engineers struggle with completion. We’re taught to chase a near-impossible satisfactory execution. Once your code works, you may lose interest in finishing it, as coding becomes tedious in the face of the exciting promise of building something new.

But maybe you get lost in the details, obsessively reviewing your code without ever letting the project be done. Either way, this chapter is for you. ...

Get Learning Serverless now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.