Posts

Showing posts with the label usability

Ideal Software Development

I'm the type of person who constantly looks for ways to improve. No matter how well things go, I'm always striving to "plus" an experience - smooth out the rougher edges to make the next time even better. Sometimes the need to do this drives me a little nuts. It drives my wife really nuts! When things don't go well, this task can be a little overwhelming (and depressing). There are so many areas for improvement, it's hard to know where to begin. I've spent the last year or so, reexamining my software development experience - looking for trends in the tools and ideas that helped the teams I was on to be highly productive (and conversely where the lack of some practices led to a lack of productivity and frustration). Combined with many of the things I've read by Spolsky , Fowler , and the Poppendiecks . I've created a list of criteria I'd consider essential in an ideal software development environment. Talk to the target user...

It's All About Software (and Passion)

Just to touch on Apple and Microsoft again... I've watched the conversation between Steve Jobs and Bill Gates from this year's D5 conference a number of times. The thing that keeps amazing me is that these guys, earlier than almost anyone else, got that it's all about the software. They realized that we had this great, new technology... but it was way too hard for the average person to use. Gates referred to a speech that Jobs gave years ago where he said, "We build the products that we want to use ourselves." I always hear successful people say that the key to success is being passionate about what you're doing and what you're producing. Microsoft and Apple are two examples where this approach has obviously worked. I'm convinced these giants are more similar than different. It would be foolish not to apply these ideals into our own software projects. To have a successful project we need to become our target users. Think like they think. Le...

Gearing Up

I've previously written about Rich Internet Applications and how they bring desktop-like functionality to web applications. The knock on this technology has always been "how do I work if I don't have an Internet connection?" Last week, Google announced Google Gears , a framework designed to address this problem. Google Gears provides 3 modules developers can used to make their web applications available offline. LocalServer allows web applications the ability to store, then serve, web content locally when a user does not have an Internet connection. These resources can be updated when the user is reconnected to the Net. Database provides persistent storage to the application when working offline. WorkerPool allows long running operations to be "chunked", and run in the background without blocking the browser. It's likely Google developed this technology to widen the appeal and availability of it's Google Docs & Spreadsheats offeri...

New Age Appliances

I'm pretty excited about the latest consumer tech products I've seen from Apple and Microsoft. Although they seem to target slightly different segments, both have new offerings which push user interface and interaction to a new level. iPhone Early this year, I watched the Macworld video where Steve Jobs introduced the iPhone. I was blown away. It was easy to see the new possibilities offered by this device. I mean, the phone I have now offers many advanced features that are clumsy and frustrating to use (web access, email, text messaging, etc) . The iPhone makes these tasks intuitive (and it looks fun). As the average user gets a hold of this, I'm guessing we'll see a spike in web traffic as mobile computing goes mainstream (sort of like what the iPod did for digital music). It will forever change the way people interact with the Internet and our products. Microsoft Surface Computing Yesterday I watched a video demoing Microsoft Surface Computing. I don...

Props

It's Friday and I don't feel like writing anything I have to think about too much. I thought I'd start a list of some of the online resources I regularly use for news and inspiration. I hope to add to this list as I go. Props to these great innovators! Kayak Kayak is a travel search engine. Kayak makes excellent use of AJAX, adding results as they are discovered, and allowing users to tweak results (times, airlines, stops, etc) without a page refresh. I love how natural this application is to use. I also appreciate how willing they are to share the technology they're using and other cool stuff . CSS Zen Garden This site really cemented, for me, just how powerful and flexible CSS can be. I can spend hours browsing designs and learning new techniques. I do not have an extensive background in design and this site has really helped me refine my user interfaces. Amazon I'm always impressed with the great innovations Amazon has developed for users b...

Users, Usability, & Accessibility

In my last post , I asked how much more effective my prototype would have been if we had started with the “compelling story” and went from there? The problem from the start was failing to recognize who my user group consisted of. We assumed that since we were working on an application prototype, our users were a fictional (and generic) set of people who would eventually be our customers. The end result was a feature rich application that didn’t solve any single business problem. In reality, the people performing the demonstration were the real users. Developing features to help them tell their story (and win the company more business) should have been our only goal. Around the time I realized this, I also discovered two developments in user interface design - Usability and Accessibility. Usability I got turned on to Jared Spool through a presentation titled “Scent, Search, and the Pursuit of User Happiness”. I’ve been a big fan of his and the work being done at User Interf...

Accidentally Agile

A few years ago, I was asked to help develop a product prototype. The company had developed some new technology and the goal of the prototype was to demonstrate how this technology could be leveraged in a commercial application. The leaders had a vague vision of what it was they wanted, and we started there. After the initial prototype was complete we started to say, “Boy that’s really nice, but it would be great if it did this!” We began applying Agile principles without even realizing what we were doing. We started defining new features and scheduled short development cycles to implement these features – testing as we went (I should note that we had some JUnit tests, but hardly enough to qualify for what would pass as test driven development). We repeated these short feature based iterations until we had a fully functioning prototype. It was great, we got a lot accomplished and it was fun. Lessons Learned (what I would have done differently) Lately, some users have e...