2008

Sounds like a case for agile

..CIOs will be expected to become more and more strategic, delivering greater productivity gains while at the same time ruthlessly cutting costs. There will be a heightened debate about the role of IT in the enterprise. (ComputerWorld)

OK, so we can either spend months writing documents before a line of code is written. Do some application development then manually test what we’ve built and fix the bugs before eventually going live (late and over budget and not to the customers satisfaction).

Alternatively we could get more strategic and focus upon what value we can deliver in the shortest period of time. We could better align IT with the enterprise by delivering early and often, enabling us to test and learn from the enterprise as we go. We could adopt a more ‘just in time’ approach to requirements (whilst starting with a clearly defined vision from the outset). We could build testing into the development to lessen the bugs at the end, we could do automated testing (to ruthlessly cut manual testing costs). Downturn sounds like a case for agile.

.

How are you managing the change?

To the development team ‘change’ relates to scope and requirements within the project, but change runs far deeper than that.

A question that I am often asked is how do you manage business change on agile projects. Release regular and often is an often quoted mantra, but what does that mean to the business where rolling new software across the large, multi-site organisation? How do you manage the piecemeal introduction of new technology, features and functions to hundreds or thousands of people, many levels removed from the project across remote offices and geographical locations? How do you ensure the recipients of the new technology rapidly adopt it and accept the change, even when change is occurring every few months.

What are the financial and human performance implications of each new release in terms of training, productivity and morale? What is the overall burden on people in frequent change?

The reality is that it is not unusual for projects deemed successful by IT and the immediate business team to ultimately fail when released to the broader organisation. Effective change management can be even more important when an organisation adopts agile software delivery.

An analogy as an example. If I expect a screwdriver and you only give me a cross-headed screwdriver when I really want a flat head one I am going to be unhappy. The core team may have prioritised the cross-headed one first for good reason, a flat headed one maybe coming just round the corner, but if you don’t deliver to my expectations I am going to be unhappy. Worse, I am likely to become resistant to future change and less likely willingly cooperate with the uptake of future releases, even if they do start to deliver to my needs.

Keep it on the shelf
The first point is that regular and often does not necessarily mean release to production for the entire organisation or marketplace. Running a number of internal releases, keeping them on the shelf until a complete and marketable product is ready is a strategy often employed. Significant value can be accrued by getting tested and working software into a pre-production environment and held “on the shelf” awaiting a full release. This maybe a UAT environment where a limited number of stakeholders test the functionality in an ‘as-live’ environment. Or it maybe a beta release to a small, selected number of interested people (e.g. a ‘friendly user trail’). This can often pay dividends with usability issues and minor gripes being picked up and addressed before a major roll-out.

Communication

Let’s assume that the team wants to roll out the application early and often to the whole target population. Critical to the success of managing the business change is communication. It is important to manage expectations on a timely and appropriate manner. Explain what the upcoming release will do and more importantly what it will not do (and when it will do it). Keep all stakeholders informed of the project progress (setting up a project blog can be a cheap and easy way of letting interested people know of progress), yammer maybe another way of broadcasting updates and information. Having a release count-down can also prepare stakeholders for the change. The techniques can be googled, the important thing is to communicate and manage the expectations (and be ready for inbound questions and comment after go-live).

Adaptable user interface
It is not unusual for the core team to drive for as much functionality as possible in the first release, considering UI enhancements as ‘nice to haves’ and consigning them to later releases. This is a false economy. Consider the cost of training and lost productivity through a hard to use interface. Now multiply that across multiple releases that focus upon utility before usability. Delivering a first release that is self contained and compelling will go a long way to driving organisational buy-in of the new application and greater acceptance of future change. (Jeff Patton writes some great stuff on using story maps to explain what the system should do. Using these will help focus on complete and useful slices through the application rather than random features that are perceived to be of value but do not make a coherent product).

A new user interface, however well designed will inevitably take time to learn the first time it is used. The challenge is with each subsequent release to introduce funcitonality and interactions that leverages the users existing mental model of the application, building upon what has been already been learned. Starting with the end-state, wireframes that articulate the final application then trimming out features, feields and controls to represent each notional release can be a good way of ensuring a UI that will scale as new functionality is added.

Agile organisation
Ultimately the most successful way of introducing agile is to build a beta culture with everyone as agents of change across the whole organisaiton. More importantly change becomes a cycle of learning and continuous improvement. And here I’ll borrow this most excellent graphic from David Armano. David compares what he calls conventional and unconventional marketing but the parallel with software development is obvious. His iterative cycle is “plan-design-launch-measure” but that is not a million miles away from the lean philosophy of “plan-do-check-act”. And critical to the journey is the learning cycle between iterations.

Better, faster, cheaper…

Here’s a presentation I gave a while ago to a bunch of senior execs, introducing the concepts of lean and agile to software development.  Many of the slides are taken from a presentation given by Richard Durnall which can be found on the ThoughtWorks website [pdf].  If nothing else, the slides about the problems with conventional development methodologies – that they take time, are not responsive to change and rarely end up satisfying all stakeholders, struck a chord with the audience I presented this to.

[slideshare id=657541&doc=it-forum-presentation1-1223980207243199-8&w=425]

Users is a dirty word

Language matters.  How you describe something frames your reference.  One of the problems with so much software is that it is designed for generic “users” (typically UML stickmen) who may also have roles, but don’t have lives.  Why this obsession with users?  Everybody “uses” things.  Surely the important thing is to understand the nuances of that usage, and that means thinking about real people.  Josh Bernoff wrote a while ago,

