The Iron Law of Tools


Learning to harness fire was a significant event in the development of humanity. It provided light, heat, and the ability to cook. As time went on, fire led to other technologies, from the smelting of ore to the internal combustion engine. It also provided an important lesson that continues to apply to the tools we use: that which does for you, can do to you.

Benefits generally come with a cost. Worse, sometimes unexpected side effects come along for the ride. Just as those early adopters of fire learned that their new tool could bite back, so do we find that our tools bring both positives and negatives.

This was brought to mind by a recent Tweet from Rob Conery:

Colin Asquith’s reply vividly illustrated his assessment of the risks of the technology:

Not the recommendation the EF team was hoping for. It makes you wonder why the technology was selected for those applications that Rob and Colin worked on.

Note that my intent is not to trash Entity Framework. It’s just the example here; many tools, technologies, and techniques would serve equally well. Evaluation is critical. If you don’t know the costs as well as the benefits, you can’t answer the most important question: “why?”

4 thoughts on “The Iron Law of Tools

  1. I’ve used EF code first on a few projects. The “DropCreateDatabaseIfModelChanges” is very useful in the early stages of development but once you’re past a certain point (usually when useful data exists within your DB), this can be troublesome. Nothing that can’t be overcome though.


    • Stuart,

      As long as you’re aware of the gotchas and you get more benefit than cost from the tool, then it’s a good bargain. Obviously, it wasn’t for Rob and Colin’s situation. The important thing is to be aware of what you’re getting, both good and bad.


  2. Pingback: #4U2U – Canned Competency, Values & Pragmatism | Form Follows Function

  3. Pingback: NPM, Tay, and the Need for Design | Form Follows Function

Leave a Reply

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

You are commenting using your 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

This site uses Akismet to reduce spam. Learn how your comment data is processed.