If software developers ruled the world

November 4, 2008

Category: Politics, Trends Email Email    Print Print    

Yesterday I discussed the incredible benefits of open source software in terms of reducing costs for startups and promoting competition in the marketplace… but the real magic of software is the concept of abstraction, it’s when a developer can consume a service using a single stable interface regardless of how the producer chooses to implement the service behind the scenes. The multitude of choices in the software realm (compounded by the open source world) necessitates standard interfaces for these components. I wonder if other industries could also benefit from similar ideas.

Imagine if everything you bought was designed like software. Imagine if cars were built with independent and autonomous “pieces” that snap together and you could (easily) customize every aspect of your ride. Imagine if every component of a computer was mounted on a slot that slides in and out like a drawer, just slide in a new hard drive or video card like a CD. Imagine if you could increase the resolution of your television by snapping on a new chip to the back. Imagine if you could upgrade your office chair by swapping in a new standard sized cushion (with that sleep number technology!).

When you really think about it, every industry is backwards compared to software. Modular technologies improve quality, extend the life of products and increase customer satisfaction. Software development could be a model for every industry to follow. This shift in thinking could also spark a tidal wave of new manufacturing with the potential to stimulate another decade of economic growth.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...
AddThis Social Bookmark Button

11 Comments »

Comment by Fabien
2008-11-04 16:00:35

This “modular” approach proves unreliable.

On my PC, putting 4 1-GB RAM sticks didn’t work properly — I had to reduce the frequency to stop getting errors.
And I suppose everyone is used to bad software that crashes (and sometimes makes the OS crash too).

This is acceptable on a PC, because we need the flexibility and can live without the reliability.

This is not acceptable on a car, because reliability is essential.

Heck, even a wrongly customized chair can be dangerous: I can fall down and break something.

 
Comment by Keith Braithwaite
2008-11-04 16:14:28

every industry is backwards compared to software

Oh? Imagine if every once in a while and without warning you came home to find the locks on your house changed. And a note from the builder saying that your house was no longer supported and you had to buy a new one.

Imagine if your car was encumbered with a mountain of junk to ensure backwards compatibility with the Benz Motorwagen of 1885.

Meanwhile, an Edison screw lightbulb of the present day will fit and work in a receptacle of 1909, and vice versa.

Comment by point
2008-11-04 19:26:18

The lock changing example is a bit ridiculous, sorry. How many times have you come home and found windows installed linux on top of itself? Obviously when you swap a module you do it deliberately. What kind of support do you need for your locks, the interface becomes obsolete so you can’t buy new components? Oh darn, then I guess you’ll just have to replace the entire thing LIKE WE DO TODAY.

The backwards compatibility is funny. That’s why we would need “stable” interfaces, and it looks like you agree, based on your light bulb example, which proves my point.

Comment by Keith Braithwaite
2008-11-05 00:05:51

Re the locks example: how many times have you found that an API call, a service facility, a fine-grained language feature that your system relies upon has just mysteriously gone away in a later release? It’s happened to me plenty of times.

(Comments wont nest below this level)
Comment by point
2008-11-05 08:07:55

Actually not too often, but again the point here is proper design and stable interfaces. And the worst case scenario (having to re-buy the entire unit) is what we already have today for many consumer items, so what are you really losing?

 
 
 
 
Comment by point
2008-11-04 19:19:58

If you poorly design, build and test ANYTHING it will be unreliable, that’s just stating the obvious. My point here is that software _properly designed_ would allow you to REPLACE the components that don’t work well. Try doing that with your fridge. The problems you describe are mainly caused by applications that AREN’T modular. The problem with software today is mostly in the proprietary realm where you have armies of disinterested average programmers and incompetent management building things well above their heads. That’s the reason a modular approach is better! Take the best from the best and dump everything else. When I build a new webapp I don’t re-write the operating system, database and application server, that’s what I’m talking about. Read yesterday’s post.

 
Comment by jw
2008-11-05 11:10:46

Imagine if everything you bought was designed like software. Imagine if cars were built with independent and autonomous “pieces” that snap together and you could (easily) customize every aspect of your ride. Imagine if every component of a computer was mounted on a slot that slides in and out like a drawer, just slide in a new hard drive or video card like a CD. Imagine if you could increase the resolution of your television by snapping on a new chip to the back. Imagine if you could upgrade your office chair by swapping in a new standard sized cushion (with that sleep number technology!).

I don’t know where you are buying your computers, cars, chairs, but MINE are like what you have described. If I want a different engine in a car I can do it…If I want better brakes, tires, wheels, intake system, exhaust, paint, even body modifications for that car…I can get those too. If you can’t do these things yourself, you can go to a mechanic or a body shop to get them done.

