Four Pillars: On learning and opensource: A long post

A prefatory note: I am not ashamed of being called Utopian.

When I started full-time “work” nearly thirty years ago, straight out of university, I had no idea what to expect. So I imagined that work was a natural extension of university. And for me, university was a natural extension of school: I attended a Jesuit collegiate school, a model where you could stay with one institution from the age of five until you completed your first degree: primary school, secondary school and college were all on the same campus, and you moved around the quadrangles for sixteen years. It was a wonderful experience.

I continued to be blessed, and worked for some great companies. Burroughs in the early 1980s was a magical place to be. So, by the time I was 25, I felt I understood what a firm does, what a firm could be. And in my heart of hearts, I felt that every great firm should be modelled on a great university.

Why? Let me try and articulate the reasons:

  • University is about results and outcomes and empowerment; about personal responsibility and empowerment; about discovering things and developing talent and potential; about fitting into society and working in groups and communities; about doing the right thing and not cheating; about realising that there is no substitute for hard work.
  • University is about experimentation and about imitation; about access to historical research and the creation of original research; about personal accountability and the willingness to accept the consequences of your actions; about conversations and discussions almost independent of time and space; about long days and long nights and laughter and tears and successes and failures. And you celebrated them all, because you took what you did seriously, but you never took yourself seriously.
  • University is about the selection and building of values and ethics and mores and norms, about peer pressure, about leading and being led, about respect for authority tempered with passion and curiosity, about discovering new ways of doing things. Some worked, some didn’t. A place where errors and mistakes were seen as opportunities to adapt and improve.
  • University is about periods of almost-torpor and periods of intense activity, about solving problems, about creating new problems in order to find new ways of problem-solving.
  • University is about no carrot and no stick, about people doing things because they are motivated and challenged; about small-group cellular interactions and occasional large congregations, not the other way around; university is about conversations and relationships and continuous improvement.
  • University is about learning and about life.

And for the most part, I’ve stayed with that mindset ever since I’ve started working. And I’ve been allowed to stay with that mindset. [An aside: I find it ironic that while people like me strive to transport good-university experience into the workplace, some universities are doing their best to do the reverse, import the worst of the workplace into university. I wonder why that is. Sponsored research and patents and commercialisation of learning, perhaps? You might as well tell a ten-year-old she needs a regulated certificate of competence and an insurance policy to run a lemonade stand in the driveway. Which will probably happen soon in the regrettably increasingly litigious society we live in].

Now to the point of this post. As you can see I believe that firms should be places of learning as well, that it is the only thing to do. There may have been good reasons why this did not seem a necessity in the past, but now with social software we can help firms acquire the DNA and culture of learning. And thereby prepare for Generation M. Because they won’t put up with what we put up with, however hard we try. They will refuse to understand why things happen the way they do, push back and vote with their feet. It is happening now.

With this in mind, I was really intrigued by Clay Shirky’s piece on View Source, a 1998 article I happened to re-read recently and post about.

What intrigued me? Some part of my DNA is infected with beliefs that learning-by-doing is a good thing, that learning by observation and inspection and imitation is also a good thing. So when Clay inferred that View Source gave us the ability to say “A-ha. So that’s how it is done”, there was something of value for me there.

So I mulled over the need for a large body of evidence of how people do things, so that you could learn from their successes and failures. So that you could learn from stories and anecdotes taken from real life rather than theories written by people whose experience was primarily in writing theories.

And it made me think of the opensource movement, that we now have a wealth of open transparent inspectable learnable-from material about how software should be written. That we could absorb all this learning, and then merge it with our analogies and allegories about architects and artists and creators and makers and fixers and breakers. And make new things and make old things better.
So I started looking for people who used opensource repositories as a source of learning how to write software. And found this pair of books by Diomidis Spinellis.

Code Reading: The Open Source Perspective

and

Code Quality: The Open Source Perspective

I think anyone and everyone interested in ICT should read the books, even if they have no intention of ever writing code. I’m not going to try and summarise them, suffice it to say that Mr Spinellis knows how to write, has a vocational calling and is passionate about his subject matter.

A taster from the book, in my own words. Everyone knows about cost-time-quality tradeoffs. Everyone understands that cost and time can be varied by what Mr Spinellis calls “management fiat”. Quality is a different matter. So we should take time out to understand quality in the context of what actually happens in the opensource world, using real-life examples.

I promised I wouldn’t try and summarise it, so I’ll stop there.

I can’t help but think there is value here for educational institutions as well, and for creating and embedding a learning culture in firms. Non-trivial worked examples that port well across industry and sector and culture and timezone; real errors made by real people, and what they did as a result. How Not To is as powerful a lesson as How To, maybe more so.

A focus on inspectable quality attributes that endorses, and is endorsed by, opensource principles.

Getting it

The kernel for this particular snowball was a conversation over dinner, where someone asked me how I dealt with all the flames against my blog.

