Disclaimer: long, probably loosely linked ideas about the importance of transmission in the Software Development industry. Contains (probably bad) architectural references and Venice pictures. You’ve been warned.
Finally, even if most what I show here is probably true for IT as a whole, I’ve chosen to limit myself to the Software Development industry, being the part I know the best.
Our industry is very young – we are experimenting, evolving, moving parts and, let’s face it, failing a lot compared to, let’s say, architecture, where we have thousands years of history behind us (not to say architecture is not evolving – just pointing that we cannot expect the same level of knowledge in industries whose differential of experience can be measured in orders of magnitude). But as we cross the generation gap – our first generation of professionals is retiring now – this is a good time to think about transmission.
The Architecture Biennale is not (only) for architects
The last weekend, I was visiting a (brick and mortar) architectural event, with exhibits from 20+ countries, the Venice Architecture Biennale. Although I’ve found some of the national “pavilions” to be lacking context (displaying plans and building pictures with only a place and date is not that interesting), most of them did spend the necessary time, space, and effort to make their exhibits accessible to the boeotian. Raw information, as we well know, is often meaningless, especially so if you are not an expert on the given field. Now, one could ask:
“Why expend effort to make a specific domain understandable for the common man ?”
Case in point, most of the parts that were boring for me were quite interesting to those from the field: they do not need someone to point them to the interesting part, as they have the context as prior knowledge. Events done by specialists for specialists certainly have their place (most of us do not come with our significant other to IT conferences, fearing quite correctly that they would be bored to death), so why the need to open it? I do not have the answer of the Biennale organisers, but I can propose several.
Transmission is not only from/to peers
The fact is, while the peer to peer exchange of knowledge is of utmost importance in all industries (and especially in young ones such as
ours), this community is restricted to people already in (so the “peer” name). I do not want the Software Development industry to become (or stay) a sect, with codes (no pun intended) unfathomable for the outsider. While the existence of jargon (which is only the tail side of the “specific vocabulary” coin) is probably unavoidable (having adequate terms to describe a given domain of work in not a good thing: it is a necessity for efficient exchange), different levels of discourse need to exists, each tailored to a specific circle of audience, in a concentric model placing the specialists in the middle and the general population at the outer rim.
From this continuity, in no specific order nor pretension of exhaustivity I would take some specific excerpt, each one of interest for a living industry.
Specialists of neighbouring domains
To be able to deliver software implies more and more group work, going further and further from the “lone developer” image. Meanwhile, the group itself is becoming more various, heterogeneous. We are working with fellows programmers, but also with other IT specialists (database or network engineers, to name only two) and outside of the IT industry with field experts, possibly proxied by Business Analysts.
At some point, we need to make our work, challenges and solutions understandable to them, once we want to get outside of the “this is my field, trust me” straw an argument.
Another group we need to interact with, probably the most important, is actually users. We do not build software for the sheer sake of it. We do it to make the live of our users better. Again, a healthy relationship is a key to good results and this mandate some kind of understanding: of them by us, but also of us by them.
The Software Development industry does not exist in a vacuum. Our industry thrives inside a whole system encompassing educational, work, scientific, legal, and political aspects. Those are governed by various bodies of deciders that impact our common evolution. Being able to reach to them is a key to steering our way. Again, it is not only about making contact, it is about showing ourselves, our values and contributions to society in a way that talk to them (while staying true).
A quite interessing group is the people that are outside the industry, but may one day be inside. As programmers are retiring, we need new ones to learn the tools of the trade, whether by choosing their filed of study or by considering a career or even a hobby in Software Development. We need to appeal to them, without hiding the difficulty and frustration of our work – the existence of difficulties may actually drive some people in, for the challenge.
If we do not reach to them, then we will be a one generation industry, that would wither and die once its last member will leave.
Finally, we have the people that are outside of all the circles defined before. The “rest of the world”, which is diminishing quite fast, as software users are becoming an impressive proportion of the general population, at least in the so-called developed world (I’ve as many problems with the term as you have and would enjoy a discussion about a better one, but this is not my point today). As workers, as members of various communities, as travellers, the general population is using more and more software, sometime without realising it (your car’s GPS? Software. Your walkman? Software. Your heating system? Software. The “smart” part of your phone? Software.).
Transmission in the Software Industry
Having I hope made my point on the importance of transmission beyond the boundary of our industry, the current situation about it is somewhat mixed: as the industry mature (again, do not forget, we build houses, cars, atomic bombs, and even phones since much longer than we build software!) we see the normal emergence of schools, trainings and other structure and materials dedicated to “show the ropes” to the next generation. This is still new (try to find a programmer over 40 that did study in IT – the only chances for the previous generation were the structures created by companies such as IBM or Bull that could not wait for the public sector to define an educative program as they required qualified employees) but the structure are in place (you can find programming courses in most of the major schools/universities).
One domain where we are actually much farther than most industries in our “peer exchange” or “community”.
But all of this is targeted to peers and possibly to future members (entry level material).
Why we need a Software Museum
I think that we fail to reach to the general population and that this is something that needs to be addressed and fixed.
In a society where software is more and more prevalent, it is accordingly more and more important for the general population to have keys to the understating of what software is, and what impact it has or can have on their lives, to allow them to voice their opinions. If we want a healthy dialog between expertise and representativity, we need to provide the required educational tools. Not to educate the ignorant masses, in the old teaching model, but to help them educate themselves. This is a very different position than the “Everyone one should be a programmer”: I do not think this requires the general population to learn how to develop. I may not be a doctor, but I have opinions about the place of health in my country. I may not be an architect, but I want to have my voice heard about the urbanisation of my city or neighbourhood. I may not be a teacher (well, actually I used to be one) but I know which education I would like to see. My position as a Software Developer is the simple mirror of those others domains where I fall in the “general population” circle.
Succeeding in this may actually make our work ultimately harder, by creating a situation where we can be accountable for it, but it would also make it more meaningful. We have knowledge and expertise about what is probably the more formidable tool of our generation. We should not be let alone to decide how to best use it.
The museum is of course a generality, as transmission to the general population can take many forms: events and exhibitions, school shows or “show and tell” or basic courses, but one that I like: a museum is a place where you can go as a boeotian, and get information in a meaningful context, not to become a specialist, but to raise your consciousness about a specific domain.
I remember as a kid (and I’m still a big kid somewhere) the visit to the museum to learn about anatomy or physic or history. I’m no surgeon, no engineer and no historian. But it was valuable anyway.
We are developing an Automated code reviews for Ruby developers using Github, discover how you can become a better Ruby developer.