If I want to plug in a new hard drive, it is not very hard to hot swap it out…or a video card. If you can’t work on your own PC, then you can go to the Geek squad or someone else to do it.

What I would guess is that you just don’t know how to work on your own PC / Car / Furniture (or are not an expert in working on them), and that is fine. The guy who just aligned my vehicle doesn’t know how to update his website. I would venture to say that the upholstery person in the yellow pages can’t update a database, but they can change out the cushioning in my chair for about anything I am willing to pay for.

Someone has to write and maintain the code.

Comment by point
2008-11-05 13:20:49

Of course you can do some maintenance on some consumer items, and even more if you spend months/years studying every detail of every technology, but that’s missing the point. When a software service is created it should be designed in such a way that consumers (software developers) can use it without needing to know how it all hangs together. If the consumer (software developer) had to hire a plumber to figure it out that would defeat the purpose because the service hasn’t made anything easier, he needs custom work done anyway. That’s expensive and limits scalability. I’m talking about designing these items with the INTENT of having ordinary consumers make these modifications. That’s a completely different mindset then assuming everyone is willing to bring in an expert. The vast majority of people just replace the computer rather than upgrade the CPU and ram even if it costs more, because it’s easier. This may increase the cost of the initial unit a bit, but if it means my fridge is divided into smaller sections that I can stack on top of one another (so I can put the freezer at the bottom, or the top, or get rid of it all together and put it on the basement) I think that’s a good tradeoff.

 
 
Comment by jw
2008-11-05 15:15:23

When a software service is created it should be designed in such a way that consumers (software developers) can use it without needing to know how it all hangs together.

Agreed. That is the whole point of a software service isn’t it?

consumers (software developers)

I’m talking about designing these items with the INTENT of having ordinary consumers make these modifications.

So, are you talking about a software service that allows consumers to modify the service itself?

This may increase the cost of the initial unit a bit, but if it means my fridge is divided into smaller sections that I can stack on top of one another (so I can put the freezer at the bottom,

You can buy separate fridge and freezers units and put them where you like. You can move around drawers and shelves within them. (BTW, they are two separate units used for two separate things. You just happened to purchase one that is a combined unit, and have given up the flexibility you have mentioned by doing so.)

The vast majority of people just replace the computer rather than upgrade the CPU and ram even if it costs more, because it’s easier.

But that is a choice they make.

You said:

Imagine if every component of a computer was mounted on a slot that slides in and out like a drawer, just slide in a new hard drive or video card like a CD.

But that is about how easy it is today to upgrade these things. A new video card is like inserting an Atari cartridge. Hard drive…two wires.

I do not disagree with your idea of software service. However, I think of it more like a utility company than what you have described here. You don’t care how the water, electric or gas gets to your home. You only care that it gets there, but once it is there it is up to the consumer to determine how, when, and where it is used.

Comment by point
2008-11-05 22:20:03

“So, are you talking about a software service that allows consumers to modify the service itself?”

No, I’m talking about allowing people to stack the services in any way they like, pick and choose. Rather than being forced to buy 17 in a bundle. And the products should be designed with the intent to simplify one-off upgrades.

“You can buy separate fridge and freezers units and put them where you like.”

No kidding? I doubt it’s like the idea in my head but if it is, that’s great!

“But that is a choice they make.”

Oh c’mon, do they really have a choice? Do you really have a choice to learn plumbing because you’ve got something stuck in the pipe? These things are not designed with the intent to simplify upgrades, you know that as well as I do.

“But that is about how easy it is today to upgrade these things.”

I have installed many videos cards, I have swapped hard drives. Yes it’s easy for me, but it’s intimidating as hell for most people. I can’t really believe you disagree with that. Changing the oil in your car is also pretty trivial but how many people do it themselves? Let’s get real for a moment. And don’t focus exclusively on computers. How upgradable is your television? What about your cell phone? Or your oven? Or your coffee machine? The problem is that these companies try to make their profits off planned obsolescence and expensive repair services. Instead, let’s pay a fraction of that upfront for a better designed product that lasts much longer because the pieces that go obsolete or defective can be replaced. I think over time, manufacturers will make more money off continuous upgrades. People won’t wait as long to make that big purchase, they will buy in increments more frequently, without the need for so much debt.

 
 
Comment by Attempt
2008-11-26 21:04:37

I absolutely agree that this would be near bliss, but not for the companies. This is like a one time deal for them, and then when they sell it, its over. No constant profit. The item will forever be repairable/customizable. There will be no reason to buy from the company anymore, unless it made item-specific customizations available to buy. But then that would defeat the purpose of open-source.

 
Name (required)
E-mail (required - never shown publicly)
URI
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.


Highest Rated