Tools for User-Centric Web Development
When developping and launching a website, there are many ways on how to manage and lead the project: using traditional waterfall development, following agile development methods, doing user-centric development, etc., all depending on what kind of project you want to do.
The waterfall model, as advised by organizations like the PMI, where development goes from requirements analysis, design, implementation, testing (validation), integration and maintenance, is best for cases where the problem is known and where the solution is also well-defined. For instance, if you want to setup a personal blog or a website with your portfolio, you are most likely to already have in mind what you want to show and what kind of content to show to your visitors. Pick a software like Wordpress, ask a php freelancer to do development for you for a week or two, and you will have your personal blog running on the Internet in the required time. The waterfall model is also very good in cases where you want to reduce risks to zero and control outcomes & resources used for the project, such as in governmental web projects, or with bigger projects in banking or insurance.
However, there are cases, when you are building a new web application for instance, where the technological solution is not yet defined or unknown, since you’re researching, developing, and testing it with live users at the same time live. This is where Agile development suits best: you build only what you need today, flexibility is preferred to the perfection of the waterfall model. The promise of agile development is that as time advances, your development team will ultimately get to the technology solution.
But what happens if the technology solution is unknown, and at the the same time, the problem (=requirements) is unknown? Agile development can’t be used here, since it assumes there’s a product owner which tells the development team what to work on next.
This is where User-Centric Web Development comes, the next step after agile development. User-Centric development (also called Customer Development Engineering) relies on getting requirements and lists of new features from users and visitors of your website.
This way of development is especially suited for those of you who are launching new web “startups”, or for the readers who already have an existing audience, but who do not know what kind of new features to focus on next. In rough economic conditions, it also insures you have a website which totally fits your users’ needs, instead of guessing of what might work for your users and what won’t. If you have an existing forum with thousands of registered members for instance, and not sure what kind of features to offer to users next, customer development engineering is the best way to do it.
Before listing tools for enabling user-centric web development, you should know first that there are conditions before being able to follow it: you should be able to develop new features very quickly, usually in less than a day, and you should have a web software which is immune to defects, such as having built-in automated tests or being able to roll-back quickly to previous “safe” versions.
Use the following tools to get feedback and work on new features for your website:
- Open an account at twitter: twitter or identi.ca is a great tool to start “conversations” with users of your website. Ask questions such as “What kind of features do you like next on our website?” or “What do you think of having this … for the website?”
- Start a product blog (you can start with wordpress), with posts discussing the future of the website. Ask readers to specifically leave a comment on the blog post, telling them that their feedback will be taken into account.
- Use polling and survey tools such as fluidsurveys, with a series of questions about future features for your websites. FluidSurveys works best here thanks to its branching/skipping features, allowing you to get separate results for different audiences
- Use split testing (A/B) software which allows you to serve different versions of the same page to visitors, and which allows you to know which color, which text copy, or layout works best for your website. Google’s website optimizer does exactly this. It’s not exactly free, but the amount of data & information you can get is well worth the price of the service.
- You can also use tools which were made exactly for user-centric development, such as UserVoice. UserVoice gives you a user forum and at the same time a small tab you can embed on your website, allowing you to gather quick feedback from users, just by embedding a single line of code in your website

UserVoice gives users a total of 10 points with which they can “vote” on features they would like to see most on the website.

Blog
Forum
Status

November 23rd, 2008 9:39 pm
Any chance you guys are going to start using a webmail that a cool webmail interface with your shared hosting. (e.g. @mail http://atmail.org/)
November 24th, 2008 10:38 am
awake, there’s Roundcube avalaible in shared hosting. it has a cool interface. check http://roundcube.net/
January 1st, 2009 12:19 pm
[...] be lean, capitalize on rapid development and user-centric development [...]
February 19th, 2009 11:21 am
Most of the time, any process is better than no process. That said, when it comes to building software success usually come from having a very solid and innovative vision defined in a cohesive way by a single architect. Software by commitee costs much more and 9 times out of 10 lands in the bit bucket before the end of beta.
What you are suggesting is to drive the entire design and development by leveraging a very large and open public commitee. That is comparable to every client in the restaurant picking one ingredient for the sauce-of-the-day, leaving the chef’s expertise out of the equation.
What is needed to improve the rate of success, quality and innovation is for companies to finally fully acknowledge the role of “visionary architect” as a fundamental driver of software projects. But it can’t be a strawman, it has to be the real deal. The same kind of person as those that nearly-single-handedly built million dollar dot coms out of a wet basement with server hardware duct-taped together. The type of person that can come up with the idea, design the interface, architect the systems, code the whole thing and put it live… with two extras – a fantastic budget and the power of delegation.
That’s how yahoo, google, facebook, digg, youtube and so on came to be innovative software that people absolutely love to use, and make billions.
February 19th, 2009 11:28 am
Hey Alex,
I totally understand what you mean. It’s important for any software project to have a visionary architect that can drive a team.
However, the point of this article is for a web application, when for instance you’re building something and you don’t know the problem to solve.
Take for instance the case of facebook, or any other startup which are experimenting new web features. The guys at Facebook don’t know what works and what users would accept. Same for Google, they have automated user feedback in their Google adwords product, which changes the probability of an ad showing up depending on the ad performance (if it has been clicked or not).
In those cases, you have to build user feedback in your software development methodology.
Of course, this doesn’t apply if you are building a website which has strict specifications, where the solutions are known, and where there is no risks. In those cases, you can follow the standard methodology
February 19th, 2009 2:12 pm
Hey Heri,
Indeed, I can certainly conceive applications where User-Centric development is appropriate, especially if it ties in to the revenue model in a synergistic way. In the past I’ve worked on a very large and profitable web based application that has a “membership/pay-per-use” revenue model. In this case it made much sense to prioritize based on what users would use most, therefore surveys and usability studies were deeply ingrained into our feature definition process. This proved to be extremely successful, however much of the value in the application did not come from that process. The user-centric process mostly yielded logical “next” features or nice-to-have’s, which help achieve high user satisfaction/retention rates. The internal processes yielded features that were highly innovative and often designed to displace competitors, which help achieve the acquisition of new users.
More importantly, we had to reconcile both processes as to not have a “double-headed” development team. The result was something like an agile process, but with rigorous QA, and very strongly defined architectural guidelines. Another interesting thing to note is that the work was distributed between several offices (Eastern Canada, England, India) so there was always a team of designers, coders, QAs active on the project. Bug reports and usability issue reports always came in no more than 16 hours after the daily build, day after day, which was a huge component of successful delivery.
Anyway, your post gives me an idea for an interesting project…. I’ll sleep on it and if it sticks I may consider it :)
February 19th, 2009 2:26 pm
well that’s interesting, you do raise the point of having a rigorous product designer/leader.
also agree on the dangers of double-headed teams. you need to have a direction (and of course be agile, the ideal case here being a startup like imvu.com)
The one point I would like to blog about more is the A/B testing here, and how it’s setup. You can do A/B testing for any new or existing feature which should be improved and then track:
- signup rates if it’s a web application
- sales if it’s a ecommerce webiste
- pageviews or stickyness if it’s a media site
- visitor loyalty
- or any other metric
Having clear A/B results will help you afterwards in your development
I know there’s even web software which will change its copy / design following automated A/B tests.