What about the non-functionals?

Non-functional requirements (NFRs) are the poor, ugly sisters to the functional requirements. They are often left out, or worse written in wooly and non SMART terms; “the website shall be available 24/7”. Is this what happened with HMRC? The website that allows UK citizens to complete their tax returns on-line has gone down, just as the deadline looms. I wonder if this is a case of the non-functional requirements around performance, scalability volumes etc being forgotten about or just not tested for. Inexcusable really.

Agile Hong Kong

Exciting times for us in Hong Kong. The inaugral meeting of Agile Hong Kong is next Tuesday, 5th February. Martin Fowler will be attending, hosting an informal Q & A session. It’s sponsored by ThoughtWorks who will be providing the drinks. Check out agilehongkong.com for more details.

Will corporate websites remain spotty teenagers or will they grow up to be beautiful?

In the corporate webspace most design is little more than mediocre. Interaction design has changed little since coporations first realised that this is a channel thery should exploit. Web 2.0 is slowly making in-roads with basic use of Ajax functionality, but there is nothing that is really breaking the mould. Despite its infancy (for most organisations ‘e’ is barely 10 years old, Amazon, the granddaddy of eBuisiness is only 13, born in 1995), conservatism rules; the corporate web is just not growing up. It would be easy to blame the technologists for being risk adverse- for having invested in architectures and frameworks that do not allow innovation. REST and all that declarative goodness may be great, but of little interst if you have invested in a propiertary framework that does not support it. But the business is also responsible for tardy innovation.

It doesn’t know what is possible. A miss-understanding of accesibility clobbers rich interactions; “no javascript” becomes the mantra, despite the guidance being “provide alternatives” and progressive enhancements making basic and rich interactions possible with the same code. And maybe as usability testing becomes the norm, and testing concepts with consumers throughout the product lifecycle is baked into the process, this is acutally the final nail in the creative coffin. Let me explain.

When you are developing new features or propositions it is only right that you should conduct market research, talk to your customers and get feedback to refine your ideas. But sometimes you need to ignore what you are being told and challenge the perceived wisdom. Imagine the scenario; you are developing a social networking site. You recruit a bunch of consumers to participate in user testing sessions. They match the socio-demographic profile of your target audience, they use the internet more than five hours a week. You let them loose on your concept boards and prototype. They like what they see, they like the blogs… but commenting? The feedback is that none of them would leave comments. So what do you do? Kill the commenting on the basis that the users who matched your “average” profile would not use this feature.

I’m not saying that if you are building a conventional, transactional experience; a retail shop, a financial services provider, you should not test the proposition with users that match the target profile. But beware that they will steer your thinking into the realm of the ordinary, the expected and the average. Try testing it with trend setters, gamers, teens, mybe even anti-personas to push the boundries and harvest real innovation insights.

And maybe testing the proposition is not needed at all. But don’t leave the design to the comittee or the accountants. Sometimes it is more important to have a real visionary driving the product development. Apple is a great example of this, no more so than with the iPhone bounce. When you scroll down a list, when you come to the end, the last item “bounces”. Where’s the “business value” in this? Isn’t this gold plating in the extreme? The development of this bounce will not have been for free, it will have come at a cost. This could have been a financial (more development effort) it could have been at the expense of another feature, or it could have been time. In most organisations this would not get get through the design by commitee. Apple can do such great things with their UI because they’ve got a visionary at the helm who understands the importance of good design and is passionate about it, and their customers become to expect it.

Cutting waste: dump PowerPoint and invest in a camera

So you’ve run a workshop and generated ideas. There’s a list of points on the flipchart and diagrams on the whiteboard. What now? Write it all up in Word or commit the drawings to PowerPoint?

Stop! Ask yourself why you are doing this? Is it just to record the ideas, to socialise back to the group involved in the workshop? Creating PowerPoint slides is not always an inconsiderable effort. It takes time. That effort is waste.

Think of the purpose of what you are doing. Then take photographs of the flipcharts and whiteboard diagrams, paste them into PowerPoint, and think of how much time and effort you have just saved.

Technology makes my blood boil

Technology is great when it works. But when it doesn’t it can be a world of pain. Productivity is slashed and stress levels rocket. Just one thing going wrong hurts, but multiple failures? Eugchhhh. I’m sure they are unrelated, but this has been a particularly bad Monday. Somehow I’ve lost administrator rights on my laptop. This means that lotus notes no longer works and I’ve got no access to email, other than via web-mail. Worse, I can’t roll back to previous back-ups or install any admin tools. Slingbox has crashed and requires a reboot. Hard when it is in a living room the other side of the world. I need VPN access but my version of Windows XP is x64, and as far as I can tell Cisco do not have any drivers for it.

I wouldn’t usually use my blog to moan about my technical gripes. But wordpress has pushed me over the edge. Every comment on my blog has been replaced with:

WordPress database error: [Table ‘wp_comments’ is marked as crashed and last (automatic?) repair failed]

Where do I start?

(Of course you could comment, but it won’t work because of the error.  Doh!)

What not how

All too often the business thinks in terms of the “how” rather than the “what”. But why should they care how something is to be implemented? Why doesn’t the business state their requirements in terms of their desired outcomes? What is it that they want? Then, and only then should anybody think about the “how”.

Sadly, focusing upon the how rather than the what is a driving factor behind so much of the mediocrity in enterprise software. Rather than stating “what” (they want) in terms of their dreams and aspirations, the business express their requirements in terms of what they perceive IT can deliver. “What” could never be the design quality of Apple (visionary) because they believe the “how” (their IT team) is not Apple (mediocre). But wouldn’t your average developer rather be building something visionary than something mediocre?