My answer to him was pretty much off-the-cuff, I didn’t spend time trying to figure it out. I told him that the number of flames was negligible. He then followed up with a question on whether I had any idea why that would be the case. And I told him, flamers tend to be attention-seekers, so they tend to spend time only where they knew they were going to get attention. It’s like hijacking a bicycle, why would anyone do that? No attention, no media coverage, so no bicycle hijacks.

We took this line of conversation all over the place after that, it really doesn’t matter. But on the way home I started to think, why is it that people think that blogs are all about flaming? Don’t they get it?

And that made me think about what it is that people don’t get. And I realised that when I speak to people as peculiar as I am, we often refer to others as “She gets it” and “He doesn’t get it”.

Get what?

This it, that people get or not-get, this it exists in many spheres. It is why people equate opensource with freeware and with security lapses; it is why people equate blogs with flaming; it is why people equate social software with being communist or pinko; it is why people equate downloads and uploads with piracy; it is why people equate work with not-fun.

So what does it take to Get It? To be one of the Got Its?

I think you need to believe you don’t have all the answers. You need to believe you could be wrong. You need to believe that others could help you be right. That others could help you learn. That there is power in community. That people can be unselfish. That you can trust people. That it’s OK to be wrong, provided you learn. That relationships matter. That covenant is good. That Doing the Right Thing is something to strive for. That it’s OK to be vulnerable, to express opinions, to share. That you don’t have to have an axe to grind in order to live. That you can Pay It Forward. That not everyone seeks to monetise each and every action.

That you need to believe in humanity and in humility.

The people who don’t get it can’t understand altruism, think every gift horse is a toothless Trojan. Can’t understand openness and sharing and community. Can’t understand trust. The people who don’t get it live in this weird bondage of isolation and distrust. I couldn’t do it. Just couldn’t.

Already got a toaster

I remember a tale about an American golfer many years ago, I think his name was Big Mo. [Google couldn’t help me out here, so if any of you can corroborate any of this please comment away].

Big Mo was a good golfer. A very good golfer. Now this was in the days of driving for show and putting for …. lamps and fridges and … toasters.

It seemed he could win any tournament he entered. And, just to prove it, he was always in the lead at the end of the third day. But somehow, somehow, he used to lose it in the final round. Choke regularly enough to make Greg Norman feel good. [Incidentally, Greg is no choker in my book, he’s been a wonderful golfer to watch, a fantastic sportsman with a great attitude, and, I believe, the only golfer to have lost a playoff in each major. Now there’s a record that Tiger and Phil will find hard to match, a most unusual Grand Slam].

Back to Big Mo. He got into this groove of leading into the final round and then blowing it. After this happened a few times, a plucky reporter conjured up enough gumption to ask Big Mo why. And he truculently replied “Already got a toaster”.

Good golfers win tournaments. Great golfers can choose where they finish, focused on the particular position they need to finish in. And to do that, you have to lead going into the final round.

Anyone know more about Big Mo and can fill in the blanks, please do let me know.

Now to the point of this post. Malcolm, a colleague and good friend, and a fellow blogger (he is the Man In The Doorway in Accidental Light), shares an unusual interest with me. We both like AC Weisbecker. It was through him and Ken, an ex-colleague, that I found out about Cosmic Banditos and did myself an injury reading it.

How would I describe the book? It’s what RageBoy could have written if he lived in Big Sur instead of Boulder.
The author of Cosmic Banditos, AC Weisbecker, as mysterious a man as Thomas Pynchon, has written a new book. [An aside, apropos Weisbecker and Pynchon. I seem to remember an anecdote where AC went into a shop and enquired after Cosmic Banditos, trying to see whether the cult Malcolm refers to was real, and whether it was true that no copies were available. And the bookseller took him aside and told him confidentially that he, AC Weisbecker, didn’t really exist, and that the author was actually Pynchon writing under an assumed name.]

Back to Malcolm. Read his posts on the subject here and here. And then go order Weisbecker’s book if you are sufficiently intrigued. Use the links Malcolm provides. Let’s see if we can collectively get Malcolm into the Big Mo position, leading into the final round. Then leave him to figure out how to lose.

Because Malcolm can’t keep it simple. He wants the third prize. Only the third prize. Not first, not second. Only third. Nothing more, nothing less. And that needs a special brand of viral marketing…..

Four Pillars: More on Nanny Languages

I’ve been thinking more about this ever since my last post on the subject, a whole day or so ago. And I remembered something I’d heard Clay Shirky say:

#3b. Good tools allow users to do stupid things.

A good tool, a tool which maximizes the possibilities for unexpected innovation from unknown quarters, has to allow the creation of everything from brilliant innovation through workmanlike normalcy all the way through hideous dreck. Tools which try to prevent users from making mistakes enter into a tar pit, because this requires that in addition to cause and effect, a tool has to be burdened with a second, heuristic sense of ‘right’ and ‘wrong’. In the short run, average quality can be raised if a tool intervenes to prevent legal but inefficent uses, but in the long haul, that strategy ultimately hampers development by not letting users learn from their mistakes.

