I An alternative
It’s in the doing of the work that we discover the work that we must do. Doing exposes reality. Woody Zuill
1. Omnipresent software
Software is eating the world. Marc Andreessen, 2011
Here at the beginning of the twenty-first century every company is a software company.
If that sounds a little overblown, let’s agree: every growth company is a software company. Companies depend on software to deliver products and services that would not be possible with it. Companies that want unique products and services increasingly find that this means unique software. Anyone can have identical software – ctrl-C, ctrl-V – but identical software leads to identical offerings, identical products, identical services.
For decades high-growth companies have been predominantly technology-based, and increasingly all technology has become software-based; or perhaps, increasingly software has become an essential part of every new technology. Think of it as coupling your business to Moore’s Law: microprocessor power doubles while price halves every 18 to 24 months.
‘Firms that use more IT tend to have higher levels of productivity and faster productivity growth than their industry competitors.’ Brynjolfsson & McAfee1
Last year – 2016 – I met a programmer in Sweden who works for a steel company. You don’t get much more old-school than a steel manufacturer, and 30 years ago the only software such a company might use would be for the payroll. But today software is essential for scheduling production, routing molten steel around the works and improving performance.
Look at the way software has upended the world of media. TV programmes are broadcast digitally to powerful computers: today’s TV sets. But then, who watches broadcast television? iPlayer, Netflix and Amazon mean we can watch what we want, when we want, thanks to software. Or consider newspapers: software running on tablets, phones and desktops has consigned profitable print-only newspaper companies to history.
Once a product becomes digital, everything changes. Ask the music industry. First expensive hardware allowed music to be digitized, then software reduced the price, then software created new ways of purchasing digital music. At first the industry resisted, but that didn’t stop the likes of Napster. It was only when Apple arrived with the iStore and iTunes that the industry started to see how it could survive.
As old industries such as newspaper publishing change and even die, the same technologies allow new ones to come into being. Look at print-on-demand services such as Lulu.com, which allow anyone to publish their own book without capital investment, or LeanPub.com, which is a totally electronic publisher.
Or take cars. A well-established industry is in the process of being disrupted before our very eyes. Who is making the most interesting cars today? Maybe it is Tesla, a company founded on software. A Tesla needs hardware, but could hardware substitute for software? It’s not just the maps and the music: the drive train requires advanced software to optimize battery performance.
The engines of most modern cars require significant software to work. I read somewhere that 25% of the value of a new car is software. I can’t find that quote any more, but I found sources saying that traditionally 10% of car’s value was electronics but today it is nearer 50%. When I’ve mentioned these figures to people who know they say they are on the low side.
The fact that Apple and Google are developing cars demonstrates that something is changing. Being able to build a physical car is no longer enough – in fact you can outsource that bit to Magna. Ford, Fiat, Toyota and other car manufacturers have been turning out very similar cars – similar to their previous cars, and even similar to each others’ – for years. After the early 1980s ‘quality revolution’ little changed in the world of cars: successive Golfs, Camrys and Mondeos were hard to tell apart.
Then software arrived… Cars now have maps and navigation systems. Cars can park themselves, and soon they will drive themselves. For a car to be worth buying it must contain software technology: without it a car is a utility item that cannot demand a high price.
Now that the cars of tomorrow will compete on software capabilities it is logical for companies that have an advantage in the creation of software – Apple, Google and others – to enter the market.
Software is indeed eating the world.
Note the consequence of business dependence on software:
Software is the business
When delivering the fundamental product or service of the company becomes highly dependent on software, the software is no longer optional: software can no longer be done by ‘IT’ in a back room – the business and the software technology are one.
Increasingly this gets called Digital.
Digital includes not just online sales and electronic delivery. Digital business includes ‘big data’ and analytics, the Cloud, phone apps – indeed cellphones and smartphones altogether, GPS positioning2, artificial intelligence and the things that they make possible: drones, the gig economy and more.
Digital hides the underlying truth that is software. All these technologies are only possible with software. Digital business is dependent on software, which means that the business is dependent on those who create software.
Digital implies software development, but while ‘software development’ is a bit of a mouthful, ‘digital’ is short and sweet. This is not to say that the digital business is only a software development business; there is a lot more to digital as well, but the need to have access to, or to be able to create, software is fundamental to the business.
Software technology is now as important as marketing or accounting.
Unfortunately in 2016 it is still acceptable for even senior executives to say “I don’t really understand software” and “Programmers are expensive geeks who I don’t understand.” Could you imagine these same executives saying:
“I don’t really understand accounting – whether to expense or capitalize…”
“Why do those accounting nerds demand double-entry? Surely if we just did it once we could save money?”
“I don’t really understand marketing – I only know that half the money is wasted.”
“I just want marketing that works.”
It is not so much that every company is a software development business, as that every company is software-dependent business. The more a business becomes digital, the more it takes on the characteristics, attributes and business models of what we used to call ‘software houses’.
So let’s talk about projects…
The project model of working dominates software development. (Let’s leave the different definitions of ‘project’ until later.)
The project model is inherently short-sighted. Call it Project Myopia: projects end.
Do you want your business to end?
“When will this business be done?”
“When will your company finish?”
Questions like these are only asked about businesses that are in trouble. We don’t want businesses to end. We want businesses to continue: to continue employing people, to continue supplying their products to grateful customers, to continue paying dividends to shareholders.
If the company is software and we want the company to continue, why do we think the software will ever be ‘done’? Again, imagine the head of Microsoft Office development meeting with the Microsoft CEO, Satya Nadella, and saying “Great news, we finally finished Office after 26 years. We can lay off the team and get started on the next thing.” Microsoft’s profits would collapse.
Software businesses such as Microsoft are the prototype of future businesses. Software businesses have been exposed to the threats and opportunities created by software for longer. Those who work in these companies have long had access to early versions of the tools that are now becoming commonplace. This doesn’t mean that these companies have always got it right – only that others can learn from such businesses.
The idea that software is never ‘done’ may terrify some readers – how does one know how much to spend? Some will rail against this idea – after all, we can control ‘scope’, we can push back on requests, and we don’t need to upgrade with every new technology or OS change, and we…
Personally I don’t think scope can be controlled. However, if you have an example where it can, then OK, I concede. But…
Changes are opportunities. Rather than viewing requests to change software as a bad thing that should be resisted in the name of ‘done-ness’ and cost control, we should see change as a positive that provides our businesses with growth opportunities.
How many times has Microsoft sold you Word?
How many times has Oracle sold your company their eponymous database?
Software companies have long succeeded in using the cycle of software upgrades to extract money from customers. It’s true that the business models of software companies are changing too. In a world in which all companies start to look like software businesses, it becomes harder and harder to find any which are purely software businesses.
It is not just in extracting more payment from customers that software can deliver value to business. Take my Swedish friend: continuing to improve their software allows the steel mill to continually extract more cost saving from their plant.
In many companies – perhaps most – there is no single long-lasting ‘optimal’ point of production, or optimal processes. Many businesses never approach the optimal point because they don’t know what it is. More likely they operate at some local optimum, which may be fine for a while, but when faced with a new competitor, a new technology or even just a change of personnel they are forced to find a new and hopefully better local optimum.
When a business is based on software, moving to a new optimum requires changing the software – or rather, changing the software allows a move to a new optimum.
Since it is not only a single business that is software-based, but all the other businesses with which it works, there are continuing opportunities to optimize one business by responding to or even initiating changes in others.
Take parcel delivery, for example. This was once a physical business: collect parcels, move them, deliver them. Then FedEx, UPS and others arrived, they allowed you to track a parcel online. But technology goes deeper: such companies could not run their businesses the way they do without software. This change has sparked changes in other businesses, not just competitors such as Royal Mail or US Mail, but in businesses that can now send parcels reliably across the globe in hours.
Is UPS’ parcel software ever done? For such companies software is not a project to be completed. Software is their lifeblood. Finish the software and you finish the business.
I can already hear readers who work for delivery companies shouting “But we have software projects! And they work!”
I’m not disputing that many companies organize their software development using the project model, although I admit that I don’t know the internals of FexEx or UPS. My point is that running such a model hinders such businesses, and that breaking free of the project model offers opportunities for companies to improve. The project model complicates the management of software development and induces myopia.
The problem is that the project model is ill-suited to software development. When software was a sideshow – an optional extra – companies could get away with patching a broken model. Now that software is the business, using an ill-fitting model adds complexity, hinders improvement, and in some cases may well break the company.
Because the project model promises ‘an end’ – and because people like closure – executives and managers suffer from myopia. They fail to comprehend the implications of the fight against a never-ending process, and so pass up opportunities for growth and market leadership.
Software technology has allowed businesses – whether they be delivery companies, steel mills, banks, airlines or whatever – to grow (‘scale’ in the jargon) beyond the wildest dreams of company managers 100 years ago. But if they are to continue to exist, let alone grow, over the next 100 years, then they need to think differently.
One of the ways they need to think differently is to accept software development – ‘digital’ – into the core of the business as an ongoing activity, rather than something that happens over to the side and that will be done ‘one day’.
2. Software as an Asset (SaaA)
Total factor productivity growth increased more between the 1990s and 2000s in IT-using industries, while it fell slightly in those sectors of the economy that did not use IT extensively. Brynjolfsson & McAfee3
3. Higher purpose
I believe that this nation should commit itself to achieving the goal, before this decade is out, of landing a man on the moon and returning him safely to the earth. President John F Kennedy
…a computer on every desk, running Microsoft software. Bill Gates
Beat Xerox. Canon Group
…to organize the world’s information and make it universally accessible and useful. Google
Goal, mission, vision, objective, BHAG (Big Hairy Audacious Goal)4, MTP (Massively Transformational Product)5 – call it what you will, but the underlying idea is the same: a higher purpose.
Organizations and people are motivated and inspired when they have a higher purpose. Organizations and people work better together when they share a common higher purpose.
In the Continuous Digital model each team is a miniature business in its own right, so each team needs a sense of higher purpose. In addition to the overarching organizational purpose, there needs to be a team-level shared higher purpose.
Survival is not enough: organizations are akin to organic life – they want to survive; they want to live; they want to grow. But survival alone, while necessary, is not enough. Organizations and the people in them need a higher purpose to motivate and focus on.
Over the years various authors have suggested different names and forms for this higher purpose; some are given above. While the details differ, the essential element is the same: something bigger than the individual, something that gives meaning, something to aim for, something against which to measure progress.
Not money
Human beings don’t only want comfort, safety, short working hours, hygiene, birth control and, in general, common sense; they also, at least intermittently, want struggle and self-sacrifice, not to mention drums, flags and loyalty parades. George Orwell
Few people are motivated by money in anything other than the short term. Making money – creating revenue, making profits, enhancing return on investment – are objectives best pursued indirectly. Experience has shown that when organizations only focus on making money, things go wrong: think of Enron, Lehman Brothers and countless less famous examples.
The economist John Kay goes further in suggesting that directly targeting profit impedes the propensity to do good and generate profit. Kay cites numerous examples, such as the British chemical company ICI, which successfully generated profits for decades while it aimed at:
‘…serving customers internationally through the innovative and responsible application of chemistry and related science.’
In 1997 ICI restated its higher purpose as:
‘…to be the industry leader in creating value for customers and shareholders through market leadership, technological edge and a world competitive cost base.’
Ten years later ICI was gone6.
Even the one-time champion of ‘shareholder value’, Jack Welch, has described single-minded pursuit of profit as “The dumbest idea in the world.”
Making money is necessary for businesses and individuals, but more importantly, money is information. Healthy cash-flow shows a business that it is doing well, and failure to make enough revenue to cover costs tells a business that it needs to change or pack up.
Modern commerce has developed a mass of ‘financial engineering’ techniques that allow money to be extracted from an organization. Unfortunately these techniques dilute the informational value of money for the underlying business. That a company can pay large dividends while the core business rots demonstrates the prowess of financial advisors and obscures the underlying issues.
Obliquity
Obliquity describes the process of achieving complex objectives indirectly… oblique approaches recognize that complex objectives tend to be imprecisely defined and contain many elements that are not necessary or obviously compatible with each other, and that we learn about the nature of the objectives and the means of achieving them during a process of experiment and discovery7. John Kay, 2017
Kay’s concept of oblique goals is not only attractive for technologists, but describes in one word the whole raison d’être for software development. Developers start with a necessarily fuzzy goal because the goal exists in a fuzzy world, but our machines do not tolerate fuzziness; they know only the finite states of one and zero. If the problem is already sufficiently precisely defined, then the computer can already solve the problem.
‘The computer is very good at solving the problem we have specified and asked it to solve, but less useful when we are not quite sure what the problem is.’ Obliquity, John Kay, 2017
Almost by definition the activity of instructing the computer to solve a problem is oblique, fuzzy, ill-defined and requires one to learn about the solution and the problem.
Software development is inherently the work of turning oblique and fuzzy objectives into specific systems. In doing so engineers deploy an armory of tools that seek to clarify the problem in hand and focus attention and effort, while engineers offer up potential solutions that may do more to help understand the problem than to provide a solution.
Embracing Kay’s call for obliquity opens this author to the charge of hypocrisy, because I have written much on defining, specifying and quantifying work. But in truth software development always begins with oblique problems. Iterative software development is the act of repeatedly focusing on the problem and potential solutions in order to create better understanding. It is because problems software engineers address are inherently fuzzy and oblique that one must constantly attempt to clarify the problem and solution. It is through repeated and iterative attempts to define and specify the problem and solution that one advances towards both a solution and the problem.
When technologists are able to specify problems and goals in specific terms, then solutions can be crafted. Given a sufficiently precise problem statement, crafting a solution can be trivial. However, specifying the problem is far from trivial.
Organizations and teams
That organizations need a higher purpose is well-established, but what is less well-established is that teams need their own higher purpose.
While grand organizational – even national – goals may be highly motivating, they can also be very remote. While an oxygen tank designer deep in the bowels of Grumman Aerospace might understand how their work builds towards putting a man on the moon, does an accountant deep in the bowels of Google understand how their analysis of expenses helps to organize the world’s information? Teams need to have their own higher purpose, and they need to understand how that builds towards the ultimate higher pursue of the organization.
Given that authority is devolved to the team, and that the team is expected to both decide what to do and execute it, then it is not possible to govern a team on the basis of “Have they delivered X?”, because the team decides what X is. Assessing effectiveness and progress is tricky.
Knowing both team and organizational higher purpose allows one to frame questions of effectiveness and progress in terms of the higher purpose, for example “Has this release contributed to the team’s purpose? To the organization’s purpose?”
Scale
Each team needs its own higher purpose.
This is especially true when a team needs to work with other teams in the organization. Since all teams ultimately share the organizational higher purpose, team-level aims should not be too dissimilar.
When an organization is small there may only be one team. The organization’s higher purpose is the team’s higher purpose. Life is easy. But with growth there will come a point at which teams need their individual sense of purpose. In the first instance it would seem rational to hand these teams a predetermined higher purpose. Indeed this might be necessary in order to establish a team in the first place.
Where a team is following the ‘amoeba model’ and splits into two teams, it is entirely possible that the two teams share a common purpose at least initially. Over time their higher purposes may diverge.
Mutable
Although a team may be given – or inherit – a higher purpose to start with, teams need ownership of that higher purpose. Therefore each team needs to have the authority to modify their higher purpose over time. As they are part of a larger organization, such changes need to be undertaken in harmony with the organization.
A team intending to modify its stated higher purpose would consult with others – its customers and other teams with which it works. The organization’s governance board is probably the ultimate arbiter of whether a proposed change of purpose can be made, although a team should probably avoid getting into a situation in which the board says “No”.
If team members start to doubt their higher purpose and are unable to question and ultimately change their purpose, then they may be compelled to leave the team.
This might even be desirable – if one individual finds they are no longer motivated by the higher purpose, it may well be a sign that they should move. This is perfectly natural – individuals grow and change throughout their lives, and what they want and what motivates them changes over time.
However, if multiple team members find the higher purpose no longer motivates them or seems irrational, it may well be sign that the purpose needs revising. Again it is natural that over time teams’ higher purposes will mutate and change – after all, the world around them is changing, technology is advancing, and sticking doggedly to a purpose that has become outdated is detrimental.
If team members are to truly believe in their higher purpose, they need to ‘own’ the purpose; if the team collectively owns the purpose, then it is allowed to change it. One of the privileges conferred by ownership is the right to change property. If ‘owners’ cannot change their purpose then they are not true owners.
Individuals
Each member of the organization should have a sense of mission. Inamori Kazuo8
Only when team members understand and share the team’s purpose does it make sense to talk about individual goals or objectives. Indeed one might even ask: if the team is the basic work unit, and if one is striving to create effective teams, then surely the team goals are individual goals?
I’ll leave that as an open question for discussion. However, if you decide that individual goals still have a role to play, it follows that individual objectives should not only be aligned with team and wider organizational goals, but should actually be derived from team and organizational goals.
Project completeness
In the project model completion of the project is the goal. However, such an objective leads to goal displacement and damages profitability in a digital world. Still, individuals and organizations need meaningful and achievable goals.
Quantifying goals can be a great aid to determining whether they are met. However, sometimes it might be better to avoid quantification: set an oblique goal, make the goal something to strive for, and thus avoid attempts to ‘game’ the target. The problem with quantifiable goals is that while they appear objective, the goals can be met by oblique means, which undermine the goals’ validity. This is highlighted by Goodhart’s Law9.
Closure
One of the advantages of the project model is that it allows individuals and organizations to achieve closure. Humans like closure: it provides a satisfying psychological safety. Something is done, complete, finished. That the continuous model deliberately avoids closure is itself something of a problem psychologically. However in the commercial world closure often creates problems.
‘This shop is closed.’
Shops that close on Sundays can be an inconvenience – one cannot satisfy one’s immediate needs.
‘This shop has now closed.’
Shops that close and cease trading can be an even bigger disappointment.
Business closure is normally a bad sign – businesses want to live and continue!
Unfortunately organizations sometimes meet their goals, their BHAGS (big hairy audacious goals), their objectives, or complete their missions. Upon achieving their goals, both Canon and Microsoft faced existential questions and suffered commercial turbulence for several years. NASA too struggled in the years after Neil Armstrong became Kennedy’s ‘man on the Moon’, and the final three Apollo missions were cancelled.
While one might sidestep such a problem by defining the higher purpose as something that is never complete, such an approach may be self-defeating if individuals feel that the aim is never achievable.
This is definitely one of those ‘nice to have’ problems. However it is one that should not be ignored indefinitely. The solution requires flexibility in the goal: once the goal is achieved, the organization needs to be capable of mutating it or adopting a new goal. The same should also be true of teams that achieve their higher purpose.
Finally
At an individual level a higher purpose helps to enroll and motivate team members. At an organizational level the teams’ higher purposes allow the organization to coordinate disparate teams and assess effectiveness.
The organization’s ultimate goals and objectives serve to coordinate teams and add to individuals’ own sense of purpose.
Oblique goals provide the team with latitude to innovate and allow problems to be reformulated as solutions emerge. Oblique goals better match the nature of technology work: creating the specific from the vague and interfacing the exact world of machines to the fuzzy world of people.
4. Team-centric development
Divide the organization as necessary into small units, and rebuild it as a unified body of small enterprises. Entrust the management of these units to amoeba leaders to cultivate personnel with managerial awareness. Kuzuno Inamori10
5. Work to be done
Over and over, people try to design systems that make tomorrow’s work easy. But when tomorrow comes it turns out they didn’t quite understand tomorrow’s work, and they actually made it harder. Ward Cunningham
6. Value
Price is what you pay. Value is what you get. Warren Buffet
Value is perceived benefit: that is, the benefit we think we can get from something. Tom Gilb, Competitive Engineering Concept 26911
7. Summarizing the alternative model
Perhaps the most important complementary innovations are the business process changes and organizational co-inventions that new technologies make possible. Brynjolfsson & McAfee12