Originally, this post was just going to be a link to a great article, but as usual, I seem to have a little more to say. Before you read my thoughts on the subject of sucky enterprise apps, please check out what Michael Nygard has to say on this topic.
Good stuff and I whole-heartedly agree. To summarize, Michael postulates that there are four main reasons that enterprise applications suck in terms of the user experience. They are:
1. The serve their corporate overlords, not their users.
2. They only do gray-suited, stolidly conservative things.
3. They have captive audiences.
4. They lack "give-a-shitness".
I think most of us in the Notes world would be hard pressed to say that these things aren't true in many of the applications that we've seen (and perhaps even authored ourselves in the early days). I often lament the fact that the majority of us learned our craft by deconstructing the Notes templates. While they were certainly great back in the day and the underlying code is slick, the fact is that the users' expectations of the software experience has moved on and we as developers...not so much.
I originally started this site knowing that it would be a niche within a niche. Interface Matters is about Lotus Notes development with a focus on user interface design. If you ask a lot of people, those things don't usually go together. At least they didn't. But I'm happy to say that Lotus and IBM get it now. Certainly we can't turn around on a dime. We're a huge company after all. But if you look at the progression between past clients and Notes 8, it's a pretty outstanding evolution. In my sales role, I'm starting to see a lot of traction in upgrades to 8.5 and this presents developers with an incredible opportunity to start rallying against Michael's "4 sucky apps" theory.
In order to overcome the sins of the past, you've got to start injecting the idea of a compelling user experience into all aspects of your design process. It's not just about how things look. Instead, it's about the entire experience, from the time you begin to engage the users to gather requirements to after project delivery. How do they report problems to you? How responsive are you to issues that are raised? Are you thinking about fast release cycles? All of these things are part of the user experience and I don't think I'd be off base by saying most are neglected in traditional Notes development.
To turn this around, begin leveraging best practices in the UX space. Try using "Web 2.0" design patterns (like those found at UI-Patterns.com). Examine what well-known sites are doing and determine how they are keeping users engaged. Even better, ask your users what they like. I've received some of my best ideas from the users themselves. It's very eye opening to watch them work or to discuss what sites on the Internet they find easy to use and why. The best advice I could give a programmer is to attempt to "step outside the code". The code is the solid foundation upon which a great app is built, but like the foundation of the building where they live, the user never sees it. Instead, they see their house...a place that is comfortable and that they call home. The same is true for your app, so our goal is to not only lay that solid foundation, but to create the most attractive and comfortable environment that we can. Once you make the mind shift from lines of code to "how will the user feel about this?", then you will be on your way to developing a more compelling user experience.
As developers, we're the ones on the front lines that can make this happen. More than other platforms, Notes developers often have to play the roles of business analyst, designer, tester and programmer all rolled into one. The concepts of user experience are important in the work that all of these roles take on, so by making this a standard part of your engagement model, you'll be able to effect real change for the better and help make enterprise apps suck a little less. Good luck...your users are counting on you!