I Don't Want To Be A Nerd!

The blog of Nicholas Paul Sheppard

Software development without coding

2014-02-04 by Nick S., tagged as education, user interfaces

I recently found myself with contradictory reactions after reading an article on "citizen developers" on the ABC's Technology & Games site. Peter Fuller writes about the potential for ordinary users to develop their own software using "application platform-as-a-service" (aPaaS) technology. This technology is supposed to allow what software engineers call "domain experts" to construct their own domain-specific software without recourse to professional analysts and developers, at least for relatively simple applications.

My first reaction was that Fuller might be making a misguided attempt to promote software development as fun and easy. This reaction was probably also influenced by hearing the assertion that maths and science ought to be "fun" in order to attract school students in another recent ABC report, which had Australia's Chief Scientist bemoaning an alleged fall in education standards. I've long wondered if such advice might be misguided: mastering mathematics, science and engineering requires substantial effort, and anyone expecting fun and games is surely kidding themselves. Mastery might be all of rewarding, interesting and useful, but it's not fun in any conventional sense. As one of my harder-partying friends observed during our undergraduate days: "I can't really call myself a hedonist; I'm studying engineering."

Upon further reflection, I began to wonder if aPaaS or similar technology might also provide an opportunity for users to take control of their computers where they are willing to make an effort, but don't have the time to turn themselves into professional software developers. Could aPaaS be one approach to the critical computing that I pondered last month?

Having not investigated any aPaaS software myself, or observed any non-developers using it, I can't say for sure which reaction comes closer to the truth. My experience with integrated development environments hasn't been encouraging: they seem to encourage even professional software developers, let alone students and amateurs, to produce lazy code that satisfies the formal syntax of the language but omits error handling, meaningful comments and other qualities of well-made software. And I'm pretty sure I've heard similar claims about non-programming developers before — mostly recently, in the form of "mash-ups" — but I'm yet to see much useful software that is actually made this way.

Most likely, though, aPaaS can be used in both modes (as can integrated development environments): careful users can use them to increase their productivity and the control that they have over their computers, while superficial observers confuse cobbling together a few lego blocks with engineering. Fuller makes a similar point with a cooking analogy: many of us can put together a satisfying meal for a few friends, but we employ professional caterers when it comes to preparing a six-course meal for a hundred guests at a big event.