Skip to content

Instantly share code, notes, and snippets.

@sleepyfox
Last active June 25, 2019 15:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sleepyfox/fa753ce42a782495dd5a9ff3dcedd5c3 to your computer and use it in GitHub Desktop.
Save sleepyfox/fa753ce42a782495dd5a9ff3dcedd5c3 to your computer and use it in GitHub Desktop.

How many monkeys do you have?

author: @sleepyfox date: 06-Apr-2011

Preamble: A colleague yammered today that he was off to see OutSystems® tomorrow, and wondered whether we had any comments. For the uninitiated: OutSystems® make a 4GL-style tool called agileplatform™ that reminds me very much of PowerBuilder or Visual Basic from the Good Olde Tymes©.

I've often talked over the past couple of years of the devaluation of the 'Agile' currency, in no small part due to the Scrum Alliance's commercial model and the programme that has been put in place to monetise the Certified ScrumMaster™ title. To quote one well known super-villain1:

I'll sell my inventions so that everyone can have powers. Everyone can be super! And when everyone's super... [chuckles evilly] no one will be!

Now in an ideal world, everyone would be a great Agile developer, but a one or two-day course does not make one Agile, nor does stand-ups, iterations or story cards. This combination of primitive understanding with the mimicking of Agile's external forms is a form of Cargo Cult2, which has become so widespread that now only a small minority actually know what it means to be Agile. This devaluation is why I don't refer to what I do as 'Agile' anymore, because it is not only effectively meaningless, but also 'tarnished' with the brush of failure in much the same way as the TPS 'Lean' practices have been.

If we look at the core of what it means to be Agile, the Agile Manifesto3, we see that:

"We value individuals and interactions over processes and tools"

The headline item! Now I have no idea about whether agileplatform™ is actually a good tool or not, but I do know from perusing their website that:

  • It is being sold to budget-holders as a mechanism to deliver faster, at lower cost
  • It is being marketed as 'Agile'
  • It is very glossy
  • It allows us to "Develop an app in 4 min with minimal training" (their words)

This is the Visual Basic (or PowerBuilder, for those of us who remember that far back) approach: dumb down the application development process to the point where you can employ a monkey to do it.

Of course, those of us who were around back then will remember just how much of a pain VB/VBA development was once your problem started to get just a little bit hairy or strayed just outside the comfortable boundaries of what VB allowed you to easily do. The reason that graphical programming environments haven't replaced text-based ones is quite simple:

Human Language

We humans communicate with spoken language. When we have no access to spoken language, we communicate with the written word. We have been doing this for well over six thousand years. Let that sink in for a moment...

Humans do not communicate in sign language, except when other constraints (physical disability, environmental inhibitors) force us to. We do not naturally communicate by drawing pictures and diagrams (no, Kanji doesn't count, it's just text in a different package). Where we do communicate with pictures, we need text to interpret, disambiguate or elucidate the pictures (e.g. viewing notes under pictures in galleries). Human language, the spoken and written word is what we are wired to understand. Until computers can reliably understand the spoken word, the written word is how we will best communicate with computers.

I don't need to look at academic studies to know that using the keyboard is faster than using a mouse and WIMP interface, my own experience and that of many thousands of highly-skilled professional developers around the world corroborates this fact. So if writing is a faster, and less error-prone way to communicate, then why the quest for the Holy Grail of programming in pictures and graphical IDEs?

Children learn first with pictures. So do monkeys. The obsession with graphical IDEs is all about dumbing-down programming (some, like Microsoft, would say 'democratisation') in an attempt to make the highly complex and error-prone task of software development amenable to the kind of management practise that throws ever more resources at the task. This is about the commoditisation of our craft, the creation of 'software factories' - nothing more than William Blake's 'Dark Satanic Mills' - and the destruction of local industry and the enslavement of the workforce.

Notting Hill Socialism aside, this is directly in contravention to: a) Agile principles, which value "individuals ... over process or tools", and b) the principle of software development as a skilled profession, let alone the lofty heights of 'Computer Science' or 'Software Engineering'!

So just like children with picture books, graphical programming is perhaps an good way to learn as a beginner, but like picture books is a training tool that is quickly outgrown.

However, oppressive management would rather that software developers are kept dumb and cheap, dis-empowered and limited to being 'plug-compatible units' (as IBM famously referred to us in an advertising campaign). This is not a future which bodes well for either the professional software developer, nor industry or the global economy as a whole. The inflection point at which software costs started outstripping hardware costs happened in the 1970s, software, and the intellectual capital encompassed by an organisation's knowledge workers are the true wealth of the 3rd millennium's global economic engine, without our ability to innovate and rapidly deliver information-processing solutions, businesses falter and wither.

As such, it is important that we software developers recognise that we are not factory workers, we are highly skilled professionals, and our craft is one at least as dynamic and demanding as the legal and medical professions. If we settle for being the lowest common denominator, then we will have sealed our own fate as the wage-slaves of the new millennium. To that end I espouse not some kind of neo-Luddism, but rather a celebration of what makes us special: the ability to reason and analyse, to innovate, to program with skill and care, and the ability to continuously learn and improve, embracing the Agile principles and contributing to our own and other's welfare through Open Source contributions. In this way we will always rise above the sea of mediocrity, and hold our heads proudly aloft as the adventurers of the new digital frontier!

"A person needs new experiences. They jar something deep inside, allowing him to grow. Without change something sleeps inside us, and seldom awakens... The sleeper must awaken." -- Duke Leo Atreides4

Postscript

The title for this post comes from an old Spitting Image scene, in which Jeffrey Archer is being interviewed against a backdrop of lots of chutes from floor to ceiling down which sheets of type-written paper are rapidly dropping into trays.

Interviewer: "So Mr. Archer, tell us about your new book..."
J. Archer: "Well, it is said that a million monkeys banging away at a million typewriters will eventually reproduce the works of Shakespeare."
Interviewer: "Quite so; and how many monkeys do you have Mr. Archer?"
J. Archer: "Just the one," (looks to ceiling) "Keep typing you little bastard!"

References

Footnotes

  1. "The Incredibles", Pixar, 2004 - source of my opening quote

  2. "Cargo Cult Science", Commencement address, California Institute of Technology, Richard Feynman, 1974

  3. "The Agile Manifesto", 'The gang of 17', Snowbird, Utah, 2001

  4. "Dune", Frank Herbert, 1965 - source of my closing quote

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment