Archive

Monthly Archives: July 2019

#NoSoftware

I wrote a post some time ago about No Hashtags (hashtags on e.g. Twitter which use the #No… prefix). My tweets occasionally mention various #No… hashtags, including #NoEstimates, #NoTesting and #NoSoftware.

I’m thinking it’s about time I delved just a little into the #NoSoftware hashtag. Like most of my posts on Think Different, this one will be brief. #NoSoftware is a deep subject, upon which I could write a whole book, had I but the inclination (or demand).

To whet your appetite, and illustrate the possibilities of #NoSoftware, we need look no further than the story of Portsmouth City Council housing repairs, where an existing, expensive and inflexible IT system was switched off, replaced with manual controls, and only later some limited software support reintroduced, once the needs of all the Folks That Mattered had been fully understood and catered to.

Payback

Let’s start with the payback of #NoSoftware.

As Steve Jobs wrote:

“The way you get programmer productivity is not by increasing the lines of code per programmer per day. That doesn’t work. The way you get programmer productivity is by eliminating lines of code you have to write. The line of code that’s the fastest to write, that never breaks, that doesn’t need maintenance, is the line you never had to write.”

~ Steve Jobs

A pretty clear alignment with #NoSoftware (yes, I’m coming to that presently) wouldn’t you say?

Let’s just dissect that statement:

Eliminating lines of code we have to write

We’re not talking about writing denser code – cramming more functionality into fewer lines. Fewer lines of code means we’re done quicker, having spent less time, effort and money on the writing of code. That’s a saving in and of itself.

Never breaks

So the lines of code we don’t write means we don’t have to worry about their quality (no matter whether you use defect prevention or testing as your go-to strategy in that arena). More time, effort and money saved.

Doesn’t need maintenance

By maintenance here, I’m thinking about changes to the code occasioned by the changing needs over time of the Folks That Matter, or changes necessitated by changing technical environments. I’m not dwelling on remediation efforts (bug fixes to production code).

More Payback

But the payback of #NoSoftware doesn’t stop with the above aspects. In the bigger picture, it’s not just about writing fewer lines of code. It’s about eschewing software-based solutions more or less entirely in favour of considering the alternatives. More payback includes:

Happier customers

It’s an old saw that “folks don’t want an 8mm drill, they want an 8mm hole”. Similarly, folks almost universally don’t want software, they’re looking to have their needs met. And software for many of these folks has too many negative impacts to be their preferred option. Software is generally written to save (suppliers) costs, not to improve customers’ satisfaction. Most people hugely prefer to interact with other human beings, rather than a computer controlled by – generally lame and inflexible – software.

Opening the Door to Changing Thinking

Software systems as generally conceived, ordered and delivered institutionalise – or “lock-in” – the existing collective mindset. Once installed and paid for, the “sunk cost” fallacy undermines any possibility of changing the existing set of assumptions and beliefs about how the works works. In the vast majority of cases the software system locks the organisation even more tightly into its existing Command & Control (a.k.a. Analytic Mindset) ways of working.

#NoSoftware – Definition

When I use the #NoSoftware hashtag, I’m inviting folks to think again about what, often, are near-autonomic responses. In this case, the System One (cf Kahneman) response – “fast, instinctive, emotional, stereotypical, unconscious and automatic” – when faced with some needs of some Folks that Matter, to satisfy those needs with a software-based solution.

I guess some folks assume that I’m advocating zero software. A kind of Luddites’ heaven. This is not my position. In using the #NoSoftware hashtag, I’m basically saying

“Under some circumstances, maybe there are other, more effective means to meet folks’ needs than the default assumption/strategy that we have to do so via software”.

“How about we think about, talk about, and consider those various circumstances, and means?”

In this way, the #NoSoftware hashtag is a metaphor for

“Would you be willing to think again, and maybe join the search for more effective, relevant or alternative means of meeting the needs in question?”

Example

Some years past, I was working with a company that offered a software product to the corporate market. The product had been in the market for some years, and it was clear that one of the blockers to market penetration was the complexity of the problem and the challenges corporate customers faced in dealing with that complexity. The company chose to build more and more software into their product to help their customers handle the complexity. No one ever discussed the options of offering a consulting service and/or a managed service, using human expertise, to replace or augment their software product. Consequences were, customers remained challenged, and the company’s revenues suffered.

Blockers

As Upton Sinclair’s Dictum tells us:

“It is difficult to get a man to understand something when his salary depends on his not understanding it.”

~ Upton Sinclair

How much more difficult, then, when it’s the revenues of a whole industry we’re calling into question. If the software industry changed tack and stopped writing software, what then? Financial ruin? World collapse?

There’s a multitude of smart people who currently waste much of their time – and lives – writing and delivering solutions to folks’ needs in the form of software. I suggest that to have this multitude refocus and retrain themselves to consider, and deliver, other forms of solution – solutions with less or no software – would make the world a better place for all the Folks that Matter. And “better”, as far as customers are concerned, would mean increased demand and more revenues for savvy suppliers.

Uptake

Like many of my invitations, I find #NoSoftware has few people willing to consider it as an alternative strategy to the status quo of just getting on with writing (more and more) software. I guess this signifies the general learned helplessness, and lack of engagement, autonomy and mastery, we find in most workplaces and employees today. So be it.

– Bob

Further Reading

Why Doctors Hate Their Computers – Atul Gawande
Forget your people – real leaders act on the system ~ John Seddon
Dangerous Enthusiasms: E-government, Computer Failure and Information Systems Development ~ Robin Gauld, Shaun Goldfinch

Why Reason When Faith is So Much More Comfortable?

I’ve become very bored trying to explain why Agile – even when practised as the Snowbird Gods intended – is a dead-end and why we might choose to bark up a different tree for progress in improving the effectiveness of software development organisations.

Firstly. No one seems at all interested in “improving the effectiveness of software development organisations”. Yes, there does seem to be some interest in being seen to be doing something about improving the effectiveness of software development organisations. Hence SAFe, DAD, LeSS – and Agile itself. None of these approaches do anything about actually improving the effectiveness of software development organisations, of course. But that’s not the point. Improvement *theatre* wins the day in just about every case. Irrespective of practices done “right”, or more often, done “in name only” (Cf AINO).

To actually do anything about improving the effectiveness of software development organisations requires we remove some fundamental system constraints, including:

  • Optimising parts of the organisation in isolation
  • Pursuit of specialism (vs generalists)
  • Control (as in Command & Control)
  • Annual budgeting
  • Extrinsic motivation
  • Ignorance of the special needs/realities of collaborative knowledge work
  • Separation of decision-making from the work
  • Decision-makers’ ignorance of and indifference to customers’ needs
  • Seeing performance as consequent on the efforts of individuals and “talent”
  • Discounting the paramountcy of social interactions and inter-personal relationships

And that ain’t gonna happen.

Second, improving the effectiveness of software development organisations kinda misses the point. In that software development is part of the problem. Making it more effective is just – as Ackoff would say – doing more wrong things righter.

Instead, a focus on meeting folks’ needs, or at least, as a minimum, attending to their needs, would serve our search for effectiveness rather better. And that generally requires less software, and placing software development last in terms of priority, way before understanding customers’ needs (and more generally the needs of The Folks That Matter).

Given that the software industry’s revenues are contingent on producing software (see: Upton Sinclair’s Dictum) that ain’t gonna happen, either.

Third, if we regard improving the effectiveness of software development organisations as our aim, and limit our ambitions to that part of the organisation concerned directly with software development (i.e. the IT department or the Product Development department) then, at best, we’ll only ever see a local optimisation. Which as Ackoff tells us, only makes matters (i.e. the effectiveness of the whole organisation) *worse*. To improve organisational effectiveness (not to mention supply chain effectiveness, customers’ effectiveness) requires us to consider the organisation as a system, and focus on the systemic relationships between the parts, rather than on the parts taken separately. And given that systems thinking has failed to gain much traction in over fifty years of trying, THAT ain’t gonna happen either.

I’ll just leave this here:

“If you could reason with Agile people, there would be no Agile people.”

It all looks a bit bleak, doesn’t it? Another method isn’t going to help much, either. Unless it addresses the three points outline above. As a minimum.

That’s why I have been for some years inviting folks to consider Organisational Psychotherapy as a way forward.

But reason, rationality, and a cold hard look at reality and the shortcoming of the status quo ain’t gonna happen. Until organisations see a need for that to happen.

– Bob

What Orgs Want

Or, more accurately, what organisations need. (Wants and needs are very rarely the same thing).

First off, does it make any sense to talk about what an organisation might need? Sure, we can discuss the needs of the various groups within an organisation – the Core Group, the shareholders, the employees, and so on. And the needs of the individuals involved – not that the subject of individual needs get much airtime in the typical organisation.

NB I recently wrote a post about the needs of some of these groups in “Damn Outcomes!”.

Back at the main theme of this post: what might be the needs of a given organisation?

Well, like individuals, we make sweeping generalisations at our own risk. At least for individuals, we have some guidance in the form of Maslow’s hierarchy of needs.

From the perspective of Organisational Psychotherapy, an organisation’s needs, whilst fundamental, rarely receive much overt attention. In the course of the therapeutic relationship, the organisation itself may come to a clearer awareness of its own (collective) needs. Those needs may even change and morph as they emerge, become more explicit, and become a valid topic for dialogue and discussion (i.e. ”discussable”).

But we have some basic options for consideration re: the possible needs of an organisation. I wrote about these options some time ago now, in a post entitled “Business Doctrine”. Extrapolating from that post, here’s some possible business (organisational) needs:

  • The need to create and keep customers (Drucker)
  • The need to supply goods and services to customers (serve the needs of the customer) (Drucker)
  • The need to provide a service (Burnett)
  • The need to provide a product or service that people need and do it so well that it’s profitable (Rouse)
  • The need to act as a nexus for a set of contracting relationships among individuals (Jensen and Meckling)
  • The need to optimise transaction costs when coordinating production through market exchange (Coase)
  • The need to serve society (McLaughlin et al)
  • The need to maximise the medium-term earning per share for shareholders (US business schools)
  • The need to make a profit so as to continue to do things or make things for people (Handy)
  • The need to make money (Slater)
  • The need to make a profit (Watkinson Committee)

Given the Rightshifting perspective that the purpose of any given business is more or less unique to a time, a place, and the people involved, we might reasonable say that the needs of any given organisation are also more or less unique to a time, a place, and the people involved.

Summary

To sum up: I choose to believe that organisations, collectively, do have needs. Each organisation is different – it has its own, different and sometime unique needs. The dialogue involved in surfacing any given organisation’s needs brings benefits in and of itself. Absent clarity on those needs, how can the organisation decide on its priorities, on what matters?

– Bob

Further Reading

The Future Of Software-Intensive Product Development – Think Different blog post

 

My Work

My work of the past ten+ years invites executives, managers and employees to ask some questions of themselves:

  1. What is the root of the problems in their organisation?
  2. What to do about it (how to fix it)?
  3. Why they won’t do anything about it?

The Root of the Problems

The root of the problems in your organisation is the collective assumptions and beliefs (I generally refer to these as the collective mindset) held in common by all people within the organisation. Most significant (in the conventional hierarchical organisation) are the assumptions and beliefs held in common by the senior executives. In the Marshall Model I refer to the most frequently occurring set of collective assumptions and beliefs as the Analytic Mindset.

In collaborative knowledge-work (CKW) organisations in particular, the Analytic Mindset is at the root of most, if not all, major organisational dysfunctions and “problems”.

What to Do About It

The way forward, leaving the dysfunctions of the Analytic Mindset behind, is to set about revising and replacing the prevailing set of collective assumptions and beliefs in your organisation with a new set of collective assumptions and beliefs. A collective mindset less dysfunctional re: collaborative knowledge work, one more suited to it. In the Marshall Model, I refer to this new, more effective set of collective assumptions and beliefs as the Synergistic Mindset. Yes, as an (occasionally) rational, intentional herd, we can change our common thinking, our set of collective assumptions and beliefs – if we so choose.

Why You Won’t Do Anything

You may be forgiven for thinking that changing a collective mindset is difficult, maybe impossibly so. But that’s not the reason you won’t do anything.

The real reason is that the current situation (the dysfunctional, ineffective, lame behaviours driven by the Analytic Mindset) is good enough for those in power to get their needs met. Never mind that employees are disengaged and stressed out. Never mind that customers are tearing their hair out when using your byzantine software products and screaming for better quality and service. Never mind that shareholders are seeing meagre returns on their investments. Those in charge are all right, Jack. And any suggestion of change threatens their relatively comfortable situation.

So, what are you going to do? Just ignore this post and carry on as usual, most likely.

– Bob