Bonsai - Fixed-cost, Monthly Maintenance Service

Bonsai - Fixed-cost, Monthly Maintenance Service

Ever since we started offering productized Ruby and Rails upgrade services opens a new window and upgrade roadmaps opens a new window , 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 opens a new window remediation.

Why

Recently I had the opportunity to connect with a lot of SaaS founders at MicroConf opens a new window ‘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.

Enter Bonsai opens a new window ! Our fixed-cost, monthly maintenance service for Rails applications.

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

If your application could use a Ruby upgrade, we will submit a pull request that looks like this:

Pull request to upgrade Ruby to 3.2

(Source: Upgrade to Ruby 3.2 on Points opens a new window )

If your application is not properly configured to dual boot opens a new window with next_rails opens a new window , we will submit a PR that looks like this:

Pull request to set up dual booting in a Gemfile

(Source: Set up dual booting on Benchmark.fyi opens a new window )

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 opens a new window .

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.

Rails Upgrades

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 opens a new window .

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 opens a new window since 2019. Here is a recording of the workshop we delivered at RailsConf 2021 opens a new window

Dependency Management

While there are great tools out there that can quickly help you upgrade minor versions of your dependencies (e.g. Depfu opens a new window ), there seems to be a missing link between what we do (Ruby/Rails Upgrades opens a new window ) 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 opens a new window ) 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.

Performance Monitoring

Sample of a screenshot of NewRelic

If your application is not currently using an Application Performance Monitoring (APM) service (e.g. New Relic opens a new window ), 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 opens a new window .

If you want a more in-depth analysis of your application’s performance, we can deliver our highly-rate and always insightful Tune Report opens a new window .

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.

Screenshot of a sample Tune Report, Rails performance optimization audit provided by FastRuby.io

Tech Debt Management

Screenshot of a sample rubycritic report of the Points open source Rails application

As open source maintainers of technical debt projects like RubyCritic opens a new window and Skunk opens a new window 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 opens a new window 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 reek, rubocop, and rubycritic.

Security Patches

bundle-audit results in the open source application hosted by FastRuby.io

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 opens a new window . Depending on the severity of the issues we find, we might prioritize this topic on day one.

Bonsai Pricing

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 opens a new window , we believe we can offer meaningful updates to your codebase starting at $4,000 per month:

  1. Shohin: $4,000 per month
  2. Komono: $6,000 per month
  3. Dai: $8,000 per month
  4. Custom: Tailored to your needs!

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. 🌳

Shohin

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 4 pull requests per month.

Komono

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 4 to 6 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.

Dai

This is a great package for organizations and companies that are ready to ship 2x more than if they had chosen the Shohin 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 20 to 40 hours per month remediating technical debt in your application/s.

Strategic Projects

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 opens a new window .

Rescue Services

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 Bonsai 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 opens a new window 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.

Summary

Our commitment to helping people and businesses overcome their technical debt is stronger than ever.

We are excited to launch Bonsai, 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 $4,000 per month are cashflow-friendly, consistently add value to your codebase, and give you access to our team of legacy code opens a new window experts.

You can expect to see gradual improvements in your code quality opens a new window 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 opens a new window )

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.

Ready to pay off technical debt? Send us a message! opens a new window

Get the book