Fog Creek Software
Discussion Board

What do we do about a mature software industry??

I have a question related to the software bloat vs. Moore’s law comments, and various things on Slashdot and other places. I know this is long, but…
I think that the software and technology industries are becoming mature.  The times of explosive growth are over.
First, ask yourself “why upgrade?”  Do you need more features in Excel or Word? Sure, there are improvements and fixes, but nothing revolutionary.
Second, the big players are very aware of this. Why else would Microsoft try to sell the Xbox, or all of their new licensing shenanigans? Once software has matured, there is less and less incentive to upgrade, especially if you have to pay.
Third, we know how to do hard things. Managing big projects, building big, fast, small, systems are all becoming known. The methods are not perfect and not used everywhere, but they are out there.
History gives us examples. I am remembering an article about using electricity in factories instead of steam. It was a boom business to sell motors, controllers and equipment. The early adopters had a completive advantage. Everyone started doing it, and once everyone had electrified his or her factory, it was no longer an advantage. Once the technology was mature, all the little players went out of business, leaving a few companies. This is what is happening now in IT and companies like Cisco, Lucent, and others. All are seeing less and less growth?
So, if you assume the tech industry beginning to mature, how do we make money in the future? If you were to create a startup, what would you do or sell?  As a software engineer, what is the next big thing? What skill should I be putting in my bag of tricks to use in the next decade?

Doug Withau
Thursday, December 6, 2001

Use it.

Dorothy La Hughes
Thursday, December 6, 2001

I think we are idiots if we didn't anticipate it. After all, software doesn't wear out, like cars do, etc.

I think the normal strategies still apply: be better. I have a number of pieces of software that I'd like, but haven't found. Some of them I've begun writing myself, so high is my frustration.

If you have the skill and talent availible, use it. Do something. I haven't gotten the feeling from Joel that Fog Creek is hurting for customers. What you are describing is the 1) biggest companies (microsoft, etc), and 2) the BEST companies. The mediocre ones could get venture capital for vague business plans about flinging digital dog poo or some such similar nonsense, back during the great dot-com fad. Now we have merely returned to reality. This is much much more near business as usual.

Thursday, December 6, 2001

I think there's a basic mistake here: thinking of "software" as a single industry.

Point-and-click GUIs may be mature. Office suites may be mature. (In the sense that there are few compelling new features remaining to be added).

But this discussion pops up every few years. DOS 5.0 was seen as mature as well, with no room left for competition in the OS or OS utility markets. Then came Windows. And it would be easy to add other examples to this list.

The point being: we'll keep finding new ways to assemble 1s and 0s. And like VisiCalc or NetScape, some of these will suddenly spark a flurry of competition and growth.

Mike Gunderloy
Friday, December 7, 2001

The software industries are nowhere near mature relative to other industries such as those in manufacturing.  Very, very little software exists today which is so robust that you can install it and run it forever.  Software cannot be guaranteed to work, yet.  Because of that, software is largely supervised by people, checking what it produces all along the way.

Consider Craftsman Tools.  All sorts of tools, including wrenches, pliers, screwdrivers, hammers, pneumatic tools, power tools, etc., etc., all guaranteed forever.  If you can break one, they'll replace it.  Tools they made a hundred years ago are still being used.

There's no software equivalent for this.  Typical software cannot be relied upon for more than a few years.  There are very basic algorithms, such as Quicksort, which will always perform as specified in a nice hardware-independent way, but (1) you still have to go through the effort of porting it to every hardware platform, because the semantics of a given sequence of machine code differs from instruction set to instruction set, and (2) the Quicksort algorithm, as well as any other mature algorithm, needs hooks to higher-level software, and those hooks haven't been made very universal - there's different hooks for every programming language.  So you can't stick these low-level algorithms together like Legos or Tinkertoys.  What's more, it's possible to stick them together incorrectly.

Until software can be guaranteed reliable for decades, if not forever, I would not consider the software industry to be mature.  That in turn might not happen until computer hardware has matured.  Chip design keeps advancing.  People keep coming up with better ways to architecture a computer system, which has impacts how software is written, even though algorithm science does its best to provide ways of analyzing software separately from the hardware it runs on.

