News for hackers. Stuff that matters.

rgraciano

Not sure how the magnetized needle analogy applies here. The point of the hypothetical is to avoid developing your own extra layers of code for future reuse. Avoiding those that others have developed for you already would not make sense.

As to the rest of your point, yes. Anything in service of pure development speed would be desirable. If you could abstract and reuse something faster than you could implement it in some other way (eg copy/paste), then it would make sense to do so.

Such as...?

A hypothetically perfect immutable system does not need to be testable, maintainable, or understandable. It becomes a black box.

This is exactly the analogy I use with developers who tend to over-engineer.

In a perfect world, we'd be guaranteed that our code will never need to change. In this world, abstraction is worse than worthless - it is a cost with no benefit.

In the real world, there are risks. Bugs will be fixed, requirements may be changed, back end systems may be replaced or scaled, and so on.

Building things the "right way" is exactly like buying insurance against those future risks. Business-savvy developers know how to estimate the probability and cost of the risk this code will face over its lifetime, and weigh that against what it would cost to build in extra code to mitigate those risks right now.

Thus, choosing the right level of abstraction and engineering overhead to add to a particular feature should be a series of decisions and tradeoffs, not just a determination that it's always better to build the "right way".

In my experience, developers tend to be overly confident in their ability to predict and mitigate future risks, and suffer severely from hindsight bias. They rarely lament the extra abstraction layer they built and never needed, but are quick to point out when modifying a feature will cost more because of weak abstraction.

Letting the guy go because his techniques are ineffective only guarantees that everyone will sit up and take notice when they do prosecute someone.

IMO, a better strategy would be to prosecute everyone, including and preferably starting with those whose techniques are _not_ effective.

Following that line of logic, if we believe the government to be clever, then we can't draw conclusions as to the efficacy of his techniques, but if we believe the government to be naive or reactionary, then we should conclude that his techniques work.

Either way, the real method will find its way into the public domain sooner or later, and the only question is how easily accessible it'll be to the average joe.