OK, this was many years ago, at a time when the Web was still in its infancy. For those who are interested, the entire article is available here.

The value proposition of Collaborative Work and Wisdom-of-Crowds and Emergence and Blink and Serendipity are all in some way connected with Polanyi’s Tacit Knowledge definition, something we know but cannot articulate. Knowledge management specialists have forever been haranguing us with the Know what we Know, Know what we Don’t Know and Don’t Know what we Don’t Know triad.

And somewhere in that space is my concern about Nanny Languages. Shirky makes some key points in his article (published over eight years ago): the value of View Source, being able to see “on demand” how someone does something, how open and refreshing that is (Note to self: Is View Source a real patent, one that sticks to the meaning of patent?); the separation of site design from software engineering (yes I can hear the wailing and gnashing of teeth all the way here); the inversion of interface from Resides-In-Software-And-Is-Applied-To-Data to Resides-In-Data-And-Is-Applied-To-Software (more wailing and gnashing, I guess).

Life is about learning. We have to ensure that language does not restrict that learning. And nanny languages do restrict that learning, and will therefore atrophy over time. Or adapt to become less nannified.

By the way, it is worth having a look at what Clay says at the end of his article:

Furthermore, while there were certainly aspects of that revolution which will not be easily repeated, there are several current areas of inquiry – multi-player games (e.g. Half Life, Unreal), shared 3D worlds (VRML, Chrome), new tagset proposals (XML, SMIL), new interfaces (PilotOS, Linux), which will benefit from examination in light of the remarkable success of the Web. Any project with an interface likely to be of interst to end users (create your own avatar, create your own desktop) can happen both faster and better if these principles are applied.

Not bad for 1998.

Four Pillars: Time to rethink Frederick Brooks?

I’m going to be lazy and use parts of Wikipedia’s summary of The Mythical Man-Month. And make a few assertions as to why we may need to revisit the whole shebang. Yup, another very provisional post. More musing than thinking.

The Mythical Man-Month: When we develop for the web, are there really any more large teams working on monolithic projects? I guess that’s possible in some consultant-riven (yes riven not driven) public sector projects, but I’d rather not believe these are common. With social software, is there really an increasing communications overhead as you add people? Or is it a value-generating network effect, a real Power law? Does an opensource community working on an infrastructure component actually generate negative output at the margin? Which is the myth, The Mythical Mythical Man-Month or the (ostensibly) Mythical Wisdom of Crowds? Is democratised innovation a myth?

The Second-System effect: When you deliver little and often and you have active feedback and feedforward loops, is there really a second-system effect? Did Google or Skype or eBay or Amazon experience second-system effects? Or maybe they just missed that out, like the 13th floor.

Progress Tracking: If web development is about incremental daily delivery, are we reaching the stage where the cost of tracking exceeds the cost of delivery? Are projects becoming better, one day at a time? Can they? If Beta is now a recognised state, where is it on the progress map? Have we not already moved to a world where we work with constrained development team sizes and prioritised, dynamically allocated and re-allocated resources and deliveries? Where team size is a constant and delivery dates vary as needed? Where dates and real and politics are virtual? Where Prediction Markets define future progress.
Conceptual integrity: Is it really possible to separate architecture from engineering any more, and if so to what extent? Haven’t we already moved to a point where conceptual integrity is required at an ecosystem level, not at a system level?

The Manual: Hang on a second, let me get out my manuals for Skype and Google and eBay and Amazon and Firefox. Oops. Brooks meant reference and systems manuals, not “user” manuals. Let me get out my manuals for all the Writable Web applications we use where I work. Oops.

The Pilot System: That must mean Beta. The Google Beta. Is it really throw-away? How do you throw away a web app? No don’t answer that one, send me a postcard.

Formal documents: See The Manual.

Project estimation. Let me see. It will take one team day to deliver one team day worth of value, with deliveries prioritised according to market stimuli. When does a project start, when does it end? In today’s world, are these terms nothing more than tools to represent our actions in ledgers? And will we need that kind of representation if we stopped “capitalising” things?

Communication. See opensource movement. Global. Scalable teams. Social-software enabled.

The surgical team. See hacker.

Code freeze and system versioning. OK Mr Brooks, you win that one. Let’s keep it. Maybe we should call it community mores and values and modus operandi?
Specialised tools. OK we’ll concede them as well, except that we are now talking about opposable thumbs and machine tools and Because Of infrastructure.

Lowering software development costs: I love this one. I quote from Wikipedia: “Another technique Brooks mentions is not to develop software at all, but to simply buy it “off the shelf” when possible.” It’s now called opensource.

I’m only half-serious, but serious enough.

Generation M is not going to worry about the Mythical Man Month. They know the world revolves around the sun. How many people at Google and eBay and Amazon have read the book? [I’d really like to know].

Time to rewrite it. Because otherwise we face a different problem. We need to educate those that control and manage and check and monitor what developers do, otherwise a Little Mythical Man-Monthing can be a Very Dangerous Thing.