Fixed-cost, Monthly Maintenance Services
Ever since we started offering productized Ruby and Rails upgrade services and upgrade roadmaps , we’ve been interested in helping as many people and companies as possible.
Unfortunately, in the past we’ve had to turn down companies who wanted to work with us but couldn’t secure the minimum monthly budget to work with our experts.
I’m pleased to announce that we’re now offering new opportunities for startups and small businesses to work alongside our team.
In this article, I will share a few new options to collaborate with our team of experts who specialize in technical debt remediation.
Recently I had the opportunity to connect with a lot of SaaS founders at MicroConf ‘23 which made me realize that there are many entrepreneurs, startups, and small businesses out there that want to pay off technical debt by investing a small amount of money per month.
While teams understand the need to remediate their technical debt, this very often loses priority to shipping features, releasing patches, and addressing other tasks prioritized in their product roadmaps.
Although everybody would like to upgrade their app as fast as possible, sometimes that’s just not in the budget. Instead, a good alternative can be to gradually work through your technical debt with a slower-paced retainer model.
What's included in our monthly maintenance services
Our fixed-cost, monthly retainer will include services to gradually reduce the technical debt in your application. Our services will include:
- Ruby Upgrades
- Rails Upgrades
- Dependency Management
- Performance Monitoring
- Tech Debt Management
- Security Patches
If your application could use a Ruby upgrade, we will submit a pull request that looks like this:
(Source: Upgrade to Ruby 3.2 on Points )
If your application is not properly configured to dual boot
next_rails , we will submit a PR
that looks like this:
(Source: Set up dual booting on Benchmark.fyi )
This will be the basis of our work around dependency management.
We will make sure that your application can run with both versions of Ruby. If you are on Ruby 2.7, we will make sure that your test suite works with both Ruby 2.7 and 3.0 .
Once we fix all the errors in your test suite, we will make sure that your staging environment works with the next version of Ruby. If anything goes wrong, we will make sure we patch all issues before we deploy the change to production.
Similarly, we will gradually tackle Rails upgrade projects. We will use our years of experience to submit many, tiny pull requests that will upgrade your application taking baby steps.
We will make sure that your application can run with both versions of Rails. If you are on Rails 5.2, we will make sure that your test suite works with both Rails 5.2 and 6.0 .
Once we fix all the errors in your test suite, we will make sure that your staging environment works with the next version of Rails. If anything goes wrong, we will make sure we patch all issues before we deploy the change to production.
If you are curious about the dual booting technique, we have been running the Rails upgrade workshop at RailsConf since 2019. Here is a recording of the workshop we delivered at RailsConf 2021
While there are great tools out there that can quickly help you upgrade minor versions of your dependencies (e.g. Depfu ), there seems to be a missing link between what we do (Ruby/Rails Upgrades ) and what they do (shipping automated pull requests, upgrading one minor version at a time).
That’s where we come in. We will work on minor and major version upgrades (according to semver ) for all of your dependencies.
We will submit one PR at a time. This will give us the opportunity to properly test, deploy, and monitor any issues in production.
If your application is not currently using an Application Performance Monitoring (APM) service (e.g. New Relic ), we will set one up for you. We’ll consider your needs and budget, to make the best recommendation.
Once your APM is up and running, we will keep track of low performance and high memory load issues. We will share a monthly report with the top issues we noticed as Ruby and Rails performance experts .
If you want a more in-depth analysis of your application’s performance, we can deliver our highly-rate and always insightful Tune Report .
While the Tune Report is not included in any of the monthly plans, our clients have found that they can recover their investment in about 3 months.
Tech Debt Management
As open source maintainers of technical debt projects like RubyCritic and Skunk we know how important it is to keep track of your code complexity, churn, and code coverage metrics.
On top of that, we know how difficult it is to communicate the problems with consistently increasing technical debt:
- Reduced development velocity
- Constant regressions
- Undesired side effects when deploying small changes
We can help with that! Every month you will get a report on your technical debt, not just on the codebase, but also in your development workflow, infrastructure, and best practices.
In this report we will include any changes that were made to simplify complex code structures, enhance your development workflow, or anything else that was shipped to make your codebase easier to maintain.
Our goal is to gradually improve code quality without disrupting your development team’s operations.
If you don’t have a shared understanding of what “code quality” really is, we
can help you define one that works for your team. After that we can help you
“codify” your code quality definition with tools like
Picture this: On day one of our engagement our team will perform a quick security assessment of your codebase. This will give us an idea of the work to be done to secure your application from known exploits and potential attack vectors.
Every month we will make security patches that will level up the security standards for your Rails application . Depending on the severity of the issues we find, we might prioritize this topic on day one.
Are you ready to make your application more maintainable?
Considering our 10+ years of experience upgrading applications, and more than 20,000 developer hours paying off technical debt , we believe we can offer meaningful updates to your codebase starting at $1,000 per month:
- Shito: $1,000 per month
- Shohin: $2,000 per month
- Komono: $3,000 per month
Each package includes a maximum number of hours per month that we can invest in your application. When naming these packages, we decided to go with Bonsai types because we see a lot of similarities between pruning Bonsai trees and gradually paying off technical debt. 🌳
This is a great package for organizations and companies that either don’t have a lot of technical debt or want to go slow.
Their test suite might be well-written, their Rails application might be a small monolith, or their development team would be overwhelmed with more than 2 pull requests per month.
This is a great package for organizations and companies that have some technical debt, know they need to fix it, and are ready to review from 2 to 4 pull requests per month.
Their test suite might need some attention, their Rails application might have between 50 and 150 models, or they’re one or two versions behind the latest stable release of Ruby and Rails.
This is a great package for organizations and companies that are ready to ship 3x more than if they had chosen the Shito package.
Usually their Rails application is rather large, their main dependencies (Ruby and Rails) are a few versions behind, their test suite is flaky, or they need to move fast and upgrade things.
Depending on the plan that you pick, we will invest from 5 to 20 hours per month remediating technical debt in your application/s.
We know that every now and then our clients will have one-off, strategic projects they will want to ship as soon as possible and we want to be able to help.
When that happens, we can offer our services on an hourly basis to ship value in the form of features, infrastructure upgrades, bug fixes, or anything that will make a difference in our clients’ businesses .
Our monthly packages don’t include rescue services. If your application needs to be rescued, we can certainly help! We’ve done this many times in the past and we are happy to get you out of a thorny situation.
For these projects, we need to start with a short, one-week retainer to kickstart the rescue project. This will give us time to assess the situation, come up with a rescue plan, and start executing it.
How does it work?
We are used to working with teams of all sizes. From engineering teams of one to teams of 50+ software engineers, we see every engagement as a successful collaboration between our team and your team.
We thrive when we collaborate with our clients’ engineering team on a daily basis, so we will have a channel to communicate asynchronously. If you need to get on a call, we can do that too!
Any of the changes that we submit will be open for review and discussion. We will clearly explain why they are necessary, what the changes will do, and what impact they will have in your tech debt scorecard.
Communication is key to us! We provide you with a monthly report on your technical debt, including codebase, development workflow, infrastructure, and best practices. We are always open to hearing your thoughts and needs and answering your questions.
Our commitment to helping people and businesses overcome their technical debt is stronger than ever.
We are excited to launch our new monthly maintenance packages tailored for non-profit organizations, startups and small businesses. We are certain we will gradually reduce technical debt in their applications.
Our technical debt remediation services, provided by a team of experts, include dependency management, Ruby upgrades, Rails upgrades, performance monitoring, tech debt management, and security patches.
These three affordable plans starting at $1,000 per month are cashflow-friendly, consistently add value to your codebase, and give you access to our team of legacy code experts.
You can expect to see gradual improvements in your code quality and overall decreasing technical debt while keeping your development team’s velocity uninterrupted.
“The typical development organization can increase their feature delivery efficiency by at least 25% by managing technical debt. That’s the equivalent of having 25% more developers without additional staffing costs or coordination needs.”
(Source: CodeScene Whitepaper )
What would you do if you had 25% more development efficiency? How much more could your development team deliver in a month?
Let us be your trusted partner in making your application more maintainable, secure, and efficient.