How To Sell Golden Hammers

Techies who believe in GoldenHammers seem frustrated by the fact that they can't convince others to buy into it. Here is the place to present ideas to sell them.

When selling products instead of ideas:

Regarding Learning Curves

This sounds like a way to sell a good hammer, or a golden hammer, not just a gold hammer. The drawbacks of a genuinely good tool are that it has a bit of learning curve and requires education before mastering.

Are you saying that one must accept by faith your claim that once they learn the tool/technique it will improve life? How do they know up front that your tool pays off better than another tool that also allegedly requires a long learning curve? "Just trust me" is not sufficient. "It's great once your master it" and "if it failed for you, you must not have been using it right" have been over-used claims, and should be met with healthy skepticism.

Generally a great tool will improve some factor that is measurable or demonstrate-able. A customer can see that a car moves faster or that a rocket flies higher before they understand how your new engine works. Focus on these.

Eli Whitney sold the idea of mass-manufactured rifles to the military by demonstrating how he could take parts from one rifle and swap them with another and how both still worked. The existing semi-custom weapons of the time couldn't do that well. Swappability could allow damaged weapons to be "fixed" faster in the field. (Eli still faced technical problems because his ideas were slightly ahead of existing manufacturing accuracy, but the net result was still slightly better than the alternatives even with the kinks.)

I have a whole stack of "to do" tasks for learning new languages/tools/techniques, and I'm sure you do to. If all the competing ideas are shouting, "just trust me and dive in, you'll eventually grow to see the benefits", then obviously we have a scaling problem because one cannot invest such time for all of them. You need to show them something enticing up-front. Past just-trust-me-and-dive-in's have flopped for me, and probably others. Thus, there's a reason to be skeptical of JTMADI.

Re: "have been proven over and over"

In what way? How can the sellee verify that it's "proven"?

[The reference to "proven over and over" above is desiderata for "Show, don't tell", with the stated mechanism being via "real-world examples" as opposed to anecodotes. That answer was already provided above. If you need clarification, it means: you prove it works by showing exactly where it has worked elsewhere (which just happens to imply that it can't be a 'new' idea). If you are objecting to the answer provided above, do so in a more straightforward manner.]

Remember, TuringEquivalency means that everything "works" to some degree.

[TuringEquivalency means no such thing!!! A proper TuringMachine has no Input and Output, and no way for part of the output to feed back into the input. As a consequence, a proof of TuringEquivalency means nothing about a system's ability to do interactive or reactive "work" of any sort. TuringEquivalency only guarantees that every possible discrete-mathematics function can be represented. (+567 MilliPeeves for ignorant abuse of TuringEquivalency!)]

[I understand that you really mean something closer to: "any programming language that is not a lab-toy is roughly equivalent in its ability to do useful work". This, of course, means the real differences lie "only" in safety (type safety, termination safety, deadlock safety, livelock safety (wait-free)), security (active, passive), modularity, composability, dynamic extensibility, dynamic configurability, performance (efficiency, latency, resource utilization, scalability), disruption tolerance, persistence, resilience, robustness, semantic and syntactic noise, and so on.]

[If you have no NonFunctionalRequirements (which is a situation I've never seen), then perhaps you can get away with poor characteristics in these fields and declaring that anything will "work" to some degree. But most domains have implicit requirements, some (aeronautics, medical equipment, vehicle systems) even have explicit requirements, and to say something "works" requires that one demonstrate (or even prove) that it meets these NonFunctionalRequirements within that domain. A 'GoldenHammer' in ComputerScience is a language or tool that allows one to (keyword) simultaneously meet a variety of these NonFunctionalRequirements without significant sacrifice to other NonFunctionalRequirements. "Show don't tell" suggests demonstration that such a GoldenHammer will work in a new system by analogy to its existing use in other systems.]

Live walk-in case studies are indeed a great way to go if available. However, that alone may not do it, especially if comparing to alternatives that also have working implementations, including the sellee's current system/tool. Some kind of numerical comparison is still desired, such as less staff members or hours to do a similar task, less bugs logged, etc.

[Perhaps so. But you responded just now as though "Show, Don't Tell" were standing on its own rather than standing among many other points of advice. That seems rather silly of you.]

Perhaps I misunderstood your statement. I find your writing style difficult (to me).

[Do not presume that explanation is endorsement or emphasis. You defended against a frivolous position when you said "that alone may not do it". I never implied otherwise. I suspect you find my writing style 'difficult' because you make assumptions and jump to conclusions that are strange and illogical (to me). You asked your question on a quote pulled from "Show, Don't Tell", and so I answered within that context. That is all.]

RE: There are no intrinsic lines between UserInterface, OperatingSystem, and ProgrammingLanguage. One also hopes that ProgrammingLanguages lack 'outright bugs' or outright lack KeyLanguageFeatures.

If [programming languages have bugs], often one can simply use a different path. For example, if multiplication is broken, it can be emulated using repeated addition. Of course this adds more work and more code, and the language will lose some score "points".

"simply use a different path" => JustIsaDangerousWord. If the language or your application of it has no libraries, perhaps it would be 'simple' to replace multiplication with repeated addition. And, relatively, most 'text editors' and OperatingSystems can also be extended/replaced/emulated (with plugins, scripts, new applications, etc.) to just as "simply" get around their problems.

True, it's often a matter of degree.

See also: WhyItIsSoHardToSellExtremeProgramming, HowCanSomethingBeSuperGreatWithoutProducingExternalEvidence, HowToMainstreamSmalltalk, IfFooIsSoGreatHowComeYouAreNotRich, PoorGoldenHammerEvidence, HowToWinFriendsAndInfluencePeople



EditText of this page (last edited August 8, 2014) or FindPage with title or text search