Subscribe

Anthropology of software developers


Cape Town, 14 Aug 2007

Anthropology is the comparative study of the social characteristics of societies. Research into these societies is through participant-observation over long periods of time, through complete experiential immersion in the society. But what do we actually know of the society of software developers?

In late January 2007, I was invited to a workshop for software architects in Arosa, Switzerland. The workshop is conducted as an open spaces conference.

Open spaces conferences are actually un-conferences. There is no pre-defined schedule of sessions and speakers. There are no keynote speeches, headline sponsors and PowerPoint pyrotechnics. There are meeting rooms and a blank page of time slots. Any attendee can propose a topic in any time slot. Every topic will naturally attract the right number of people, and moving around within sessions is encouraged. Everyone is equal and every topic is equally important.

A group of uber-geeks and supreme coders from diverse nationalities with no agenda in one location: the society had gathered! It was an opportunity to get immersed, again.

So what of the species software developer - softwarus developorus? What are their characteristics? How do they interact? Are there any sub-species? Desmond Morris categorised human species: "There are 193 species of monkeys and apes, 192 of them are covered with hair. The exception is a naked ape self-named Homo sapiens." I contemplated the possibility I will have a similarly simple differentiator from others in this gathering.

The un-conference in Arosa proved to be an interesting event. Topics ranged from domain-specific languages, behaviour-driven development and intentional programming to interviewing techniques, communication and collaboration, and what is an architectural decision?

Each session generated even more questions that needed answering. Desmond Morris nailed it again: "We never stop investigating. We are never satisfied that we know enough to get by. Every question we answer leads onto another question. This has become the greatest survival trick of our species." This is clearly how softwarus developorus survive.

But let us dwell for a moment on the common characteristics of the gathered group:

* Humility: Without exception, each person was humble, never assuming superiority in knowledge or otherwise over another.
* Mutual Respect: With humility came a mutual respect for each other, in the work that they do, in their chosen disciplines and technologies and respect as individuals of the same species.
* Critical: Although mutual respect was pervasive, criticism was not forsaken. Each answer to a question was critically reviewed for the sake of improving understanding and ensuring survival of the species.
* Passionate: Every person was passionate about what they do; there was a sense of importance, of contribution to the way we live our lives, to changing the way we work, relax, do business and communicate.
* Have fun: Among the intense level of debate, there was fun being had. It stemmed from being passionate, humble and having mutual respect.

Being one of only South Africans at the event, it was impossible not to make comparisons with the sub-subspecies africanus. So what are the differentiators with africanus?

Africanus is still a net importer of software. We live in sub-society of being consumers of software but not a global producer. We are pre-occupied with the possibility of making wrong choices: Java or .NET, Groupwise or Exchange, HP or IBM? In Arosa, people accepted that these choices and others will always exist in software architectures. It was more important to accept their existence and direct energy in how to maximise their participation in the solutions that are crafted.

There is a distinctly growing gap in africanus between software architect practitioners and software architect preachers. The practitioner is the architect that can draw a solution and build it. The preacher draws solutions and expects others to build it.

In a world of open source software and with more projects having geographically separated teams, where collaboration is through e-mail and instant messengers, the software architect must be the supreme coder. That is the fundamental difference. The africanus software architects are in danger of becoming preachers - the fault of the taxonomy of the subspecies. The architect ranks higher than the team leader that ranks higher than the software developer that ranks higher than the software tester and so on.

For africanus to participate on a global level, where the software that we produce has global impact, we need to establish a breeding ground for new talent. At graduate level, we need to promote abstract thinking, to think in patterns, to create new patterns, to learn to write well and talk well. We need to urgently redefine the taxonomy of the africanus species and their interactions:

The architect is a coach, a thought leader and a supreme coder. Abstractions are consumed and contraptions are produced. The autocratic dictatorship of designs and policing thereof is replaced by mentorship with active participation from all other sub-species.

The developer is a designer, analyst of problem domains and technical domains and a coder. The developer communicates well and can take domain problems and produce abstractions, and can explain the abstractions to the right audience at the right level.

The tester is a domain expert that can take a domain problem and a piece of software and judge fitness for purpose that yields domain benefits. The tester communicates well in the language of the problem domain and understands software development concepts such as interface design, for example.

The user should be re-classified as subspecies of softwarus developorus. The user is the single subspecies that is most affected by the actions of the other subspecies. The ultimate aim is to establish a sustainable ecosystem where the user is satisfied and this satisfaction creates an opportunity for further growth and enhancement.

Above all, the hierarchy of species is flattened. Parallel career stages are defined for each subspecies, with leadership opportunities created in each. A sub-species does not evolve from one to another, so too should it be in software teams.

In Arosa, Desmond Morris rescued me again: "This unusual and highly successful species spends a great deal of time examining his higher motives and an equal amount of time ignoring his fundamental ones." I had found my simple, naked differentiator. I was looking for higher ideals and enlightenment for survival of my species, when it actually existed in the fundamentals of humility, mutual respect and criticism, passion and fun.

The fundamentals will help break down the existing taxonomy of subspecies, equalise the contributions of every subspecies and allow africanus to contribute globally.

* Aslam Khan, Technical Director: Application Development, PBT Group

Share

Editorial contacts

Claudia Ferguson
Orange Ink
(011) 704 3894
claudia@orangeink.co.za