Customer advocacy in software development (November 18, 2010)

Developing software is a tricky business. Whether you're involved in bespoke or commercial-off-the-shelf (COTS) software development, it's a process that benefits from the input of a customer advocate.
My experience of software development has been Internet oriented for the past 15 years and includes web content management systems (WCMS), mobile applications and bespoke systems for recruitment, investor relations and sponsorship asset management. In each of these contexts, customer advocacy played a key role in deciding what was to be developed.

Hutchison 3G

At "3" I was responsible for handset application development: geo, sports, news, weather, comedy. I worked in IT Development and our client was an internal group: Product Development, part of Marketing. Prior to launch 03/03/2003, product development spent hours trying to conceive killer applications to woo customers from competing mobile operators. And here's the thing, we'd often flippantly ask: "who's gonna buy this stuff?" I couldn't understand why it was necessary to offer a *walled garden* of Internet applications, which incidentally cost millions to develop when surely, all the *USER* wanted was a method of connecting to the Internet with a 3G handset? The service launched with a walled garden but has subsequently given way to common sense and provides open internet access. (http://en.wikipedia.org/wiki/Hutchison_3g#Internet_access)

Observation: customer advocacy would have lead to an earlier launch date and a simpler, more attractive product that would have been relevant to consumer and business audiences.

Immediacy

For the duration of the development of product set 6 and leading up to the Mediasurface take-over, I was Products and Services Director at Immediacy. The product set introduced new products such as Taxonomy Categorisation Manager (TCM), Deployment Server (DS) and Web Asset Manager (WAM) and took 18 months to develop. Before development started we spent many hours debating whether we should switch from a page-based to content-object-based system. It was the usual trade-off: flexibility vs simplicity. We decided to stick with a page-based system. Why? We knew our target audiences and opted to stick with the familiar page-based system.

Observation: James Hoskins, the then product manager played the role of customer advocate. Prior to this he'd implemented Immediacy 5.3 at www.cobweb.com (a system they still use today) and clearly understood which areas of Immediacy CMS needed further development. The wants and wishes of target audiences were allowed to over-rule technically driven ambition thanks to the power of customer advocacy. Immediacy version 6 was to be the platform for many future improvements but the roadmap took a diversion when Mediasurface came to town and the rest is history.

Bespoke software development

Perhaps the need for customer advocacy is not so important in bespoke development contexts — after all, you're developing what they've asked for! I'd say not so. Through-out the development process there are countless micro-decisions to be made; too small to trouble the client and yet, summed together these decisions amount to a large variable that means the difference between delight and dissatisfaction. No requirements-, technical- or functional-specification can capture *everything*.

Observation: agile development involves lots of input from a client — it's a significant commitment that clients should not underestimate. And it's not the whole solution. There's still a need for a customer-advocate to navigate development decisions.
Advocates

What does a customer advocate do?

A customer advocate spends time with a client and understands:

1. the commercial context of a project
2. stakeholder priorities and motives
3. project goals and delivery deadlines

A customer advocate supports and defends:

1. client decisions
2. choices
3. preferences

A customer advocate challenges clients that:

1. assert out-mode ideas
2. make poor decisions
3. have unrealistic goals

Most importantly, a customer advocate is credible and is therefore trusted by development teams and client stakeholders. The customer advocate is the translator: explaining the validity of alternative approaches to the client and explaining why an apparently sub-optimal decision was the right decision to developers. Ultimately, the customer advocate represents the interests of a client and, contrary to popular practice this approach is good business!

Who is the customer advocate?

Commercial software development
Possibly: Product Development or Product Manager.

Bespoke software development
Possibly: The Project Manager.

/discuss

Filed under  //

Viewed  // 
times