Pragmatic Thinking Learning: A Journey From Novice To Expert — Beware The Tool Trap
Table Of Contents
About Series
The Summary
— Confusing the Model with Reality
— Devaluing traits that cannot be formalized
— Legislating behavior that contradicts individual autonomy
— Alienating experienced practitioners in favor of novices
— Spelling out too much detail
— Oversimplification of complex situations
— Demand for excessive conformity
— Insensitivity to contextual nuances
— Confusion between following rules and exercising judgment
— Mystification
The Mind Map
Outro
About Series
This story is the fifth part of the series of Chapter 2: Journey From Novice To Expert.
The Summary
Many people claim that UML and model-driven architecture are the future. But, as with all silver-bullet scenarios, people soon found out that it just ain’t that easy. Although these tools and models have their place and can be useful in the right environments, none of them has become the hoped-for universal panacea. Worse yet, the misapplication of these approaches has probably done far more damage than good.
The model is a tool, not mirror
Confusing the Model with Reality
A model is not reality, but it’s easy to confuse the two
Devaluing traits that cannot be formalized
Good problem-solving skills are critical to our jobs, but problem-solving is a very hard thing to formalize. For instance, how long can you just sit and think about a problem? Ten minutes? A day? A week?
- You can’t put creativity and invention on a time clock, and you can’t prescribe a particular technique or set of techniques
- Even though you want these traits on your team, you may find that management will stop valuing them simply because they cannot be formalized
Legislating behavior that contradicts individual autonomy
You don’t want a bunch of monkeys banging on typewriters to churn out code. You want thinking, responsible developers. Overreliance on the formal model will tend to reward herd behavior and devalue individual creativity.
Alienating experienced practitioners in favor of novices
This is a particularly dangerous side effect. By targeting your methodology to novices, you will create a poor working environment for the experienced team members, and they’ll simply leave your team and/or organization.
Spelling out too much detail
Can be overwhelming. This leads to a problem called infinite regress; as soon as you make one set of assumptions explicit, you’ve exposed the next level of assumptions that you must now address.
Oversimplification of complex situations
Any time someone starts a sentence with “All you need to do is…” or “Just do this…” the odds are they are wrong.
Demand for excessive conformity
The same standard may not always apply equally in all situations. What worked great on your last project may be a disaster on this one.
Insensitivity to contextual nuances
Formal methods are geared toward the typical, not the particular.
Confusion between following rules and exercising judgment
When is it OK to break the rules?
Mystification
Speech becomes so organized that it becomes trivial and eventually loses meaning entirely.
Don’t succumb to the false authority of a tool or model. There is no substitute for thinking.
Avoid formal methods if you need creativity, intuition or inventiveness
The Mind Map
Outro
I’ve learned a lot from this chapter and tried to compare it with my profession as a software engineer, and I think it’s all valid, especially these statements:
- Alienating experienced practitioners in favor of novices
- Spelling out too much detail
- Oversimplification of complex situations
All of these things really happened in the industry where I’m working now (software engineering).