socialism (sō-sha-li-zom) noun: – any of various economic and political theories advocating collective ownership and administration of the means of production and distribution of goods
Socialist systems are usually marked by a centralized group responsible for deciding the most socially advantageous way of allocating resources. Normally, we think of socialism in a political context. Here it is the government which acts as the centralized embodiment of socially-beneficial decision making. But socialist thinking and organizational patterns permeate many parts of society.
Software production is one of them.
Software, boiled down to its essence, is a codified solution to a problem. But the Byzantine nature of modern software development results in an inaccessibility to the means of its production. That puts software developers in a uniquely powerful position. They become the conduit through which problems are solved. As society increasingly relies on software there is an increasing dependency on the software development community.
People involved in allocating resources within socialist systems usually argue that their efforts are both benevolent and that the criteria used are transparent and open to influence. But while the decision process may be flexible, the underlying belief that society is best served when those decisions flow through an elite body is unwavering.
This is largely the pattern I see amongst much of the software development community. Particularly within enterprise IT organizations. As a generalized group they welcome suggestions on where they should focus their efforts. Equally, they actively seek input “from the business” on how to prioritize their work and how to quantify its value.
But when their hegemony over the creation and selection of software is challenged then the true colors start to emerge. I often speak to clients about the growing trend of user autonomy and federated decision making in software and the general response I get is “how do I stop this from happening.”
Usually this is framed as well intentioned compliance, sourcing or data management concerns. But seldom are these questions framed as “how do I manage compliance, vendors and data in a way that both embraces and accelerates the trend toward autonomy in our organization.” The focus, instead, is squarely on re-exerting centralized decision making under the auspices that it’s the software elite that can best manage these decisions for the organization as a whole.
Keep in mind that the most salient critiques of socialism are not bound to the efficacy of centralized decision making but to the corrosive nature of the dependency the system requires of those outside the governing elite. Alternative approaches to socialist frameworks often focus on the concept of “spontaneous order” – the idea that a harmonious, evolving order arises from the interaction of a decentralized, heterogeneous group of self-seeking agents with limited knowledge. I would strongly argue that the growth in IT autonomy is an expression of spontaneous order. Unfortunately, spontaneous order is an anathema to the central planner.
So for all you in the software development elite – particular in enterprise IT organizations – next time you’re confronted with issues related to business acquisition of SaaS, user adoption of social software, unofficial development projects using aPaaS or mashups, pause and check your reaction. Are you excited about the possibility of supporting spontaneous order? Or do you feel that the central management of the organization’s software is being threatened?
Then ask yourself a question. “Am I a software socialist?”
Category: Uncategorized Tags:

Brian Prentice




































































































