OhMyZsh: Should Up their Deployment and Lead Time to Reach Their Ambitions
5 min read
Ohmyzsh, sounds like an exclamation right? Ohmyzsh came to life when its creator, Robby Russell, one day, out of frustration over a repetitive error while working on a project exclaimed, ‘When are you finally going to switch over to Zsh?!’
And, after a lot of back and forth, Ohmyzsh was born in 2009.
Make sure to subscribe to our newsletter if you would like exclusive case studies and more such content!
So, What Exactly is Ohmyzsh?
Ohmyzsh is a popular framework for managing Zsh configuration. This framework makes it easier for users to customize their command line experience with themes, plugins, and additional functionality. Robby Russell developed OhMyZsh to simplify the process of setting up and maintaining a Zsh environment, which has since gained a large and active community of contributors and users.
In the repo's own description, today Ohmyzsh is a delightful community with 2,400+ contributors. It includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes, and an auto-update tool that makes it easy to keep up with the latest updates from the community.
With such a vibrant community and innovative tools, I definitely would have missed out if I hadn’t gotten a glimpse into their engineering workflow.
I will quickly take you through three key aspects of this exercise.
BTW we are using Middleware Open Source for these case studies, in case you are interested to give it a shot it takes a few minutes to set things up locally!
Premise: Quick Merges, Unstable Lead Time, Poor Deployments
One thing that stands out in OhmyZsh repo is their ability to merge the fixes and changes into production quickly.
They nailed their merge times in July, August, and September 2024, clocking in at 6.8 minutes, 9.2 minutes, and a speedy 38 seconds.
Their rework times were also pretty solid, landing at 3.5 hours, 2.6 days, and 8.5 hours—though August was a bit of a hiccup.
But here’s where things took a hit: their first response times dragged the entire development cycle down with 2.1 days, 8.0 days, and 4.29 days for each respective month. Ouch!
Their sluggish first response time really messed with their whole process, which ended up dragging out their lead time. It took them 2.16 days, 10.7 days, and a whopping 43.5 days to get their products/features to the finish line over the last three months.
Oh, and don’t even get me started on their deployment numbers. They barely scraped by with 16, 15, and 23 deployments in July, August, and September.
Also read: Is Deployment Frequency The Goldilocks Zone For Software Delivery?
Drawbacks - Where are they dropping the ball?
Rework and Iterations: Frequent revisions often elongate the time until final acceptance of PRs. They end up spending about 30% of their time just fixing bugs. And those bug fixes? They can seriously slow things down. It's like trying to mop up a spill that just keeps coming back.
Delays in Initial Reviews: First response delays often occur due to workload bottlenecks, dependency on few resources to review the PRs, in this case, core contributors like Marc Cornellà and Carlo Sala, lack of prioritization, etc. These delays slow down the feedback loop, causing inefficiencies and holding up progress.
Also read: Is Next.js the Next Evolution or Just a Passing Trend? A Dora Metrics Case Study
Their Hidden Treasures
Backing of 2,000 Contributors
With a robust team of 2,000 contributors, they hold a significant competitive advantage. By effectively leveraging this diverse talent pool, they can create a streamlined engineering workflow that enhances collaboration and drives innovation. This collective expertise not only facilitates quicker problem-solving but also ensures high-quality outcomes.
Robust Automated CI/CD Pipeline
The automated CI/CD pipeline makes validating and merging pull requests (PRs) a breeze! OhmyZsh has an efficient CI/CD pipeline in place which they can use to their benefit.
For example, using the automated CI/CD pipeline, they expertly merged PR #12681, which brings back the gcn command that was mistakenly removed, as well as PR #12646, which upgrades the certifi package from version 2024.7.4 to 2024.8.30.
Check out: Jenkins Dora Metrics: CI/CD Leader With High Deployments, Slower Cycle Time
Active Reviewers: The Backbone of Quality Assurance
Having active reviewers on the team is crucial for maintaining high standards in codebase. Prompt reviews from core contributors, like Marc Cornellà and Carlo Sala, help ensure that pull requests (PRs) are assessed quickly and efficiently. This not only accelerates the development process but also enhances overall code quality.
For instance, take PR #12651, which involved fixing some annoying typos. Carlo Sala stepped in and reviewed it exceptionally fast, demonstrating the value of having dedicated reviewers who can provide timely feedback.
However, to further streamline their process, they should cultivate more capable reviewers like Carlo and Marc. With such active participation across the board, the team can address issues swiftly and maintain momentum in their projects, fostering a culture of collaboration and excellence
OhMyZsh: Should Up their Deployment and Lead Time to Reach Their Ambitions
OhMyZsh was born out of one man's passion to simplify workflows, and soon, 2,000 other enthusiasts joined him, eager to take the project to new heights. But for this vision to become a reality, they must harness their collective strengths strategically. Building something is one thing—maintaining it is the real challenge.
If you find these learnings interesting, we’d really encourage you to give a shot at Dora metrics using Middleware Open Source. You could follow this guide to analyze your team or write to our team at productivity@middlewarehq.com with your questions and we’ll be happy to generate a suggestion study for your repo — free!
Also, If you’re excited to explore these insights further and connect with fellow engineering leaders, come join us in The Middle Out Community and subscribe to the newsletter for exclusive case studies and more!
Did you know?
OhMyZsh is one of the most starred repositories on GitHub, reflecting its widespread adoption and the strong support it enjoys from developers around the globe.