Don’t Fight the Framework

In my software development career, I often repeated a few maxims, including:

  1. Always have a backup.
  2. If it doesn’t have to work correctly, I can make it really fast.
  3. Every problem in computer science can be solved by adding a level of indirection, and
  4. Don’t fight the framework.

Like all the best maxims, these were established in my mind the hard way, by violating them and experiencing the consequences.

My team used a number of development frameworks to write Windows desktop software, including the Windows API itself, plus Microsoft Foundation Classes, and libraries such as Standard Template Libraries, and extensions such as provided by vendors such as CodeJock. Then there are tools embodying frameworks, used to track bugs, and maintain source code version and revision control, used to see who changed what and why.

Frameworks make it easy to do common tasks. In creating a framework, the provider seeks to simplify work that many people want to do, that may be tedious, time-consuming or difficult. Frameworks aim to save us from reinventing wheels. Most frameworks provide for a certain degree of customization, but the further one strays from the provided mechanisms, the more work is required and the greater risk of significant error or incompatibility with updates or other systems. Since many frameworks evolve over time, any modifications we make to them impose a maintenance burden on us. They may lead to breaking changes, or obsolescent components.

If you find yourself at odds with the framework you use, that should trigger a mental red flag. It may indicate:

  • You should look for a simpler approach
  • You may be doing something which has a high investment cost for a low potential return
  • You may even need to find a better-suited framework

Here is a food example. Fake meats like Impossible and Beyond, and potentially cultured, lab-grown meats, strike me as fighting the framework of eating plant-based.

Life is full of frameworks, for better or worse. Kaiser Permanente, for example, has a framework for health care. It is quite effective if going along with program suits you. If you fight the framework by requiring some kind of custom attention they are not set up to provide, it becomes a problematic situation of taking on management of a large bureaucracy. For another example, this website uses a framework from WordPress.org, and a near-minimum collection of customizations.

Here is a simple framework guiding men to a happy marriage:

  1. Marry the right woman.
  2. Do whatever she says.

Step one is the hard part. This illustrates an important point.

Since fighting the framework is discouraged for good reasons, choosing a framework carefully must be emphasized. Choose frameworks that will help you achieve your overall purpose. We live in a society in which many frameworks are offered by marketing organizations for the purpose of selling you something. Pharmaceutical companies may not want to address the causes of a disease if they can make better income by selling a treatment that will be needed for life. Weight-loss programs, social organizations of all kinds, and political parties are run by people with their own agendas. Don’t adopt a framework if it doesn’t support your agenda.

Then don’t fight it. Suggest improvements, by all means. Contribute bug fixes. Document your experiences for benefit of other users. Work within the system.

If you are looking for a framework for how to eat to live a long, healthy, full life, thanks for looking here.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *