Suppose you run a city and need to provide the people with 911 service for coordinating emergency response. Is a 911 system “an app”?
That’s a tangled ball of implicit understanding I can’t really sort out, but let’s have a try.
Maybe that sounds like a terrible question on the face of it. Perhaps I want to blow the crazy particular situation I’ve wandered into into generalized significance. (It doesn’t involve a 911 system exactly, but it seems comparable to me.)
“An app” in this question is what a lot of people might call modern software. It’s a user experience for a computing device. Mainly, now, that means software that runs on an internet server. Usually it’s a web site, usually it’s a “cloud” web service, and if it’s not a web site it’s a mobile app, and then it probably uses a web service.
These apps are largely made by small teams who don’t know what exactly they’re making, and so use agile production techniques (probably not Agile, or any methodology with a name) to experimentally discover simultaneously what problem they’re solving and how they’re solving it. The app is often paired with the startup, as they are deeply reflective of each other. As described in the best (as far as I can tell) startup how-to book, Steve Blank & Bob Dorf’s Startup Owner’s Manual, a startup is an experiment to discover a profitable business model, just as an agile project is an experiment to discover a process, concretized in software.
The web and mobile app are far from the only type of software written today. Games, for example, are probably singular in any way you can examine them. Apps ape games in a lot of ways – such as trying to absorb ludic trappings to motivate the user experience, or “gamification” – but the sorts of web things we see startups developing are most game-like in their entertaining superfluity. As Ian Bogost put in this pre-UXweek interview:
…increasingly, the things that need user experience design are also excessive. They don’t need to exist. They invent new kinds of activities that we can choose to do, and they are all a kind of entertainment.
Therefore we can understand “is a 911 system an app?” to ask, “can a 911 system be developed by the same people and processes a startup would use to make a common web app?”
I apologize for bringing you all this way when the clearly implied answer is no. I have the question at all because someone seems determined to try to build (the equivalent of) a 911 system with a startup team, either through ambitious optimism or having not examined the question at all.
As part of the team who would have to build it, it worries me someone at risk of death would depend on our fucked-up shit software.
At school the canonical hard software engineering project was the space shuttle. In the software-eats-world view, a spacecraft is a modestly networked computer system that a group of people fly to space in. It has to work: it’s an interface that makes fault-tolerant an environment that tolerates no faults. It’s a mission-critical system attached to an actual mission.
The term “software engineer” deserves derision (and I try never to use it) because these are the only systems that can hope to wear the engineering mantle. To call what app people do “engineering” is an insult to the entwined design of hardware and software to meet rigorous physical requirements that “software engineering” should mean.
As “apps” are essentially entertainment software, they are subject to much different tolerances, dictated by the market and squishy ol’ people rather than unyielding physical laws. They can be discovered experimentally, developed in concert with a business model. It would be irresponsible to try to build life-saving infrastructure the same way.
That I’ve finely honed skills for making entertainment software is a looming consequence of this argument, but that’s a different issue to consider.