16 Apr 2011. comments
Uncle Bob Martin is a well respected figure in the software development industry and the chief driving force behind the Software Craftsmanship movement. His talks on methodologies, languages, and the state of our industry are always entertaining and insightful. Uncle Bob tends to make a lot of analogies to other professions as a means to bring our industry to maturity, such as doctors, lawyers, etc. There’s a lot of valuable analogies to make there; Here’s a sampling:
“Do you think the only time musicians play their instruments is when they are on stage? Do you think the only time that batters hit balls is during games? Do you think the only time lawyers give a closing is at trial? Of course not. These people are professionals; and professionals practice! Professionals study the minutia of their disciplines. Professionals know all the little tricks and quirks. They know the history, the theories, the anecdotes. They know techniques and methods. They know good options and bad options and how to tell them apart. And they know all this stuff because they practice, practice practice.”
We as a profession must agree to a set of disciplines, a set of rules that we will follow. Uncle Bob tends to use the analogy of doctors always washing their hands rigorously before they do anything (and if they didn’t we wouldn’t consider them to be a ‘professional’). During an operation a doctor follows his discipline by not allowing fear to take over in the shadow of a deadline (literal). To this point in the history of software development, we’ve not really had a ‘profession’ in the truest sense of the word. Uncle bob says it best when describing the state of things:
“All we knew about what programmers did was that for weeks/months we threw meat in the room, and later code came out.”
One True Language?
In the past several weeks however, Uncle Bob made another observation which I find myself disagreeing with. He postulates that we may have reached the point in our industry where there are no more programming language paradigms to explore. His analogy to other professions this time around, is that of notation. Electronics, Chemistry, Biology, Mathematics, etc have agreed on common notations and therefor so should we, he says.