THOUGHT LEADERSHIP
Adopt a DevOps Mindset for a Successful Transition.
Your customers don’t care if you’re small. When they report a problem, they want it fixed. When they ask for a new feature, they want it delivered as soon as possible. For the resource-constrained startup trying to mature, this can pose a significant challenge. You need to introduce more process and standards to ensure quality, resiliency, and security as you scale. But at the same time, you can’t afford to squelch the innovation and agility that led to your earlier success.
Here’s a brief run-through of what that looked like for us.
1: Understand What You Have and What You Can Let Burn
Before making changes, we first needed to understand what we really had. Most of what we had was in our CTO’s head. So for us, the first order of business was to get everything documented and to determine our level of resilience and scalability. When you’re running fast, you often leave a trail of technical debt. To find the time we needed to mature our DevOps value stream, we made a conscious effort to fix only those issues that had a meaningful impact on customer experience or were critical to our ability to deliver services. These were quick conversations. Is it important, or can we “let it burn”?
4: Experiment, Fail, and Codify Successes
Our CTO has a PhD in data analytics and follows a rigorous scientific method when experimenting with potential big data solutions. The methodology I follow in operations (and am helping to push into development) is a bit more straightforward:
- What is the business need?
- Does the solution fit within our roadmap vision?
- Is it practical from a logistics standpoint?
- Is it cost-effective?
Cost is the least important factor. If it works, we know it’ll save us money in the long run, because we’ll get more done. If the experiment fails, you move on quickly. If it succeeds, you have something you can codify into a new published process.
A Word About Tools
Tools are important, but they’re just that: tools. They’re meant to serve you, not the other way around. We use Jira for job ticketing and tracking, but we don’t let limitations with Jira dictate changes to our workflows. If the tool doesn’t remove a constraint, or if it creates new ones, you need a new tool. There are no sacred cows.
Ultimately, the DevOps mindset is about going back to basics—to the principles of customer focus, agility, and that single-minded determination to knock down obstacles to success. You do that by understanding your value stream and the constraint you’re trying to solve for. Then ask yourself questions, starting with architecture and frameworks and then moving on to individual processes and tools.
We love the kanban board tool Trello. Yet here I am with our director of engineering, sitting cross-legged on the floor, staring at a bunch of Post-it notes on the wall. It works. And we have plenty of Post-its and a lot more wall.
Toolbox
The tools you use will be unique to your needs. In case you’re wondering, here’s what we’re experimenting with:
- Continuous integration (CI): Jenkins
- Version control: Switched from Subversion to Git to work in a distributed fashion
- Build agent: Maven
- Test automation: Selenium
- SQL schema consistency: Redgate SQL Toolbelt
- Structural administration: Kubernetes and Puppet
- Monitoring and metrics: New Relic and Google Analytics
About the Author: Bob Dussault is Senior Director of Data Center and Technical Operations at FastBridge Learning. Or as Bob puts it, “an infrastructure guy who has spent the last ten years figuring out how best to provide secure and agile resources for a software-as-a-service (SaaS) provider.”