8 Common Types of Rails Rescue Projects

8 Common Types of Rails Rescue Projects

Download this guide

You'll also receive my Daily Shopify Tips email. You can unsubscribe or withdraw your consent at any time.

Just like Rails projects take many forms, a Rails Rescue project does too.

A Rails Rescue project is basically a Rails project that has gotten into trouble. This might be temporary, permanent, caused by external factors, internal factors and so on.

Fortunately there are several common types of Rails rescue projects. This makes it easier to diagnose the project and begin its repair.


Stop further damage

While identifying the root cause of the problem may prove useful, I've found that focusing on the present is more productive. Knowing the cause might help you make better decisions now to counter the cause, but not many rescues have the luxury of looking back and analyzing.

The priority to stop the damage and start repairing. This requires focus on the now and problems that affect the project today.

Fortunately there are several common types of Rails rescue projects. This makes it easier to diagnose the problem start repairing..

One thing to remember: no project can be strictly defined by one type. Just like there is no "normal person", software projects are diverse and varied. This means your project will exhibit signs of multiple rescue types.

This fluidity of software also means that your project may shift from one type to another as it goes. Some of the most interesting rescue projects start with one dominant type and as they are fixed, another dominant type emerges.

One Rule

Whatever the type, there is one over-arching rule I use to fix Rails projects in trouble

Fix the most important thing first, then the next most important thing.

Follow this advice and your project will lean to the right, then to the left, then forward, and finally stand on its own.

Here are the different types:

1. Performance Problems

The performance type is straightforward.

What used to work great in development and under basic testing, starts to fail with real traffic levels. Maybe your application becaome more popular than you thought (congratulations!) or maybe it's just hitting some performance stress points that you can't solve.

Other times the performance has been decreasing little-by-little over the past months or years. You can't pinpoint one thing that slowed everything down, but it's visible to your team and your users too.

Solution: Start with a complete performance audit and look for the areas with the largest negative impact on performance. Start an optimization process there. Repeat the complete audit and continue. Don't forget to audit the environment your application runs in too (e.g. Ruby version, server setup, browsers, etc.).

2. Development Team Too Small

Great applications can be built with small development teams, even by just a single developer. But if there is a single problem with small teams is that they can lose perspective easily. This makes innovation difficult as well as amplifies any problem outside of your small team's experience.

There's a common saying in software:

when all you have is a hammer, then everything looks like a nail

Solution: Perspective is the key to fixing this type of rescue. The long-term solution is to expose your team to more ideas and experiences about Rails development. However,that might not be possible in the short run, so you'll need to hire someone with different experiences to guide and advise you.

3. Stability Problems

Rails applications aren't supposed to wake you up every night at 3am to reboot the servers. They were meant to run and run and run.

Instability in your application or infrastructure prevents you from helping your users. Over time, this will frustrate them, and it will surely affect your business. Remember: unhappy users today become ex-users tomorrow.

This rescue is closely related to the Performance type. Many times an area with poor performance causes the application to become backed up, which cycles until it crashes.

Solution: Performing a system-wide stability and code audit will let you find which areas are contributing to the instability. Once found, a variety of techniques can be used to stabilize that area, like in-depth testing, defense code, re-architecture and proactive notifications.

4. Communication Problems

One of the most painful situations occurs when the communication within a team breaks down. The code will still get written and work will still get done. Or at least for a little while...

Eventually, the application development will come to a grinding halt.

Every communication problem with a team is like an infected cut. Treat it quickly and you will never know it happened. But let it fester and you could lose a limb, or worse.

The worst about communication problems? They sneak up on you. You can't see them unless you actively look for them.

Download this guide to continue reading

You'll also receive my Daily Shopify Tips email. You can unsubscribe or withdraw your consent at any time.

Would you like a daily tip about Shopify?

Each tip includes a way to improve your store: customer analysis, analytics, customer acquisition, CRO... plus plenty of puns and amazing alliterations.