When a business focuses on sustainability, the practice of making certain that its processes don't deplete the resources that it depends on, it corrects a critical error. Just as consumers may exhibit a time preference behavior, often to a long-term detriment, so too can organizations when making design decisions. However, conventional sustainability isn’t the only space in which organizations can improve towards this end. Software development, especially front end web development, often suffers from arbitrary and high time preference decision making.
Maintainability isn’t technically a form of sustainability. Unless the hardware and software running under a site or program changes, it might very well work forever. The real cost is in making updates to existing code. This is because over time, code requires changes as the needs of the website or software evolve. To use an architectural analogy, in order to add a room, you have to remove an exterior wall.
The way this happens is called "code rot.” Code rot isn’t caused by code that doesn’t work, but rather it’s often caused by the act of getting code to work given insufficient time or other resources. It happens when code isn’t organized or doesn’t clearly express its purpose to the programmer. There is an extensive and effective array of ways to prevent code rot, collected by Robert C. Martin in his book Clean Code, which has become an industry bible.
Here’s what you should know:
Simple is better. Every feature or detail that you add to the project compromises, in some small way, its maintainability. When it comes to the lifetime of the product, the package without features A, B and C might prove more effective than the one with them. A comprehensive user experience design to iron out the details of the strategy and how it relates to the site is critical to crafting a streamlined and effective design.
Work close to the medium. In the web’s front end, software is built on top of a changing API with many implementations. It may be tempting to put its capabilities together in unforeseen and unique ways, but this greatly increases the amount of code and invites code rot. Difference or complexity for its own sake may be impressive or satisfying, but when impressive and satisfying aren’t part of the strategy, it’s only getting in the way.
There’s a cost to less expensive. You can buy a site that’s visually and interactively identical, but one costs $10,000 and the other $12,000. Assuming it’s the same team of people coding the site, what’s the difference? In the world of marketing, the first rule of the site, to clients and users, is how it looks and interacts. Both meet that goal, but the project that’s $2,000 more expensive can be evolved more quickly and cost-effectively. Unfortunately, organized code isn’t something that can be tacked on at the end as an afterthought.
Maintainability is a choice. It may not always be the right choice, but it should at least be made intentionally. A complex, unique microsite for a custom campaign with a limited duration may not make sense to spend extra money on the maintainability of because it is unlikely to be evolving. This is an edge case, however we believe that maintenance-focused builds are the right choice for almost every project we do.
Think you want to focus your next website project on maintainability AND sustainability? Give our thunder::tech team a call
to find out what your next steps are, or let us know what your thoughts are on maintainability.