The developer's mind

Humbled by the aura of the legendary Cavendish Labs sitting in the adjacent building next door, I refrain from expressing the full extent of my awe and reverence for this special place. "Sure", I think, "it's no big deal. Let's get on with it". I came to Cambridge to collaborate with Pietro Berkes. He's building Canopy Geo at Enthought. We spent the day spiking, apparently. Working shoulder to shoulder with Pietro was nearly as responsive as dictating a vision to a painter and watching it emerge before my eyes. He's darn good. During my visit, I took notice of some characteristics and guiding principles that top developers, such as himself and his colleagues, bring to their work.

On whiteboarding

The best way to be understood, to connect, or to teach, is to do it one-on-one in front of a whiteboard. It is fitting that all of the walls of their office space are whiteboard walls. Old marks wiped clean but still visible show remnant algorithms sketched out and stacked up upon each other. A well-worn workshop, where writing on the walls is the cultural norm. And for electronic communication? Some are deliberate to only check emails three times a day: first thing in the morning, midday, and mid afternoon. Any more often, would be disruptive to their flow. Email is the enemy of real work, but instant messaging can be be a good productivity tool. 

On discipline

To build something that is extensible takes a good deal of thoughfulness and discipline. Code will survive long after the project is over and the programmer has moved on. This doesn't just mean leaving an adequate documentation trail behind you, but also building a solid foundation that others can contribute to. Being Agile, it turns out, although not the only choice, also takes discipline and diligence in order to be effective. 

On ownership and responsibilty 

Authority is not given, responsibility is taken. Many of the best developers define themselves by the authorship of code and libraries. So attribution is not only necessary politeness, it is a direct line of communication. What body of work would you stand up and speak for? Someone may find a bug at 9:00 am in a different time zone. Will they wait till 2:00 pm to hear from you? Somehow, this decentralized system of self-appointed responsibilty just works. The longevity of emotional and intellectual labour, particuarly in an open source setting, is a fascinating concept. The work becomes more relevant because the developer never stops caring for it. You can change projects, you can change languages, you can change companies, but your work never leaves you. If that notion excites you, you are making an impact. 

The developer knows that prowess is earned by execution. They thrive in an accepted sub-culture of meritocracy: largely free of politics, organizational hierarchies, and other social drama that get in the way of the real work. With a mind cleared to deal with essential tasks, what emerges is the ego of an artist and a creator with the potential to act on it. "Now that we can build anything, what do we do next?"  


Newton didn't need open source, so why do you?Free and open source software is catalyzing a revolution in subsurface science. As a key part of the growing movement to open access to data, information, and the very process of doing science, open software is not just for the geeks. It's a party we're all invited to. 

I have been in California this week, attending a conference in Long Beach called Mathematical and Computational Issues in the Geosciences, organized by the Society of Industrial and Applied Mathematicians. In 2009 I started being more active in my search for lectures and courses that lie outside my usual comfort zone. I have done courses in reservoir engineering and Java programming. I have heard talks on radiology and financial forecasting. It's like being back at university; I like it.

How did I end up at this conference? Last spring, I wrote a little review article about open source software (available here at dGB Earth Science's site). It was really just a copy-edited version of notes I had made whilst looking for free geoscience software and reading up on the subject for my own interest. After some brushes with open source, I was curious about the history behind the idea, how projects are built, and how they are licensed. At the same time, I also started a couple of Wikipedia articles about free software in geology and geophysics, as a place to list the projects I had come across. Kristin Flornes, of IRIS in Stavanger, Norway, saw the article and her colleagues got in touch about the conference.

The talk, which you can access via the thumbnail (left) or look at in Google Docs, is part FLOSS primer, part geo-FLOSS advert, part manifesto for a revolution of innovation. I hope the speaker notes are sufficient. 

What do you think? Is software availability or architecture or capable of driving change, or is it just a tool, passive and inert?

← Click the image for the PDF (6.9M)