Title: Learning How to Dev in an Ops World
Six months ago my team decided to take a RESTful web service (Conqueso) and rewrite it in a more scalable, auditable, highly-available fashion (propsd). As operations people, this was our first foray into delivering a software product together. We flailed spectacularly, learned a lot, and got a thank you note in the end. This is a three-part story about the things we learned. Each part covers a chunk of the development cycle: design, coding, maintenance. We discovered that patterns that work in operations can become anti-patterns in development. During the design phase we found that "Divide & Conquer" works for patching servers but doesn't translate well into writing technical specifications. While coding we saw that "Lone Wolves" are a perfect fit for fixing on-call issues but a poor fit for collaborative development. In maintenance mode we "Monitored All the Things", but no one knew because we forgot to send out status updates. Because propsd is open source, our journey and learning is lovingly documented by code, comments, and pull requests. So maybe other operations teams figuring out how to do development don't have to go through the same pain? At least, that's my hope by telling this story.