Wednesday, 4 November 2009

Been silent for a while although I have a pile of topics to cover here, not all directly related to process improvement... although... user centered design is non arguably a process improvement in the context of product creation activities... This is what this post is about.

Last year I offered myself an Ipod touch. Loved it at first sight as everyone. However I was quickly disenchanted when I noticed how the Music playing application was lacking advanced features. After all, beside selecting music and playing it you couldn't do much (it is still this way today) and to make it worse some functionality are implemented reverse. One notable example is how Apple offers us to manage play lists, rather than being song centric it is play list centric. Tell me who sits with its Ipod to create playlist? Unless I am so weird, it is when a song plays that I am thinking about which play list I want this song into. Anyway, I digress...

Apple did surprise me though with the way the implemented the concept of requesting a song via the Remote application. This is a piece of beauty from a user centered design stand point.

For the Remote application neophyte, Remote allows someone in a wifi zone where an Itune is found, to control it. This privileges can be granted to guest at your place.

Before the digital era we were stacking records to order the play list. Well, this is more or less what the Remote application and the ITune DJ allows to do with the "Request a Song" feature. This becomes very interesting in a party when many people have IPhones or IPods, it allows people to browse and search your library and request and vote for songs. Making the music experience of your gathering tied to your guests preferences.

What makes this feature useful is the fact that it is user centered, that it directly relates to a human behavior.

The point here is that as software consumers we should not tolerate anything but user centered designed products. It is obvious when you see such products, you can always relate the software flow to the related human behaviors and in all cases this makes the software much simpler and nicer to use.

This is the endeavor the company I work at has embarked on more than 3 years ago now. Since we cannot resolve the peace and war problem, let's make the world a better place to live through user centered designed software!

For an in depth presentation of Itune DJ and Remote you can consult this post.

Tuesday, 14 July 2009

I have to admit, I generally love Google's products. I am however often not impressed by their way of handling customer requests or the whole customer experience thing for that matter.

The last deception for me is this feature that now allows to do an undo after sending an email. I can relate to this feature because I have requested the ability for my sent email to sit in my outbox for some time (like you can do in Outlook for example).

From the point of view of listening to their customers they do well, it is easy to submit feature request or bugs.

But when I enabled this Labs feature I was up for a major deception. It was clear that they got it all wrong. In this case, the code mechanic and feature works:

I can effectively undo a send email

I can personalize (minimally: 5 or 30 seconds) the time is stays in my outbox.

Where it fails miserably is how the user interaction is done. It is so poor that the working feature is more or less useless.

When sending, I have to click on the "undo" link at the top of the screen but this is only there until I do another action. Since after hitting send I always do something else (I am not waiting 30 seconds staring at my screen to maybe think that I should not have hit send), the message disappear thus rendering the working feature useless.

What as gone wrong? Or, what could have happened to prevent this? (note that I am assuming that this is the implementation they choose to do to fulfill my feature request)

It is simple: Get someone involved on the development side at Google to validate the approach they were to take with the customer.

Doing so would have allowed them to:

Understand my goal

I need the ability to cancel sending an email.

Understand my motivation

I sometime use the wrong tone in an email, I get excited, I need time to cool down before I realize I may have said something the wrong way.

Understand my workflow

I need the period to be longer than 5 or 30 seconds, I need 10 minutes.

This above implies that I cannot rely on the last action "undo" link there is for everything else.

This is so simple that it is pathetic that they do not do it. This is something that is important and a lesson that we made a loooooong time ago at Macadamian: validate your understanding with your customers/users so you reduce the risk of mistake at the soonest possible time.

Now if someone at Google can read this an start interacting with their customers it would make my day.

Thursday, 2 July 2009

I've been educating myself more and more lately on this Kanban buzz. For the neophytes, this is more or less the Toyota model applied to software development.

One thing that struck me is how it enforces collaboration. The cool thing is that I can relate to some of the inherent benefits when thinking of a project that I worked on a few years ago.

One thing Kanban ask you is to be lean. To be lean implies to have control over your queues. At Toyota it meant that the door maker guy would only start making new doors when the door installer guy would have only X left in his pile. How does that translate to software you ask?

Well it is simple. The number of stories accepted on the board are limited, the WIP (work in progress) is kept to a low number, similarly all the queues of your SDLC are kept to a small number too. There goes for the queues optimization theory, you can read more here.

However, these limitations on the queues size have an interesting side effect, and it is that it will promote collaboration over everything else. In a Kanban system a team member for example, is encouraged and might have to offer help to the QA team in order for them to free some room in their own queue, which will allow the dev to promote the new completed story to the QA stage. Similarly, a developer could also assist in the UCD (user centered design) activities if the bottleneck was found to be there.

Isn't this beautiful? I think so. This is something I recall doing at a small scale when I was project leader, I would find myself occasionally helping my QA team to reduce their queues.

At the time I did not know that much about Toyota nor Kanban, but it feels good today to see that I had such behaviors without really knowing much about some of their benefits.

Another side effect of this is the growing requirement for highly agile team members, team made of people that can do just about anything for the benefit of project... and the team!

Tuesday, 16 June 2009

His recent link to Working Agreements is putting emphasis on it, not directly but indirectly.

When I read this, one thing struck me: there is a lot expected from everyone - not too much - but a lot. Failures at communicating these expectations will undermine your team. Not only at the Agile/Scrum level as explained by Nicolas but at all levels of your organisation.

People have to understand the purpose of the expected communication and collaboration activities. They have to value them as a practice and they have to buy into the technology that enables these activities to happen.

Sunday, 14 June 2009

I am quite late with this Google news but I am just done watching the developer preview at Google IO on May 28th.

It's quite long but quite worth it as an overview.

This is very exciting in my opinion as it revolutionize further the way we communicate. Google already created a mini revolution with Gmail, but Wave integrates all communicateion tools we use daily (email, IM, SMS, blog, content collaboration, etc...) in one. That's lovely. The more I think about it, it's not a communication revolution but a collaboration one.

We have all replaced the words "search this" in favor of "google this"... I would like to predict that we will soon replace email and threads by Waves! IMNSHO, this is the end of email the way we use it today.

Friday, 29 May 2009

on the other hand is the fact that Google will keep creating weird features in Gmail - last example is this inbox feature for slow connection...

How many Google savvy users are still on 3200 bauds modem? Admitedly the value of this feature is of limited reach...

There are a bunch of productivity related features that are in their funnel I am sure, I for one keep pushing features their way.

Last one was something inspired from the Syndeo Project Server we created back in the days... It's the ability to put email threads on a stack or on a symbolic push pin board that you can later pick and add as attachments to other emails.

I do not know about you but I keep having to do this, digging out threads and then forwarding them arround. Of course I can send them individually but in many cases it makes sense to keep them together to keep the context in one bundle.

Been waiting for this and other similar productivity enhancement to gmail... Maybe I am alone with this need who knows?