The automotive industry, with its particular emphasis on efficient workflow and practices, has had a lot to teach the software world over the years. From the process of requirements, specification and design through to LEAN development practices, it is difficult to argue that we haven’t learned anything from them.
I think that there’s another practice from that industry it might be fun to adopt: the Concept Car (sometimes known as a Show or Halo Car).
These are cars where the designers and engineers have been allowed to let their imaginations run wild, and build something that shows off the limits of what’s possible. Often they’re also used to explore new technologies or ideas without having to commit to standards of production that would be required for a marketable road car.
And that’s pretty much the key point about these cars, they normally build just one or two and take them around the car and motoring shows for everybody to look at and talk about.
Obviously I’m not suggesting that we build strange and outlandish cars, and drape them in fancy lights and scantily clad people on a slowly rotating podium; but I think the idea can translate to our world.
Thus I’d like to humbly introduce my idea of the Concept Distro.
The Concept Distro would be an engineering project to allow developers and maintainers to let their imaginations run wild. It’d be released, probably to demonstrate at a major event, and would explicitly not be supported. Not even basic security support, or a bug tracker, or even answering questions about why things don’t work.
On a Concept Car, it’s entirely normal that half of the doors don’t even open; likewise in the Concept Distro, it would be entirely expected that half of the icons were just placeholders and didn’t do anything if you clicked on them.
After release, engineering effort could be focussed either on integrating the successful technologies into Linux distributions proper, or on working on the next Concept Distro for the next big event a year or two down the line.
In the early days of Ubuntu, when we had two different CDs, we had a plan to do this kind of thing with the Live CD. Since that didn’t have an installer, it could be a little more experimental and a little more risqué. It was a good place to try out Network Manager before we integrated it with the distribution proper, and the intent was that the naked people would have had even less clothing (I didn’t mind the loss of this, the male model they picked was not the prettiest of the options).
Assuming we don’t resurrect the naked people, what kinds of things would we do with the Concept Distro?
It’s a chance to make some fundamental changes without having to worry about the support or upgrade implications of them. I’d like to see what we could do by assuming that the filesystem is a single mount of ext4 on LVM on RAID, which we grow onto additional disks as they are made available.
And since we wouldn’t have to worry about partitioning, it might be interesting to look into rearranging the hierarchy. Maybe having
/Users really is better than
If we went down that route, we could throw out the traditional package manager and experiment with some new approaches. What better way to upgrade the operating system than:
cd /System bzr update
or switch to a new version with
bzr switch? It works well enough to upgrade my WordPress installation, after all.
From a technology fetishist point of view, there’s plenty to play with and try out. Would we use ALSA and dmix instead of PulseAudio? Assuming we didn’t use the Concept Distro to try out going fully volume control per application, of course. It’d be a great place to see what we can do with Upstart, udev, D-Bus, DeviceKit (replacing HAL) and other plumbing-layer components.
In the desktop library layer, the bling guys could play with Multi-Pointer X with kernel-mode setting support and a resolution independent GTK+. Rendering could be fully indirect or entirely direct GL based, depending on preference.
And for the desktop itself, the user experience and interface designers have a completely blank canvas to play with. Since it’s just a Concept Distro, one needn’t worry about the ability of users to transition to new ways of working. Instead you can see how they react to seeing new ways of working in a demonstration or talk, perform usability testing in the lab and even see how they get on in the field.
It would be a very fun and exciting project.
Unfortunately, unlike the car world, there’s not necessarily the funding for such a thing. Who would want to finance an ongoing software development project that was explicitly intended to have no users?
In the automotive world, the Concept Car from a development point of view is important since companies cannot, for example, experiment with new engine technologies and expect their customers to be able to drive them on the road. In the software world, such “lab” projects are much easier to develop in isolation and tend to remain on our own workstations.
The Concept Car can also serve as a marketing tool, it draws potential customers to your show stand and while looking at the sexy car on the stand they’re ripe for being sold a somewhat more pedestrian road car. It also aids towards customer loyalty, since you’re more likely to buy another car from a manufacturer who is showing off the most advanced concepts.
In the Linux world, while we appear to have direct competitions between the distributions, the reality is that we co-operate far more than you might expect unless you’re involved with development. A Concept Distro would need upstream work from just about everybody.
And would such a thing help convert people from Windows or Mac OS? If it would, maybe it’s a good idea after all.