“A lot of what, and about where?” I hear you cry. One question at a time, I reply. First, there’s too much of everything these days, and, second, it’s happening all over. Furthermore, everybody’s doing it. As a contemporary Wordsworth might say: “The Web is too much with us, late and soon, getting and browsing we lay waste our powers.” There is a glut of unfiltered information proving more dangerous than Alexander Pope’s “A Little Learning” where “shallow draughts intoxicate the brain.” Pope surely predicts our age of instant, effortless data access when he writes:
“But, more advanced, behold with strange surprise
New distant scenes of endless science rise!”
We also have our latter-day Wordsworth, the contrarian’s contrarian Andrew Keen (quod googlet). His The Cult of the Amateur (Doubleday, 2007) is provocatively subtitled “How today’s Internet is killing our culture.” Keen bemoans Web 2.0 as the digital dystopia, regretting that the technology he promoted in the early Internet gold rush has become Frankenstein’s monster. Amateur (in the derogatory sense) content is murdering the traditional media. On the wider cultural front, it spawns instant celebrity cults, not excluding Keen’s own dizzying exposure on the Web! Fads and faddisms come and go thick and fast; fashions, thin and thinner, in a snowclone of clichés. In C++ terms:1
white = new black; purple = new white; hiphop = new rock_and_roll; small = new big; subprime = new affordable; michigan = new florida; C# = new C++;
Thus, wisdom-free information is not just here-and-there and now-and-then but all-over, all-the-time. Bad news still predominates the digital headlines as it did in the old media, but now any amateur with Photoshop or iWeb can create 9/11 conspiracies for millions of YouTube and Brasscheck viewers. What used to be the occasional endemic scare is now a continuous pandemic panic. Local is dead. Global rules. Private angsts are no longer confined to Freudian couches but relayed live (stretching the meaning of live) via a million blogs. Each counseling group and realtime disaster has its own dedicated e-magazine and TV channel. National Geographic is the daily Tsunami Times. Discovery runs an hourly bird-flu alert digest. What was once the History Channel is now subdivided into the Hitler, Stalin, and Bush channels. Press the red button for Darfur.
Hackers’ moans accumulate on http://thedailywtf.com. (I refuse to explain what wtf means here, except to say that it is unrelated to the World Taekwondo Federation.) Will ACM soon have a Journal of Insoluble Problems and Persistent Bugs with articles such as “Why Your Projects Will Always be Late and Over Budget”? In spite of which, of course, we will continue to worry about the inevitable.
I can, perhaps, offer some good news, or at least a hint on solving the late-project problem. It concerns the world’s largest IT project, the UK’s NHS (National Health Service) $25 billion plan to digitize and centralize all patient records. The word patient is jarringly ironic, perhaps, in view of the six troubled years (missed deadlines, budget rescaling, managerial and staff changes) endured since 2002 when the NHS NPfIT (National Programme for IT) was launched. (The fIT part of the acronym has also invited some titters.)
As Rod Thomas has observed (London Times, April 28, 2008), the NHS has neatly solved its schedule-slippage problems by “renaming its IT strategies once they fail to deliver their objectives against target time scales.” Thus, the original 1992 strategy was called “Getting Better with Information and Technology,” followed by the 1998 strategy named “Information for Health,” subsequently morphing into NPfIT in 2002. The NHS has just appointed two new chief information managers, and Thomas is predicting yet another “rename” to reset the project clock to zero, as it were. From being essentially 16 years late, the project is suddenly well ahead of schedule.
Reverting to real solutions, I suppose that Peter G. Neumann and his ACM risk analyticals2 are redrawing the familiar conclusions from the NHS saga: overly grand plans are overly risky! Even the word grand invites disaster—witness Napoleon’s Grande Armée and the fate of so many grand dukes. Are there some projects that just resist decomposition but must be tackled as a whole? Neumann is aware of the pros and cons of holism in both the medical and SD (systems development) domains.3 Some might find echoes of past Stanford Research, pre-SRI, “close encounters” with pseudoscience and the paranormal when Neumann tabulates various holistic and nonholistic philosophies. Under holistic “alternative health care (cure the causes),” he lumps together, approvingly:
“Whole-person approaches such as proactive prevention, homeopathy, acupuncture, diet, exercise, and orthomolecular rebalancing can lead to long-term sustainability, less drug use, lower overall costs.”
The nonholistic nonalternative (i.e., the maligned “traditional” approach to medicine and health care) comes out badly:
“Allopathic medicine (treat the symptoms): Suppressing symptoms (with pharmaceuticals, radiation, chemotherapy, corticosteroids) causes iatrogenic effects. Antibiotic overuse induces mutations of resistant bacteria. Long-term effects may offset short-term benefits.”
There are sound points here, lurking in a skewed dichotomy. The downside to allopathic treatment is acknowledged by traditionalists who urge many of the preventive proactions listed as holistic. Diet and exercise are hardly “alternatives,” except perhaps to the Jolt/pizza-stereotype programmers who are now busy Googling the meaning of Diet + Exercise. Yet the mention of homeopathy and orthomolecular balancing (also known as “Eat lots of organic broccoli!”4) brings instant pause. I find “less drug use” and “treat the symptom” in opposite columns a tad problematic, given recent verdicts on the ineffectiveness of homeopathy (beyond the placebo effect), where the “causes are cured” using barely detectable, serially diluted amounts of the “drug” (nonorthodox molecules?) thought to be the cause of the symptoms.
The subject abounds with teasing paradoxes and conflicting definitions of holistic as one moves around the domains. When comparing holistic and nonholistic systems development, Neumann again reveals a bias, albeit a less contentious one. Holistic SD is characterized as “principled SD” in opposition to nonholistic as er, er, “unprincipled.” As defined, we cannot help but side with the holistic angels, etymologically wholesome, who make “pervasive use of requirements, specifications, composable system architectures, sound software engineering practice, design for trustworthiness, evolvability, maintainability...” All of which “...can enhance long-term sustainability and yield overall cost savings.”
They also serve the best apple pies, brush their teeth, and landscape their parents’ graves.
Heading to join Judas in inferno are the unprincipled so-called developers who scarcely deserve to have the predicate “system” whispered in nearby strings. Their “seat-of-the-pants ad-hoc constructions lead to rampant vulnerabilities, low assurance, patch-and-pray system administration, continual remediation, iatrogenic upgrades, cost overruns, development delays, system failures, project failures, wasted human resources.”
Quit stalling, Peter. What d’you really think of these unprincipled bastards?
Iatrogenesis, invoked here in both medical and SD contexts, has suffered some semantic dilution over the years. Originally meaning the side effects of healing, good or bad, it now commonly refers to the (usually unintended) harmful effects of medical treatments (in the widest possible sense). As such, it has its own vast literature and an American Iatrogenic Association doing its best to keep physicians loyal to their Hippocratic oaths.
The basic ethical dictum, “First, do no harm,” is usefully carried over by Neumann into the SD arena, where we all know the dangers of the hasty Band-Aid and its extreme manifestation, the one-line-patch.5 Incidentally, Neumann refers to the nonholistic “patch-and-pray” debugging method, inviting the question as to which God or gods are to be besought by the unprincipled. We do know that the official Hippocratic Oath is “sworn by” Apollo (CTO), his son Asclepius (general practitioner), and Asclepius’s daughters Hygieia (rubber-gloved prevention) and Panacea (holistic healing). A divine family, each a specialist with top qualifications. In my own prayers I add the other four daughters: Iaso (long-term recuperation), Aceso (antibiotics), Aglaea (cosmetic surgery), and Meditrina (longevity/cryogenics). You can’t be too careful.
Elsewhere, I have devised suitable prayers (and sacrifices) to ensure success in diverse SD and IT projects. Suffice it to mention that Jupiter attracts special entreaties when faced with I/O problems.6
How helpful is Neumann’s dichotomy in correcting the NHS setbacks? There’s no doubt that the multibillion-dollar budget attracted the highest-heeled consultants, well versed in all the best practices of SE (software engineering), but not, apparently, consultants from CSI via SRI International, able to translate wish lists into timely, within-budget working systems with happy users. Nobody at the NHS NPfIT level of expertise set out to avoid all the goodies listed under holistic SD. Every single item, from “pervasive” use of requirements and specifications through to design for maintainability, would be noddingly ticked in the YES box.
A unified, central database with reliable, up-to-date information and secure access controls is a major challenge for any industry, but for a national health service it’s a matter of life and death allowing no room for compromise. Yet, scaling up from relatively trivial local trials to a national, integrated network has proved intractable. We are able to pontificate about decomposable architectures but unable to cope when the modules need to mesh.
The challenge set in my January/February 2008 column was to find contradictory pairs of aphorisms. The trigger example was “More hands make light work” in contrast to “Too many cooks spoil the broth.” The winner is Joseph M. Perret, who submits “Absence makes the heart grow fonder,” conflicting with the unromantic but, alas, realistic “Out of sight, out of mind.” I pause to note that the latter is often cited as an early MT (machine translation) fiasco. It is said, and hard to refute, that this saying was submitted to English-to-Russian then Russian-to-English MT programs, producing the phrase “invisible idiot.”
Perret clinches his victory with the problematic pair: “Mother knows best” and “Father knows best.” He defends this as a true contradiction, claiming that the intersection of his parents’ “wisdoms” was indeed the empty set. I suppose the trendy plural is knowledge sets! In which case, I see a larger Venn diagram for my own immediate family. They’ve joked about my grandfatherly omniscience ever since I told them that I failed in the papal job application by being overqualified in infallibility. Last Christmas they gave me a T-shirt saying, “Forget Google—Ask Stan!”
Next column: L’Affaire Ledin continues. Should we teach the innards of malware? Your views solicited.
STAN KELLY-BOOTLE (http://www.feniks.com/skb/; http://www.sarcheck.com), born in Liverpool, England, read pure mathematics at Cambridge in the 1950s before tackling the impurities of computer science on the pioneering EDSAC I. His many books include The Devil’s DP Dictionary (McGraw-Hill, 1981), Understanding Unix (Sybex, 1994), and the recent e-book Computer Language—The Stan Kelly-Bootle Reader. Software Development Magazine named him as the first recipient of the new annual Stan Kelly-Bootle Eclectech Award for his “lifetime achievements in technology and letters.” Neither Nobel nor Turing achieved such prized eponymous recognition. Under his nom-de-folk, Stan Kelly, he has enjoyed a parallel career as a singer and songwriter. He can be reached at firstname.lastname@example.org.
Originally published in Queue vol. 6, no. 3—
see this item in the ACM Digital Library
Ivar Jacobson, Ian Spence, Ed Seidewitz - Industrial Scale Agile - from Craft to Engineering
Essence is instrumental in moving software development toward a true engineering discipline.
Andre Medeiros - Dynamics of Change: Why Reactivity Matters
Tame the dynamics of change by centralizing each concern in its own module.
Brendan Gregg - The Flame Graph
This visualization of software execution is a new necessity for performance profiling and debugging.
Ivar Jacobson, Ian Spence, Brian Kerr - Use-Case 2.0
The Hub of Software Development