Nobody talks about users of dishwashers, or users of retail stores, or users of telephones. So why are we talking about “users” of computers, browsers, and software?

Try, just for a day, to stop using this word. You’ll be amazed at how differently you think about the world.

Stop thinking about “users” and start thinking about people.  Personas are a good way to start doing this.  Get all your stakeholders thinking about the people whose lives will be touched by the product that is being developed.

Jeremiah Owyang updated his model of what web strategy is. It’s a cool model and worth a look. One of the things he has done is changed the word “users” to “community”.

One of the comments from Connie Bensen reads:

“I recently had a discussion about verbiage on our corporate website & heard the phrase ‘those words are industry standards’. Well, customers don’t know them. An analogy from the library world is that I took down the sign saying ‘periodicals’. It now reads magazines. (a shift towards making things customer friendly)”

I like that.  It is a subtle change, and when I’ve argued with colleagues in the past about the difference between users and customers and consumers they just don’t see the point.  What is wrong with users, after all it is the language of the industry.  Yes, that maybe, but it is not the language outside our industry and they are the people that we build applications for.

Where are the missing floors?

Lift panel with numbers missing

It is fairly standard practice in Hong Kong for buildings to have no thirteenth or fourteenth floors. They are considered unlucky numbers. Not sure what happened to the first, second and fifth floor here. And back-to-front button numbering that is neither in the telephone format nor the phone format. There’s a couple of lessons to learn here; when designing human-technology interactions consider cultural norms and existing design stereotypes. (Sorry, its the Human Factors conditioning in me that notices such things).

Resign or fix what you broke?

There once was a time where the honorable thing to do if you screwed up was to resign. No more it seems.  Times change and to resign is to walk away and admit defeat.  Defeat is something our culture doesn’t honor; no-one likes a loser.  So you ignore the critics and stay on; you know what went wrong, so you are the best person to fix what you broke.  The honorable thing is no longer honorable.  Failure is rewarded, and we just carry on as if nothing happened.

When google fails…

…I’ll see if I can get an answer on the blog. My two year old daughter has managed to put two DVDs into the Mac Mini and I can’t get them out. Tried all the usual suspects for ejecting – eject button, F12, Cmd-E, rebooting with mouse key pressed, disc utility, terminal and drutil tray eject plus turning it upside down and no joy. Does this mean a trip to the Apple Doctor?

Are you who you say you are?

I set this website up in 2001 to record the overland trip Lindsey and I took to India. I wrote my diary entries (I’d not heard of the word “blog” at the time) onto my palm pilot and uploaded my notes in internet cafes when we found them. I called the site “dancingmago” for reasons that are not so clear to me now, (in the early nineties I’d spent a year living, working and studying in Calcutta and had grown rather partial to mangoes and the name stuck with me). With social networking sites popping up all over the place, it only seemed right to register myself as Dancingmango. So I’ve got a pretty good claim to the username “dancingmango”.

However. On the web it doesn’t quite work like that. There’s only so many sites I can claim my username as my own. On the web it is first come, first served. It seems that I am not the only dancingmango. Nor am I the only Marc McNeill (the guy who supports Rangers on Bebo is definitely not me!)

The point of this is that in the social web of the web, are you who say you are? Which dancingmango is me? Which Marc McNeill is me? This wouldn’t really matter, but I read that one in five employers use social networks in the hiring process. This is inevitable (I’m hiring in Hong Kong and will Google prospective candidates), but I’d be concerned if it was used as part of the screening process. Excluding someone because they have the same real name or the same user name is clearly wrong. It is hard to see a solution; but if you are looking for a job, make sure that you have photographs associated with your social presence, and if there are multiple ‘you’s out there, ensure that you are distinctively you to prevent mistaken identity.

Shoddy web experiences are still too common

Imagine the Vodaphone shop on the high-street is open for business, the phones are on display but there are no sales staff around. You wait a few minutes, call out (thinking there might be someone “out back”) but nothing. Nobody there. It’s the same thing everyday, the shop is open for business but no-one to help you buy. Or maybe there is a sales person, but anytime you ask them about the hot product you want, the iPhone, they respond to you with nonsensical gibberish. It’s hard to imagine the high-street outlet doing this, but on the web this kind of thing is still sadly common place. Take a look at Donna M’s recent rant. Because it is a website (probably within the constraints of some dated CMS), a shoddy experience is permissible.

How to keep magic moments magic

This is rather sad, I was thinking about this post in the shower this morning.  The past few weeks I’ve been going into the same Starbucks on the way to work.  After a few days the barista saw that I am a creature of habit and no sooner had I walked in was she preparing a small black coffee.  The first time that happened was a real magic moment (via Experience Zen).  After a while though, that magic moment becomes the norm.  What delighted me at first I now expect when I walk in.  So in the shower this morning I was thinking about this and wondering how do you keep magic moments magic.  But before I come to that, as I went into Starbucks today the barista asked me my name and introduced herself (this isn’t the US, a Cantonese local asking a stuffy Brit their name breaks social conventions I think!)  So now we are on first name terms.  That’s a magic moment of sorts.  But after a while that too will become the norm.  The real lasting magic moments are going to be those that randomly delight me.  What if one day she says “don’t worry Marc, it’s on the house today”.  That would be unexpected, random and special.  Like being offered an upgrade on a flight without asking for it.  What can you do today to randomly delight your customer?

2 of 6
123456