In a recent WinDevPro Update, I discussed ways to increase developer value in what's shaping up to be a less than ideal market. But when it comes to web development, we also need to ensure that our web applications elicit the best customer responses and experiences so we can ensure our overall business sucess.
Creating Websites Designed for Customer Interaction
I'll admit that for the longest time I've been leery and even snobbily hostile towards the use of the term Web 2.0. Maybe that's because I kept hearing that web applications were somehow going to replace thick-clients as a way of doing everything. And given how hard it can be to get something as simple as labels to print correctly from a web application or how much damage a single fool with a back-hoe can do against a DS3, I'm skeptical of the web's ability to replace rich, fat-client, applications—even though you won't find anyone who loves the web as an application development platform than I do.
Recently I've started noticing Web 2.0 being used to label a new approach that's focused on addressing business failures associated with traditional web applications. This flavor of Web 2.0 espouses business approaches more in line with those espoused by viral marketingand customer evangelization advocates. I find this new business-oriented approach very appealing. Better yet, this approach is becoming solid enough that it's becoming the focus of seminars designed to teach businesses about the actual benefits of Web 2.0.
Not Your Daddy’s "If You Build It They Will Come" Approach
What I love most about this new approach that redefines the meaning of Web 2.0 is that it rejects the old model of "If you build it they will come,” saying that approach just didn't work. In other words, simply making information available isn't enough, you need reader interaction, passion, and community to make your products and solutions more viable in today's web business place. Actually, truth is, we've always needed that, but somehow we lost sight of it during the information age.
And, and much as it pains me to even talk about it, I've got to bring up Facebook. Mostly because I did such a great job of avoiding it for so incredibly long despite all the buzz and chatter. When I finally signed up I wasn't all that impressed by the content (who knows, maybe I'm just anti-social at heart), but I was blown away by how compelling the sign-up and registration process was. It was easily one of the cleanest user experiences that I've had in a long time, and it was obvious to see that the site had been specifically engineered to entice me to keep interacting and volunteering information that would not only build my profile and increase my experience with the site, but which would also increase the value of the site by letting me help define and validate semantic relationships.
Contrast that with something like Classmates.com, for example, and it becomes obvious why Facebook is boasting that it's now the 4th most-trafficked website in the world. Think, however, what kinds of success you'd have in your own field if you were able to generate a similar kind of user interaction: One that compelled users to keep working with the site and to eagerly attempt to enlist their associates. Granted, you're not building Facebook (or LinkedIn, which I happen to like a bit better), but is your user experience more like Classmates.com or Facebook in terms of how you let your end-users interact with the information that you're presenting for them to interact with?
Rethinking Customer Engagement
Of course, just throwing out a bunch of new features or adding a bunch of new technologies isn't enough to turn your site into a Web 2.0 site. Or, if it is, that's not enough to get you the success that this new approach to Web 2.0 espouses. As a case in point, before I learned this new way of thinking about Web 2.0, I spent a good deal of time making sure that people could leave comments about the free videos that I offer on www.sqlservervideos.com My expectation was that I'd get some feedback telling me what viewers liked and didn't like. My hope was that this functionality would also see some decent traffic, and work as a way to help build a sense of community around the resources I was offering.
But to date I've yet to receive a single comment on the site despite the fact that I've served nearly 100GB of videos. Sadly, that means that some of my expectations about how people would interact with the site were just wrong. I hope that someday that functionality will amount to something, but without some effort on my part that will never happen. I need to adjust aspects and features of the site to help enable easier and more fluid options for end-users to interact with me, if I want to keep the site growing and working. For example, maybe adding a simple feature to let people rate each video (say x/5 stars) would let people offer some feedback that I could use to help gauge user response (above and beyond merely tracking which videos are being downloaded the most). And who knows, maybe when people rate a video they'll feel a bit inclined to explain why they chose to rate it as they did, which could result in some comments left on the site.
The Benefits of Agility
For me to address these kinds of options, I'm going to need a website that's agile, and which can be easily extended and modified to either meet new needs as they arise, or to try and tease out and trouble-shoot potential interactive and growth problems. What's all this got to do with web development? Well, if you're not properly ensuring Separation of Concerns (SoC) and using unit and functional tests, you run the risk of incurring additional overhead to tweak and tune your apps.You can also run the risk of accidentally breaking working parts of your application while pursuing other parts of your site. In other words, unless you're keeping up to date on the best development techniques and approaches, you're running the risk of losing real-life agility that could be used to help increase the impact and success of your site or application.