Sponsored Link •
"Humility: be generous in what you receive; be meticulous in what you provide." --John D. Mitchell
Let me posit that the principle of humility is the root of all greatness. To be clear, I make no claim as to the orginality of this notion. Heck, I happily admit that my definition is a more or less direct generalization of Jon Postel's famous quote (talking about network protocols):
"In general, an implementation must be
conservative in its sending behavior,
and liberal in its receiving behavior." --Jon Postel, RFC 791
What I will claim is that my generalization is a correct, precise, and, most importantly, useful definition of humility. Why? Because, as helpful as the myriad general purpose dictionaries are, they don't tend to provide definitions in a form that are useful as guiding principles.
I contend that without useful guiding principles, we cannot efficiently and effectively reduce to practice whichever weird and wonderful notions that may compel us each to action.
Why do I think that this principle of humility is key to great software? Regardless of however else software can be perceived, software is all about relationships. Humility is a principle guiding us in how to act within the context of relationships -- i.e., in communicating with others.
Let me go out on a limb and claim that much of the communication in the computer world is, ahem, less than humble. Computer languages, APIs, and protocols are brittle and filled with persnickety edges (and gaping holes). Amongst developers, ad hominem attacks abound and incessant opinions flow with precious little regard for simple things such as facts, reality, and reductio ad usum.
I'll drill down into these areas (and more) in future posts.
|John D. Mitchell is the Chief Architect of Krugle -- a search engine for developers. Along with developing and rescuing distributed enterprise systems, John advises investors and executives on technology and high-tech companies. Over the past 15 years, he has been the CTO of ElasticMedia, HealthLogic.com, jGuru and the MageLang Institute. John co-authored "Making Sense of Java: A Guide for Managers and the Rest of Us." He was the founder and contributing editor of the "Tips & Tricks" column at JavaWorld. John writes extensively on complex systems, development processes, computer languages and protocols, parsing and translating, and technological business risk management.|