The best CIOs don’t care about IT

One of the (many) things about ThoughtWorks developers is that, whilst they are passionate about technology, (and will happily argue for hours amongst themselves about the relative merits of REST over SOAP or ruby on rails over django), more often than not when they start a conversation with a client, technology will be at the back of their mind. I think it is safe to say that generally the primary driver in the ThoughtWorks mind is business value:

  • Why are we building this application?
  • What are the business objectives?
  • What will deliver the greatest value in the shortest timeframe?

Once the requirements of the business are understood, and framed in terms of their business value, then (and only then) should we turn to the technology. This can often be a challenging message; IT professionals like to think in terms of architecture and platforms, yet often these constrain the ability to truly deliver what the busines really needs.

The development team may be a Java shop and only does Java, yet the end users live in a world of Microsoft. So what happens – IT develop user interfaces that expose data in a web browser only for the business users to copy and paste it into the tools of their trade – Microsoft Office. And because IT only do Java that’s the way it has to be.

Value is lost in this thinking. It is easy to argue on the cost to expand the team requiring new skills by introducing .net into the architecture. But what is the cost to the business of time spent through inefficient work practices? All to often IT is an end unto itself, rather than the means. IT needs to remember it only exists to enable organisations. The most refreshing CIOs are those that recognise this. Those who focus upon delivering business value and question every big decision – what value is this giving to the whole organisation rather than thinking in terms of their IT silo. In fact, the sort of way that ThoughtWorkers think.

Paired introductions

Starting a meeting or workshop with new people will almost certainly commence with introductions.  Usually I will ask participants to say not only who they are and what department they are from, but also why they think they are at the meeting.  If someone is not sure, or says “because my boss told me to attend” there might be an issue.

Last week I attended a workshop run by a couple of our developers from China.  Because paired programming is a fundamental practice to what we do, they asked the participants to do paired introductions.  Participants paired, were offered a minute to talk to each other and then introduce their colleague.  Because the team already knew each other, they didn’t need the minute to prepare.  As each participant introduced his colleague, he emphasised the persons strengths and good points.  At the end of the introductions there was a tremendously positive vibe in the room which set the meeting up for success.  It might have taken a little longer than just doing the straight introductions, but the value was clear; get people to introduce their colleagues – it breaks the ice, promotes the positive (and as a facilitator gives you another hook by which to remember people).

Enterprise twittering

I’ve been interested in Twitter for a while now – it is probably one of the flagship web 2.0 innovations, (and its Ruby on Rails). But I’ve had a problem with it; I can’t answer the question “what’s in it for me“. What is the point of Twitter? I signed up a while ago and invited a few friends, but the responses were generally along the lines of “what’s wrong with FaceBook status” (one tweet read, “[name] doesnt understand how this is any different from his IM or facebook status). This is a good question. Instant messenger can change the way an enterprise communicates – what’s wrong with IM? Why not put your status alongside your IM ID? Staying with the enterprise theme, you can’t walk into an investment bank without seeing someone scanning their blackberry. Why would an enterprise need Twitter when eyes are glued to the ‘berry?JP Rangaswami has been blogging a series of articles on Twitter – I commented on one post asking these sorts of questions. In a follow up blog, he has answered my questions. I’m beginning to see the point of Twitter – more to the point, when I’m talking to clients about enterprise 2.0, I’ve got a more compelling Twitter story to tell. So (borrowing from JP), why Twitter?

1. Publish – subscribe. Unlike email where an author publishes a note to a group of people she feels will be interested in it, with Twitter people can choose whether to subscribe to what the author writes. If they like what they read they can continue to consume the ‘tweets’. But how is this different to subscribing to a newsgroup? With a newsgroup you can only select to subscribe to the topic, not the author. Unless you use some clever filtering, you can’t choose whose words you read. And filtering takes time and is rarely straight forward; bringing on the second point for Twitter…

2. It is easy.

3. It is multi-device. Not only do I choose who I receive tweets from, I choose how I will receive them – via SMS, email, rss etc.

4. It is succint – 140 characters is not a lot of words to write with

Anyway, an enterprise example…

Today:

Jack Fiction knows something – he’s learned a great insight about a potential client. He sends a mail to people he thinks might be interested in this insight. He includes a copy to the Business Development email interest group that was set up by IS
– It is a closed circle. People not on the cc list will never learn of the insight.
– It doesn’t mean anything to them at that time. They delete the mail. It has no history.
– Many interested people are not on the IS email list
– People who are no longer interested still get sent mails to the group.

Twitter:

Jack knows something – he’s learned a great insight about a potential client. He tweets about it.

– It is public
– It has history

Jack doesn’t need to think who will be interested in what he writes; people who value what he does subscribe to his Twitter. They can see an archive of his previous tweets on his Twitter space. If they no longer want to listen to what Jack says they unsubscribe – the UI is elegant and simple.

This model assumes thats people interested in the insight know Jack in the first place, but that is generally the way that social interactions work. Let people communicate between themselves – it is far easier to choose who you want to listen to, to who you want to talk to. And in doing this it is far easier to cut out the noise.

New year plan

Well its that time of year again for new years resolutions. …Only for them to be broken a few weeks into the new year. Resolving to do something different is always going to be hard if it is not associated with a goal or a desired outcome – something to strive for. So instead if mumbling a bunch of new years resolutions on Tuesday (“I will get fit”), turn them into personal goals that will be measurable and (at a stretch) achievable.

And then frame them in the story your future self will tell one year from now; “In the last year I started running round the block every night. In January it took me 23 minutes, now I can do one lap in 15 minutes and two laps in 33 minutes”.

Success this way is more likely than “this year I am going to get fit”.