lesscode.org


'Then they laugh at you...' Archives

“Enterprise Software” is a social phenomenon  4

Cat.: Then they laugh at you...
09. August 2005

“Enterprise software” is a social, not technical, phenomenon, is a good write-up on what the “enterprise” part of “enterprise software” means. In it, Kragen Sitaker makes the case that the “enterprise” classification is based purely on the social and business aspects of a product and not on technical qualities:

Third, “enterprise software” is surrounded by consultants who will sell you the service of making it work, as explained above. In some cases, these ecosystems of consultants are competent and highly skilled. In other cases, such as the case of Java, many of them are spectacularly incompetent, vociferous in their ignorance, and prone to attack competing systems. This results directly from the sales process for “enterprise software,” in which expert persuaders gull technically incompetent managers into adopting the software. Managers who aren’t technically well-informed enough to select the software in the first place will also not be well-informed enough to distinguish between competent consultants and incompetent consultants, so both competent and incompetent consultants will flourish — but the competent ones will eventually get sick of it and go elsewhere.

I didn’t really understand this until KnowNow, the startup where I worked, got turned into an enterprise software company by its VCs and management; although I had previously had the opportunity to observe most of the pieces of the puzzle, I had clung to the idea that “enterprise software” was technically better in some way from the software I was used to using. It turns out that the differences are entirely social, not technical, and one of the major differences is that “enterprise software” is under much less pressure to have any technical merit.

This was an elaboration of Kragen’s comments on a post by Justin Gehtland entitled Rails: What would it take?, which includes an excellent comment thread describing real and perceived issues with using Rails (and LAMP in general) in enterprise environments.

I’ve received a small bit of flak from F/OSS purists for displaying excitement around stuff like Dell supporting LAMP and Pfizer going with ActiveGrid. The canonical push-back seems to be that LAMP treading the enterprise path could lead to it adopting the poor technical qualities we associate with many enterprise software packages. My feeling is that recent support for LAMP in the enterprise has come about due to a few rare individuals who have equal experience in both the social game of “enterprise software” and the technical qualities of the LAMP/friends stack.

While I find both the social and technological aspects of “enterprise software” equally disturbing, these companies are showing that you can swap good technology in without necessarily having to re-organize social practices, and that’s important. This makes it possible to take a divide and conquer style approach to infiltrating business IT. You have your technology front: ActiveGrid, SourceLabs, Redhat, Zend, etc. and you have your social front: Weblogs, Cluetrain, F/OSS style peer collaboration, etc. It’s just like Korea.

Don’t take your memes to town  9

Cat.: Then they laugh at you..., Theory
07. August 2005

One of the most interesting characteristics of the Web is that it doesn’t version. The Web is a bona-fide computing ecosystem, and is along with email, one of the killer applications of another system, the Internet, itself designed for high-survivability and to deal with massive physical infrastructure damage (it’s literally nuke-proof). The Web evolves as does the Internet it runs on. Versioning for the Web makes no sense whatsoever.

So what’s this Web 2.0 thing then? Tim O’Reilly feels that it’s a valuable meme:

The reason that the term ‘Web 2.0’ has been bandied about so much since Dale Dougherty came up with it a year and a half ago in a conference planning session (leading to our Web 2.0 Conference) is because it does capture the widespread sense that there’s something qualitatively different about today’s web.

Web 2.0 is the Web for Mr. Safe and his management team. This helps bring shrinkwrap software, advertiser, broadcast and publish media people bringing to the Web, as it actually is, with enough of their old concepts out of their comfort zone. It does however choose to frame the Web in terms of the old models. Given the history of what hapens when old ideas knock up against the Web, it’s arguably risky then, for Mr Safe and his team to actually believe it fully. Sometimes you have to take a phenomenom on its own terms rather than it terms of your existing paradigm . Most recently to see what happens when the old ways don’t carry over, take at look at the IT industry’s Web Services efforts.

Anyone that thinks that the Web is something that evolves according to a release cycle fundamentally doesn’t understand it. If you could version the Web it wouldn’t work properly – support for versioning would be a bug. I think this is why Tim Bray doesn’t like Web 2.0, which is where this recent conversation began:

It’s not only vacuous marketing hype, it can’t possibly be right.