The good news is that someday this will change.  More good news is that in the meantime, computers keep improving, in this insanely great manner.  I mean, damn, I was playing Pong on an Atari clone just twenty years ago.

Paul Brinkley
Friday, December 7, 2001

I agree that it is becoming more difficult to write software that will appeal to a single large audience.
I think the biggest driver for software innovation is not the software itself but the organizations that require it. I cannot see a time when all software is purchased 'off the shelf'. Different organisations will always have requirements that differ from competitors, requiring different interfaces to different systems etc. So while it may be true that the need to develop yet another word processor, or spreadsheet may diminish. As business and industry becomes more diverse the need for more specialized software increases.

Tony McConnell
Friday, December 7, 2001

I agree with Paul Brinkley that software industry is not mature on the production side, relative to other industries. He compared products of these industries, I will compare methods.

There is an interesting web site when you can read :

" Hiring the right people is extremely crucial to Fog Creek Software. [...] The trick is telling the difference between the superstars and the maybes, because at Fog Creek Software we only hire the superstars. [...]"

I could have found several articles claiming that to succeed in the software industry, you need briliant programmers. And I am afraid it is true. Now does this scheme look like a mature industry ?

No it did not. It looks like the days you needed a talented artisan to make a shoe.

The "maybes" of Joël are the Pakistani children of the software industry. I think this industry will be mature on the production side when you will be able to employ them to build successfull sofware.

Sylvain Quendez
Friday, December 14, 2001

Mr. Quendez has an interesting point, but I think he makes a false analogy when he says:

"... Now does this scheme look like a mature industry?

"No it did not. It looks like the days you needed a talented artisan to make a shoe...

In traditional industries, production is a significant, per-unit event that is distinct from design or engineering.

In software, production is a non-event.  When you sell a new copy, you do not need to have one on the shelves, and you do not need to fire up the assembly line to produce another one.  This is why software has 100% marginal profits.

So, the work that programmers do in the software industry is more analagous to the work that materials engineers, physiologists and product designers do at Nike.  Are these people highly skilled?  Yes.  Is the shoe industry likely to move further to a point where these people are replaced by non-skilled labor?  No.

There is no such thing as "production" in the software business.

Matt Liggett
Monday, December 17, 2001

You raise a valid point, Matt.  Software does have its differences from physical goods.  However, you might notice that software isn't duplicated for free in practice in many cases.

Like feet, everyone's computer is slightly different, has different things running on it, and everyone has slightly different needs.  The result are DBMSes, spreadsheets, word processors, CAD designers, etc. that are enormously configurable.  This is so something useful can be made from the software by tweaking it by hand.

In the shoe industry, you can have shoes specially made to fit your feet, or you can do as most people do and buy off-the-shelf standard sizes.  In software, some things can be bought and work right out of the box.  Other things come as a kit, and if you have just enough knowledge and courage, you can assemble it yourself.  Other things are simply so horridly complex that you have no choice but to hire a professional software-cobbler.  The thing you're making copies of for free is actually just the kit, and there's still a lot of skilled labor required to finish it.

One could argue that the industry is still mature as a whole despite these hyper-complex programs.  However, I'm talking about some pretty common things, like database software, device drivers, games, and so on.  Anyone can put a sofa, coffee table, bookshelf, TV, and a few plants in a room and have it all hang together well.  But software is relatively fragile and super-sensitive to its surroundings; as if you put a fern in the corner and suddenly the coffee table flips over.

I would consider the software industry to have matured when someone like my mom could install and use software to tape TV shows and record phone numbers and recipes, and have this work at least 90% of the time.

Paul Brinkley
Tuesday, December 18, 2001

Your mom can manage phone numbers and recipes on a PalmPilot, and can record TV on a TiVo.

The industry is mature.

Daniel Boyd
Wednesday, December 19, 2001

*  Recent Topics

*  Fog Creek Home