I was listening to Buzz Out Loud today and one of the hosts made a reference to the '90s .com bubble and the business ideas that were prominent at the time. They were talking about the whole idea of start-ups thinking "We're not afraid to make something that fails, we'll just keep making enough different products and services that when one of them launches it will pay for the whole all of those that lost money".
I'm referring back to the time when the economy was driven by this new whacky medium called the internet and the influx of cash was such that it wasn't even expected that a company needed to be showing profit for years and years. I think we all remember.
Of course, through the lens of '07 this whole time in history looks pretty ridiculous.
At my current job I'm project managing this big web site upgrade. As a result I've been learning about all of these different software engineering methodologies like agile, scrum, extreme programming, and spiral waterfall.
For a key portion of this project we've settled on a methodology that is radically different from what many of the not-so technical people in the company are used to. Many of these folks learned software development in the course of their current jobs, where a lot of them have worked for the last 15+ years. Some of these folks even perceive what they've learned as the *right* way to do things and any other method as the *wrong* way to do things.
As a result I've been put in the situation of trying to explain to these non-technical people (of which I'm one myself) how the software development methodology we're using works and what the advantages are.
The simplest way to explain what we're doing is to say that it's incremental - meaning that the software is developed one piece at a time - and that it's iterative, meaning that the same process will happen again and again to build on the core of the most important parts of the software. The hope is that by working in this way, the software is driven by its key purpose rather than by a feature. Wikipedia has a pretty good article on the subject if you're interested in learning more.
I'm sure this seems like the most aimless post in the world so far but let me bring it back to my thought this morning... what stood out is that a key feature of the iterative approach is the practice of creating a first version of something which should result in a working piece of software, and simply throwing this first version of the software away, making use instead of the second version of the software built as your working model that you share with others. This is the beta version.
I wonder if a professional bias was exposed when these young developers ended up being the heads of these start-ups, talking to venture capitalists about the new way they work. I wonder if the worldview of a software engineer could accept and promote an idea of "we'll just keep trying stuff" more easily then someone trained in a different model.
Could the .com bubble be blamed on the acceptance of an iterative/incremental method that was merely a good idea in the wrong context?