It’s a broken memeof sorts, perhaps one only a dinosaur could enjoy. Other developers like Dare Obasanjo are working through their transition from the Web as place to run a websites to the Web as a place to run platforms. Here’s Obasanjo responding to Tim O’Reilly’s take on Web 2.0:

Reading stuff like Tim O’Reilly’s just leaves me scratching my head. I completely grok the simple concept that folks like me at MSN are no longer just in the business of building web sites, we are building web platforms. Our users are no longer just people interacting with our web sites via Firefox or IE.

But even that idea – web platforms – seems dysfunctional. In the software industry a platform is a chunk of software infrastructure other people innovate on. It’s the closest the industry has ever had to a toll-booth. You build it and they will come, and pay to drive over it – how cool is that? Unfortunately, ‘web platforms’ are based on the collective hallucination that the Web ofers a viable means to support such API based architectural franchises. That being something of a cargo cult suggests it’s unlikely to work. Future franchises will be built around access to data not access to software. As with versioning, if the Web were an operating system or a platform, we’d need to file a bug report against it. Heck, it’s turtles all the way down – being able to file a bug report would be a bug.

Ian Davis meanwhile get closer by describing Web 2.0 as a state of mind:

Here’s my take on it: Web 2.0 is an attitude not a technology. It’s about enabling and encouraging participation through open applications and services. By open I mean technically open with appropriate APIs but also, more importantly, socially open, with rights granted to use the content in new and exciting contexts.

So it seems while the term Web 2.0 might miss the mark for technical types, it has broader value. Here’s Stephen O’Grady’s take on it (from the comments):

Web 2.0 is similar to that of Ajax. in and of itself it’s probably inaccurate, non-descriptive and misses the point. And yet, I’m favor of it. why? For two reasons: 1.) it’s propagated widely enough to have some widespread recognition, and 2.) it neatly packages everything up for the non-digerati who, after all, is the majority of the population.

What’s interesting in all this, is that while the toolsets and technologies are surely getting better, core Web architecture isn’t changing that much. What’s happening is that people’s ability to innovate is improving and that seems to come about by accepting Web thinking as much as any recent improvement in the toolchain. In short, instead of trying to make the Web a good place for your business or technology to function, adapt your business or technology to function well on the Web.

What Business Can Learn From Open Source  3

Cat.: Then they laugh at you...
04. August 2005

Paul Graham:

I can imagine managers at this point saying: what is this guy talking about? What good does it do me to know that my programmers would be more productive working at home on their own projects? I need their asses in here working on version 3.2 of our software, or we’re never going to make the release date.

And it’s true, the benefit that specific manager could derive from the forces I’ve described is near zero. When I say business can learn from open source, I don’t mean any specific business can. I mean business can learn about new conditions the same way a gene pool does. I’m not claiming companies can get smarter, just that dumb ones will die.

Perhaps I should just shut this blog down now?

Complexity, Bureaucracy, Fairness  7

Cat.: First they ignore you.., Then they laugh at you..., Then they fight you...
30. July 2005

The starting line for the first Oklahoma Land Rush, April 22, 1889. (Library of Congress)

Tantek Çelik: “The namespace problem? The short answer is that it’s nothing more than academic chicken-littling. The internet has worked just fine (at many levels, with many applications, specifications) without namespaces. Namespaces try to solve a 1% problem while burdening the 99%, which is always bad economics.”

I disagree. Namespaces can sometimes be a technical hassle, but I’ve noticed that people who rail against them are usually squatting on a set of short strings. Would it be OK for Microsoft to define the meaning of the word “friend?”

Dan Connolly: “There is a time and a place for just using short strings, but since short strings are scarce resources shared by the global community, fair and open processes should be used to manage them.”

If RSS didn’t restrict extensions to namespaced elements, we would have a very ugly scene on our hands by this time. At what point does technical convenience trump social concerns? In this case, RSS favors a little technical complexity in return for less bureacracy and more fairness. Maybe morecode is occasionally worth it.

Web Thinking (with bonus Feynman quotes)  7

Cat.: Then they laugh at you...
25. July 2005

If you haven’t listened to Adam Bosworth’s Database Requirements in the Age of Scalable Services, you need to right away. The 45 minute run length seems to be limiting the amount of listenership, which is a real shame because he makes some really great points in the talk.

