So what can change what can we expect software to do that is better than the above? I think software should delight users not just behave as expected. I know of no piece of software that delights in all of its functions. However occasionally a piece of software does delight me.
What do I mean by being delighted by software. I mean the software almost second guessing my intentions and then making intelligent choices about what options are available to me and changing settings to support what I am doing. Or it can mean software that streamlines a set of tasks required to complete a goal without much intervention by me. Software that has delighted me makes me stop what I am doing and smile back at the computer.
When I say that software should second guess my intentions I add a caveat that the this 'guessing' should be intelligent and treat me with respect. Making non-intelligent guesses about my intentions only makes using the software VERY difficult and annoying. A perfect example is the paperclip from MS office. It tried to guess what I was doing and gave me a list of tasks that I might want to use. The problem was that it often incorrectly guessed my intentions and thus annoyed me with a list of tasks that I DIDN'T want to perform.
However today I was impressed by software so will sing it's praises here. Today my eclipse environment decided to remove all of my packages from the package explorer view. The files still existed in the workspace but I couldn't see them through eclipse, thus I couldn't work. eclipse fail!
I did manage to re-import the projects back into the workspace which added them back to the package explorer view. However none of the projects had been connected back into Rational Team Concert. This meant that I wouldn't receive any changes from my colleagues and any changes I made would not be reflected back in the repository.
I tried to 're-share' a project back into the repository and this was when RTC delighted me. It prompted me that the project was already shared in the repository and that the best thing to do would be to re-link it to the repository. Excellent that was what I wanted to do. RTC then prompted to say that it had found 50 other projects that were in a similar disconnected state and that it could fix these projects at the same time. How amazing is that. I felt that the software had gone out of it's way to actually work out what I was trying to do and then search for other similar options that I might need to do as well.
I am a massive fan of Rational Team Concert but today's incident has made me love it even more as it has now made that rare step and started to delight me rather than just meet my expectations. Well done IBM rational jazz team.