7 responses so far ↓
1 Michele Mauro July 5, 2009 at 10:25 am
I’m confused.
In the article you imply that the “software socialist” is the IT guy/dept who wants to own and dictate the use of company data at his/its own whim. More or less, a control freak.
Yet, your initial definition is cites socialism as a theory “advocating collective ownership and administration”. And in your article, you reccomend just that!
Who’s the socialist, then?
It seems to me that just like many others, you’re mixing socialism intentions with its various (failed) implementations. The various socialist totalitarian states around the world and in recent history weren’t socialist at all: they were/are totalitarian states, that choose the “socialist” propaganda. They were no different from other totalitarian states that choose other, opposite types of propaganda.
Michele
2 Brian Prentice July 5, 2009 at 6:59 pm
Michele – thanks for the comments. First off, I’m not sure I’m recommending anything in this post. I’m simply making an observation and posing a question.
Let me see if I can better clarify my position. Now, while it’s common to look at socialism in the context totalitarian states I am specifically not doing so here. I am not trying equate IT departments with the Soviet Union nor suggesting that CIOs are the geek equivalent of Kim Il Jong.
Think instead of the of the widely manifested, benign social democracies around the world. In these systems there is absolutely an accepted view that social benefit is something centrally determined. From my personal experience that perspective isn’t just constrained to government – it becomes pervasive throughout society. There are decision makers and decision takers.
So, the focus of this post is squarely on the belief structure that underpins socialist systems. And I would reiterate my observation – many, many people in enterprise IT organizations still operate on the basis that they are in the best decision to determine what is in the best interest of the “users” in the organization. That’s a socialist perspective.
3 Nos Doughty July 7, 2009 at 12:28 pm
Brian,
In those “widely manifested, benign social democracies around the world” the governments tend to be made up of many small political parties in coalition, and as such are forced to strive very hard for consensus, as are they extremely dependent on satisfying their constituents – completely unlike the ‘winner takes all’ approach used in the USA, Australia, UK and others.
Additionally, the attitude of ‘the elite knows best’ CERTAINLY fits what we see around us in the more capitalist based economies – albeit with several competing groups of elites.
I think your analogy is on extremely shaky ground.
Further, as one of those software development ‘elite’ I can assure you that you are very far off the mark with your interpretation of our motivation. For starters, many specialized professions are made up of individuals who think ‘they know best’ for good reason, such as doctors, lawyers, civil engineers, etc.
The simple truth is that ‘the business’ is often unable to comprehend very some of the very simple constraints faced by those in the profession and as a result may feel left out when the software development team dismisses their input, but I can assure you that the motivation of the majority of software developers no different then anyone else in an organization… do a good job, make their boss happy, get a pay rise and a nice company car, whatever. They are certainly not engaged in some sort of ‘class-warfare’ to maintain the elite status of their profession or engaged in some sort of byzantine power struggle. As a rule, technical people do not usually have the sort of personality that such behavior appeals to.
So as someone who has worked as a developer, business analyst, and development manager, and feels they have a fairly good perspective on the issues surrounding software development in the business world, I would counsel you to relax and stop looking for windmills to tilt.
Regards
Nos
4 Brian Prentice July 7, 2009 at 7:07 pm
Thanks for your counsel Nos. People have been telling me to relax for years but I think it’s too hard to teach this old dog new tricks
First off Nos I would say that software developers are nothing like civil engineers (as much as they’d like to think otherwise). But I’d concede they have a similar situation to doctors. Specifically, doctors are now starting to find that patients are far more active in their own health. They are coming to them well-informed and with an expectation to be proactively involved in the management of their well being. It’s referred to as being “tested internet positive.”
Some of the younger doctors accept, if not enjoy, patients taking this level of responsibility. But many hate it. They see it as usurping their authority. There has been tomes written on this issue.
With all due respect Nos, I’m not tilting at any windmills here. There are exactly the same shifts occurring in the world of software. Users are demanding the right to participate in the selection and development of software at levels unheard of in years gone by.
As I made clear in my blog post I am not for a minute suggesting that software developers are a malevolent force bent on maintaining class-warfare to protect their elite status. But what I’m saying – a position borne from many, many discussions with developers and application managers – is that the idea of “spontaneous order” disrupts their worldview. At the end of the day, they feel they are the ones in the best position to decide what’s in the best interest of everyone else. User participation is welcomed as long as it is in a context that best meets their needs. That is the socialist “we know best” perspective I’m highlighting. They’re like the doctors that are uncomfortable with actively engaged patients.
BTW – I find your comment on the personality of “technical people” interesting. My personal experience is that “technical people” (self-proclaimed or credentialed) are diverse and are as prone to human foibles as any one else.
Or are you saying that all people are created equal…just some people are more equal than others?
5 Nos Doughty July 8, 2009 at 7:01 pm
Hmmm…
For the record I do not believe all people are created equal. I like to think we live in a society where all people have equal *opportunity*, but the evidence of the senses makes it pretty clear that we’re not all “equal”. Ironically, that ‘egalitarian’ thinking IS the core of socialist thinking, not the ‘we know best’ approach which is clearly only evidenced by communist (or more correctly ‘state-capitalist’) regimes. For the record, I am neither (though I think of myself as a progressive).
Further, some of us spend a great deal of time furthering our domain specific knowledge. I myself can state with certainty that I have at least added 50% per year to my “knowledge-base” of my profession, and in most years it’s closer to 100%. The one or two technical books have read a month for the past 15 years has probably helped in that regard.
As for resistance to “spontaneous order” – see “Agile Development”
Most developers I’ve met seem rather keen on self-emergent phenomena. I think the reason why Agile development (which is a self-ordering process) tends to be more popular with developers then their businesses managers is that agile development tends to “align responsibility with control”, and while the business is quick to take the glory when projects success, they are even quicker to apportion blame to the I.T. staff when the projects fail.
As for your comment about diversity? In my experience that statement isn’t true. Instead I see that people are attracted to professions that suit their personality – i don’t see many action-junkies or poets in my profession – and while some may exist – it’s an obvious minority. It takes a certain personality type to enjoy spending 8 hours a day in front of a computer screen tackling what essentially boils down to being a combination of a maths problem and an english essay (writing simultaneously for the computer and for successive developers who will be there years later to make changes to the code)
Unfortunately I am dubious that the *average* “user” is capable of understanding the sometimes extremely complex issues involved in some of the decisions they don’t understand.
At one technical meeting I was present at a discussion was held between senior application developers and senior Unix/Linux developers about the ramifications of switching to a VM based architecture. Discussions included first hand knowledge of the way the filesystem buffered atomic writes and how the data was handled when transferred across memory boundaries in the kernel.
I can imagine all too readily that the business owners were frustrated when it seems like a decision like moving to a VM based architecture seems to be resisted by the developers, and it’s just extremely difficult to demonstrate to them the concerns the developers have. All too often there is such distrust about the technical reasons offered that it is automatically assumed that the IT staff are deliberately using technical jargon to obfuscate the issues for their own reasons… but I’ve never known that to be the case in practice.
I (and my peers) are paid to be professional developers and deal with these concerns, and we do as best as we can. It is our sense of professional ethics which guides our actions, and I assume less ethical individuals are weeded out, as in other professions, before taking on the more senior roles with the correspondingly larger capacity to inflict damage on the systems and business that depend on their expertise (perhaps they become consultants?
Regards
Nos
6 Brian Prentice July 10, 2009 at 3:42 am
Hey Nos – sorry for the veiled Orwell reference (Animal Farm – “all animals are created equal but some animals are more equal than others”). I didn’t want to start anything
Now I don’t think your average user will be launching their Eclipse IDE and building device drivers or directly sourcing their own enterprise service bus any time soon. So I think your well-earned domain specific knowledge is perfectly safe in many areas of the total development landscape.
But users are wanting greater control – either in composing or sourcing – the software that is of direct impact to their roles, their productivity, their relationships and their lives. And in this area I would suggest to you that it is the developer who is often challenged in understanding the issues. This is not to say that you, or your peers, are operating in anything other than a professional and ethical manner. But it means users are looking for alternatives to a system that is failing them.
Now, we can try and explain to them the reasons why things are just a lot more complicated than they could possibly understand and that they’ll need to accept the limitations of the system. If that’s your approach, well, good luck to you. Overall, I haven’t seen that working out to well. Those darn users just don’t seem to listen do they? The other approach is to embrace a different form of user participation – one based on much greater autonomy than has been traditionally accepted. But to do that, much of the development community (particularly in enterprise IT organizations) has got to change their attitudes about control. That’s my key point here.
That leads me to your point about Agile Development. Yes, there’s a lot of discussion. But traction is another thing. Gartner’s own research indicates that it barely registers a blip on the radar for development methodologies in use in enterprise It organizations. Waterfall and iterative methodologies still dominate.
Finally, I would like to avoid a debate about generalized personality traits. But I can’t avoid making one point. If you want to bestow upon software developers a set of positive personality traits then you will have to accept a whole bunch of negative traits too. That’s the thing about stereotypes – they cut both ways.
Thanks for the discussion – Brian
7 Webeando « Mundo Binario July 19, 2009 at 8:32 pm
[...] ¿Eres un socialista del Software? (en inglés) [...]