Friday, February 24, 2006
The Walls of Sanity
The Wall of Hype: This seems to have calmed down a bit but it also might just be moving around. Web 2.0 hype does seem to have diminished in the face of some withering anti-hype and the hype cycle has moved more to Web 2.0-related developments like mashups and the latest round of Web 2.0 startups. Nevertheless, Web 2.0 promotion continues unabated in certain circles along with the anti-hype and if you're not following closely, you don't know what to believe:. Whether Web 2.0 is the next generation of the Web, or if it's snake oil. If it's the future of software, or just a marketing gimmick. I will give you my point of view one last time; Web 2.0 is real. And for that good reason, and some not so good ones, there is a lot of hype surrounding it.
Anything, technology-related or otherwise, is going to grab attention if it's talked about and promoted enough. This is no exception, and there are players who recognize an opportunity (or two or three) here. The hype will eventually sort itself out sooner rather than later, and like the dot-com bust, it will be 'put up or shut up' time in short order. If the whole thing doesn't survive, parts of it most certainly will, and those parts remain open to speculation at this point.
The Wall of Complexity: If you look at the Wired post above it has a particularly complex diagram in it. I actually drew that in order to create a pretty compehensive view of most of the moving parts in Web 2.0. There are a lot and it's hard to figure out where to start as a user, much less a software designer. The good news is that the good exemplars (Flickr and del.icio.us) and some of our approaches (like Ajax), actualy (sic) make it pretty obvious what you're supposed to do. But it's still very hard and what still not conveyed very well is the sense of balance and proportion required. In other words, you're not supposed to pile every single one of these Web 2.0 ingredients into the cake, bake it, and sell it to the nearest Web software giant. It doesn't work that way. There is a constant feedback loop with your users on the Web that guide you to in a close collaboration to add/remove features and capabilitgies (sic) while dynamically shaping and reshaping the product into what it needs to be at any given time.
Here is precisely where trouble lurks. Agility is a great and necessary capability and we must all move toward, if not embrace it. However, the enemies of agility are complexity and instability, both of which take many forms, and both of which can and have been successfully addressed in the past. As I have remarked previously, feedback loops that consist mostly of letting users test 'production' code hastily rushed onto sites and APIs will eventually (and probably quickly) lead to disaster.
Call me 'old school,' but I expect applications and websites that I work with to pretty much operate and look the same day-in and day-out. New features? Sure, but if you're radically changing my 'experience' every half-hour while I'm trying to get something important accomplished, I'm going to be a bit miffed if what you've pushed to your site or API interferes with or prevents what I'm trying to do or see or worse, causes all or parts of your site/API to fail. And if that continues, it will eventually drive me to one of your many competitors that will provide the level and consistency of service that I'm expecting (and, most likely, paying for).
Consider this alternative scenario: That's not counting what our developer buddy down the hallway is also pushing to our site, most likely without our knowledge. Since 'regression testing" doesn't seem to appear in the Web 2.0 lexicon (heck, 'testing' appears minimally), its a good bet that once we mash his changes with ours, our online stuff goes catatonic or takes a dirt nap until it occurs to either or both of us that the fast changes stepped on each other and/or the rest of our systems. Better go find last night's backup and pray we didn't lose another user to our competitors, and believe me, if we offer anything of significance to the community-at-large, there will be many to choose from...
The Wall of Significance. Is Web 2.0 a major new revolution in the way software is created and used? Probably. But there's a lot of stuff to learn, especially about the softer aspects of online systems like collaboration and social software. A lot of software developers, architects, and designers, more comfortable with the precise, exact parts that comprise software, are often pretty unhappy about this. Unfortunately for them, these aspects are probably here to stay, but they aren't sure. The competition for users, attention, and marketshare means you have to increasingly dangle the most effective engagement mechanisms or people will go elsewhere. And because we're human, there are few more powerful draws that building a sense of ownership and community. But in these early days, it's hard to tell if there really is a fundamental shift in first order software design, or just a passing wave of faddish affectation. Those of you who read this blog know where I stand, but it's hard for everyone to appreciate the significance of all this yet.
Well Dion, what hasn't changed a bit is that at a fundemental level, computers and networks still operate the same way they did in the past with respect to amplifying the imprecisions and mistakes humans routinely make in development, testing, and control of release to production. Ajax and web services can't help you there, my friend, and won't. What does help is a disciplined approach to all of these issues. While we have the capability to make changes on-the-fly (and looking back, always have although exercising it has been a choice dependent on circumstances), optimizing development and testing processes to shorten time-to-production and reach the ownership/community goals you seek are effective only in the context of providing consistent user experience, quality and security.
I agree that it's too early to tell whether or not we're in a total paradigm shift or a fad. I suspect at this point that it's a bit of both, and there is much more to observe and learn.