Sustainable Rails application development

These are some of my notes on David Copeland’s interview on September 2022.

Pragmatic Programmers (PragProg) hosted an interview with David Copeland, author of Sustainable Web Development with Ruby on Rails. I bought the early edition of this book two years ago and found the lessons there to be valuable. The interview differentiates sustainability from scalability (a common theme used to evaluate a web development framework).

Sustainability refers to the ease of which changes to the application can be made over time. The book assumes that the application needs to survive over several iterations, which may span more than one year. In order to keep development sustainable, the application needs to be structured to allow for changes to be done easily, despite changes to the people working on them and the environment that it runs on.

Part of what makes an application easy to change is having tests to ensure that any code that was built before stays working. This assumes that the application has already settled on its primary purpose.

Adopting ease of change to promote sustainability also puts less focus on predicting future needs. The author advocates to only build software for today’s needs. However, certain decisions require some forward thinking (e.g., database structure and API endpoints) because these types of changes are much harder to roll back once released.

David also mentioned the role of models in safeguarding the database’s integrity. Having a collection of models act as a gatekeeper to the database prevents untoward data incidents (e.g., missing customer data). Losing or damaging data is far worse than losing the application, as the database tends to survive the application that uses it.

Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s