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 Scrum Master™ title. To quote one well known super-villain:
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 Cult, 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 Manifesto, 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
- "Develop an app in 4 min with minimal training"!
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 more (code) monkeys to throw at the task.
Of course, those of us who were around back then will remember just how much of a pain VB or 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 in spoken language. When we have no access to spoken language, we communicate with the written word. We have been doing this for 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 symbols and graphical IDEs?
Children learn first with pictures. So do monkeys. The obsession with graphical IDEs is all about dumbing-down programming (some 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. Socialism aside, this is directly in contravention to:
- Agile principles, which value "individuals ... over process or tools", and
- the principle of software development as a skilled profession (not even considering the lofty heights of 'computer science' or 'software engineering')
So just like children with picture books, graphical programming is an excellent 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, disempowered and limited to being 'plug-compatible units' (as IBM famously referred to us). 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 1970's, software, and the intellectual capital encompassed by an organisation's knowledge workers are the true wealth of the 3rd millenium'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 millenium. 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 Atreides
Thanks:
1. David Green for making this connection to Richard Feynmann's Caltech commencement address about Cargo Cult science.
2. Frank Herbert for 'Dune' and my closing quote.
0 comments:
Post a Comment