Maxwell Engineering in 2021 by the numbers
The end of calendar year is one of my favorite times of the year as I get to reflect and review the accomplishments and learnings of the past year. For the Maxwell Engineering Team, 2021 was an incredible year as we grew over 170%! Even more impressive though is how well every new contributor to our software stack exhibited the Maxwell values of rigor, ownership, curiosity, kindness, and being straight-up (#rocks) to make an impact towards our growth.
To get a flavor of that growth in numbers, I compiled some metrics around the engineering output in 2021.
Lines of code
At Maxwell, we don’t rely on lines of code as a metric to quantify the output of engineering. However, LOCs are fun to review at the end of a calendar year to reflect on the activities in some of our most active repositories.
In three of our most active repositories, we added over 250k lines of code. That’s a lot of new features, performance improvements, and bug fixes. Though my favorite metric is the over 140k lines of code that we deleted in those codebases. As long as we are not just churning code, a healthy number of lines of code deleted in context with the lines of code added, is a good indicator showing us paying off some tech debt by removing dead code and refactoring areas of the code as we saw an opportunity to do so.
Another metric that is largely an indicator of how we work, is the “commits to main branch”. Similar to other engineering teams, we create pull-requests for merging new work into the main branch. So the number of commits to the main branch indicates how well we are breaking work into smaller units that we can complete and deploy to production. At almost 1,400 PRs merges in 2021, that’s almost 4 unique items of work a day that we are ready to deploy!
To count these metrics, I came across a set of nifty git commands that you can use for any repository you have access to from this blog post.
To count the number of files changed, lines inserted, and lines deleted in any repository:
git log --shortstat --since "Jan 1, 2021" --until "today" \
| grep "files changed" | awk '{files+=$1; inserted+=$4; deleted+=$6} END \
{print "files changed", files, "lines inserted:", \
inserted, "lines deleted:", deleted}'
To count the number of commits in a branch in any repository:
git rev-list --count --since="Jan 1 2021" master
Collaboration with our partners in Product and Customer Success
At Maxwell, we use a combination of GitHub Issues and Zenhub to collaborate with our partners in Product and Customer Success. The details of how we use GitHub+Zenhub in our development process is worthy of another post in the future, but the number of epics and issues completed serve as a great indicator of what we have been up to this year.
Over 200 epics completed this year includes all types of new features, enhancements, and even some re-architecting of critical services that power our web applications. Epics are broken down into units of stories and this year we closed out over 3,000 stories and over 1,000 individual bugs. This year we also invested in creating more tools and services to help our partners in Customer Support and Success help our customers more efficiently.
To count some of these metics that most teams use for agile and project planning, I created a small client using the GitHub API that we will be building out further and incorporate in our Sprint reviews and retrospectives in the future.
The numbers tell just a small part of the story of what we are able to accomplish as a team in a year. Each day I am grateful to get to work with some incredibly smart and humble team members and build great software together.
I’ll steal a quote from a new team member who joined the Engineering Team recently:
What a great start. I’m looking forward to see what we build together!
Looking forward to 2022 and beyond. Onward and upward!