Fog Creek Software
Discussion Board

One Stop Platforms vs. Market Complexity

I manage the I.S. department for a sub $100 million/year manufacturer.  Our systems are all home-grown, as are our parent company's.  I've got a good staff, and for any product of any size we've evaluated, we've decided it's cheaper and easier to roll our own than to invest in something from outside sources.

It's become apparent to me, as I try to stay on top of new technology, and plan for the next step in our system's growth, that the supposed ease and efficiency gains in new platforms are not false promises (I'm really digging servlets right now), but that they're constantly offset by the increasing complexity of the market and the competition for developer mindshare.

For J2EE, there's .NET.  For Wi-fi, there's Bluetooth.  For Oracle, there's DB2 or SQL Server or Sybase.  For NFS, there's LDAP or JNI.  For SOAP, there's XML-RPC.  The possible combinations of web servers and app servers are almost exponential.  Every silver bullet has a competitor that must be selected, accomodated, or bet against.

Add Open Source software to the mix, and there's another level of complexity.

For any single application, it's easier to develop now than it was twenty years ago because of the plethora of libraries, component systems, and feature-rich platforms.  But to develop large systems, the landscape is more complicated than it ever was, considering interoperability, choosing the right technology for scaleability and future-proofing, picking early market winners, and somehow balancing all that into a system that works well.

On top of all that, as businesses adjust to what technology can feasibly offer it, there are new vistas of software development: from MRP to ERP to CRM to SCM.

The choices have changed, but it seems that the dilemmas have stayed the same.

In short, it seems that the complexity of the software field in general is growing faster than the ability of the software industry to internalize changes and offer convenient solutions, making the job of software developers harder over time, not easier.


Justin Johnson
Tuesday, September 17, 2002

Evolutionary theory says that the parts of the animal (or system) that evolve and mutate the most rapidly are often not as functionally important as the slower or non-mutating parts. (or something like that)

Zwarm Monkey
Tuesday, September 17, 2002

So, in line with all that (neat posts), are we entering a period of expansion (rapid mutations) or contraction (consolidation)?  I'm guessing contraction.

Wednesday, September 18, 2002

I think the dot-com bubble would be a classic example of the expansionary phase: a million variations on a few ideas, followed by a rapid winnowing of the same.

It's not just the rapid introduction and disappearance of a hundred new technologies a day I'm observing.  It's that the combination of increasing expectations from businesses and consumers, the broadening of the market into new areas of software, and the massive marketing dollars being thrown on top are fueling growth in the overall complexity of the field.

I.e., can the software industry keep up with itself?

Justin Johnson
Wednesday, September 18, 2002

"can the software industry keep up with itself"

But it is the software tools industry that is driving this change.

The problems arise when companies/developers chase the latest buzzword and totally miss the point that software is supposed to solve problems. Somehow the software industy does not want to face up to the fact that tech /= software, or indeed computing. Tools/Languages will get generic, and wages will fall!

J2EE, or .Net. Who cares really (OK maybe Sun and Microsoft etc). What we have now is a "my dick is bigger than yours" shouting contest.

On the consumer front, you have the upgrade cycles.... I am running FooSoft XXXP! You need to upgrade for another £300 thank you very much.

On the hardware front, there are signs (both Intel and AMD complaining of sluggish sales on new CPUs) that people are sick of the MEGA Mhz bullshit.

The previous thread tells of NASA scrapping some project after burning through a coupl'a hundred million.

Until the companies stop buying into the next fad, and sticking with what works, and what solves their business problems, we shall see more GeeWhizz bullshit. A poster on this forum once wrote that the newer the languages get, the closer to lisp they look. (I am totally bad at paraphrasing). Lisp is over thirty years old, so not as fashionable.

It seems very few "innovations" in the software industry actually bring new things to the table.

"As long as people will accept crap, it will be financially profitable to dispense it."
- Dick Cavett

Wednesday, September 18, 2002

Well said tapiwa.  There are a lot of business forces pushing software on organizations that don't know the real costs.

On the technical side though there is a good argument around complexity.  Everything is simple if its done at the right level (harware, OS, middleware, language, framework, app).  But for historical reasons things are initially not.  People want threading, or security, or multimedia before its offered by some lower level.  So you get a lot of half-baked solutions that are really kludges.  People buy them and they become part of the legacy inertia. 

My favourite example is DOS terminate-and-stay-resident apps.  A complete hack but it was the only way to get multi-apps on DOS.  It took years and several versions of Windows for it to finally go away.

Wednesday, September 18, 2002

I have to disagree with the dot com bubble being about technology in any way. It was about greed and people thinking they could be rich without any effort. The fact that most of the companies were Internet/computer/technology companies was random. They could just have easily been genetics, oil, publishing, or Holland tulip companies.
Yes, it is hard to keep up with this industry. We should thank our lucky stars that there is competition. Every coder who has a better idea and goes for the startup opportunity should be cheered.
The alternative is boring. None of us would be in demand and the pay would be low. I would rather be a little behind on the latest products than have that happen.

Doug Withau
Wednesday, September 18, 2002

This thread is not about the dot-com bubble, at least as I read it.  It's about growing plethora of technological choices faced by customers.  Something that was ocuring before and after the dot-com stuff.

What can a purchaser of software do?  The best advice seems to be:

-avoid shiny new technologies

-avoid thrashing.  Pick a mix of software, learn it, and stick with it for several years.  Repeat.

Wednesday, September 18, 2002

Why are programmers always attracted to the newest tools & languages? Because the newer the language, the less the risk of being landed with a pile of somebody else's undcoumented c**p to maintain. Behaviour which is rewarded will be repeated...

The most productive time on any engineering project (not just software) is generally that spent understanding, simplifying, and unifying the system requirements. Behaviour which is not rewarded will be avoided...

Max Hadley
Thursday, September 19, 2002

As a coder, I can't say that the reason to "program in the hot new language Znibit and get (blah) (blah) (blah)" has anything to do with anything -- except ego, and money.

Ego:  If you're one of the first to program in "something" you're ahead of the game, and you have far less people to compete with -- your skills are against a very few.  Also, you COULD be in high demand if it becomes the new "it" buzzword... so, the reason to learn new languages is mighty intriguing.

Money: If you get in on the ground floor and actually know your stuff, and it becomes the hot-new-commodity to do development in, you're golden. YOu've been doing it since the beginning, why wouldn't YOU be the most experienced?

Now, there are rare cases where this doesn't appy -- but, it's the exception that makes the rule.  I, myself, have been doing web programming since 1993, when I was reading Adam Curry's thoughts on the original "mtv" site (which was NOT, though the domain escapes me) -- and I was doing it because I thought that it was "really cool" ... not exactly a business plan.  But, from there, I've advanced quite a bit.

My point is, most (can we take a guess at, say, 80%+/-) programmers are infectiously egotistical, and want to be thought of as, the best.  Whether that makes them more money or not, depends on their personal morals.  But they all start with the same ego-bible at the beginning.

I've rambed enough. :)

Kevin Ferlin
Thursday, September 19, 2002

*  Recent Topics

*  Fog Creek Home