August 5th, 2014 by inflectra
When I collected my last car from the dealership, the salesman proudly showed me under the hood. The engine was tightly packed into the available space with no separately recognizable components and it was noticeably clean. Despite his apparent pride in its power, as he quoted a list of figures representing liters, horsepower and torque, all I was thinking about was getting behind the wheel and driving away.
When he finally got around to the interior I had all but forgotten that the car even had an engine. I know I am not alone in my attitude when it comes to cars for while there are those who love to get down-and-dirty with the internal workings of the internal combustion engine, most of us just want to drive it.
This is true of so many things in today’s modern world. We don’t care how an ATM works provided it gives us the money. We don’t worry about the complex machinery underneath an escalator provided we can stand still and be raised or lowered (why do most people suddenly lose their ability to step up or down when they get on an escalator?) And most of us don’t care how much code there is behind our favorite piece of software, whether it is the latest zombie ‘killing’ game or the seemingly simple and ubiquitous web-browser. Our only experience is the user interface, so for us as consumers, that’s all that matters.
We not only take for granted the interior of a product, we also pay no attention to the effort that goes into bringing a product to market in the first place. As a consumer, I don’t care that the car manufacturer had to build test facility purely to make sure the vehicle will protect me in the event of a crash. That’s just something they have to do. It’s not my problem.
In the same way, I don’t care one bit that Microsoft have to have in place an unimaginably complex configuration management process to manage all the elements of Windows and its associated programs and apps, especially now that it runs on tablets and smart phones. That’s the cost of doing business that they have to endure. While infrastructure is essential, we don’t see it as our responsibility as consumers to pay for it. But, not only should we care about infrastructure, we should be willing to pay for it as ultimately we, as consumers, feel the effects when infrastructure fails. When safely checks on a car are insufficient, lives are at risk. Millions of people are affected when GM has a serious recall, (although it is still better than the alternative.)
Of course, when we think about it, it is obvious that indeed we do pay. Discounting third party- investors and partners, commercial concerns such as Microsoft and GM have only once source of revenue: you and me – and even the investors want to be repaid from revenue collected from us. We pay for everything commercial companies do: from factory construction to advertizing and from new product research to worker cafeteria subsidies.
Agile development poses a particular problem when it comes to the provision of infrastructure. Prototypes designed to solicit early feedback from stakeholders often leave the users thinking that the product is almost finished; after all, they can see it and play with it. The fact that the internal workings are either completely missing, or faked using smoke and mirrors is lost during the excitement of seeing the user interface. It would be like being eager to drive a new SUV at a car show even though there is no engine under the hood. For vendors, it doesn’t always pay to make prototypes appear too functional.
Getting usable versions of a product quickly from early iterations of the Agile process can be problematic because so much of the infrastructure may need to be built in order to get just a basic set of functionality. The reality is often that initial iterations are able to provide nothing useful at all. But as iterations follow, less new infrastructure is required and so more functionality can be provided per iteration.
Next time you think that the car you want to buy is overpriced or the software package you would love to use is too expensive, remember all the work behind the scenes and all the elements of the software you will never see, that nevertheless have to be built and paid for, and perhaps the price won’t seem so bad after all.