It’s not really about databases the way you’re thinking it is, it’s about applying the principles that make the web work to the very generic task of exposing, modifying, and querying data. Bosworth is thinking waaaay out of the box here, claiming that RSS and Atom have the potential to do for machine readable data what HTML has done for human readable content. It seems to be an elaboration and progress report on the thinking he demonstrated in his ISCOC04 Talk, which was cited heavily throughout the blogosphere.

But even if you don’t care about databases or Atom/RSS (let’s say you build loan approval or payroll processing applications) you can still get a lot from this talk by simply observing the style of thinking Adam demonstrates. This is exactly what I’m trying to encourage with Motherhood and Apple Pie and I’d like to use Adam’s talk to illustrate the different ways you can think about the web because Bosworth’s talk is a perfect example of The Right Way.

The first way of thinking about the web is to take the design you already have, in this case relational databases, and just put it on internet pipes (i.e. use web protocol as a conduit for what you’re already doing). If Bosworth would have taken this approach he would have been talking about creating an XML representation for SQL queries and tabular data, how to hack in transaction management and isolation levels, and other stuff like that.

As it were, this is not even close to what he talks about and the reason is because that style of thinking does not work.

I’m reminded of Richard Feynman’s excellent Cargo Cult Science:

In the South Seas there is a cargo cult of people. During the war they saw airplanes with lots of good materials, and they want the same thing to happen now. So they’ve arranged to make things like runways, to put fires along the sides of the runways, to make a wooden hut for a man to sit in, with two wooden pieces on his head to headphones and bars of bamboo sticking out like antennas–he’s the controller–and they wait for the airplanes to land. They’re doing everything right. The form is perfect. It looks exactly the way it looked before. But it doesn’t work. No airplanes land. So I call these things cargo cult science, because they follow all the apparent precepts and forms of scientific investigation, but they’re missing something essential, because the planes don’t land.

Business IT (as well as major media) are the South Seas islanders of the web. They see the types of things the web is capable of and they try to replicate them using their existing materials, but the planes don’t land. You can observe this happening right now in a vast number of cases including “Web” Services (WS-* specifically), statically typed languages, Active X Controls, Java Applets, XForms, and this website (look closely).

I believe the problem to be two-fold:

  1. The great majority of experience with systems was not had with the constraints of the web in place. This makes conclusions drawn from observation of existing working systems, as well as recommendations based on them, extremely unreliable.

  2. Very few people are aware of problem number 1 (Adam Bosworth is one them).

It’s interesting that many of the individuals I can think of that understand this situation seemed to have had to learn it the hard way (no offense meant to anyone in this list). Sam Ruby participated heavily in SOAP activity at Apache. Mark Baker’s username is always distobj (Distributed Object) because he was a big CORBA head. Tim Bray had a hand in XML Namespaces and watched, if not participated in, W3C XML Schema. Peter Yared was CTO of Sun Microsystems’ Application Server Division. I worked on XForms (among other things).

Adam Bosworth actually describes this process of being slammed in the face with the realities of the web in his talk:

In 1995 I woke up from a sort-of Microsoft induced narcoleptic coma and realized there was this thing called “The Web,” and got really excited about it.

How did the web happen? People take it for granted. You just assume that there’s always been the web. You know, in the beginning there was the web and the web was good and so on but that actually isn’t true. When Tim Berners-Lee came out with HTTP and HTML it turned out that he kind of hit a perfect storm of efficiency. He made something really simple and because it was really simple, virtually any P-programmer, by which I mean Perl, Python, and PHP, could generate web content. That was a heck of a lot easier than building on those, for example, really cool looking Mono apps that we just saw. Building a really simple form that says “here’s a list of the tasks that you have due today” was something that virtually anyone who could think could put up on the screen.

What I like to suggest to people coming from a more traditional background in IT is that there are systems that evolved under the constraints of the web and their design reflects that. Once you’ve accepted that the previous statement is factual, you are forced to draw one of two possible conclusions:

  1. Systems that were designed through observation of the web and/or in adherence to the core principles of the web must be more suitable to the web than those that were not.

  2. Systems that were designed through observation of the web and/or in adherence to the core principles of the web must have been designed by monkeys with little understanding of building systems in the first place.

It is these second types that bother me.

UPDATE: I forget to mention that Rams took notes on the talk.