Remember the early days of Gmail? The team was releasing new features almost every week. Many web applications take that approach, which is the essence of agile development: instead of monolithic development of a huge application which takes years, develop a small baseline and add more small features as you move along in short iterations of a few weeks each. Once your initial application is out there, you can see what the users like, what they don't like and improve. This approach has taken the software development world by storm.
The agile process is about responding quickly to user needs. It works great in web applications, like Gmail, but when it comes to desktop application development there some challenges. From the development process perspective, it's pretty much the same. Coding is still coding and design is still design. However, there are a few technical shortcomings.
The obvious one, is deployment. Web applications need no installation. Once the sever is updated, the software is immediately refreshed on all clients. This doesn't come easy for desktop applications. Nevertheless, most modern desktop applications have automatic updates that solve the issue. There are ready-made automatic updates for most platforms and today, when I install an application, I expect to have it updated automatically.
The less obvious technical gap is usage tracking. In web applications, it's the easiest thing to do. Your sever is getting all the user requests, so the data is yours to analyze. There are companies that bring this to an art form and can show you images of where your users' clicks congregate or even entire video clips of their interaction with the system. Check out crazyegg as an example.
This usage information is critical for assessing the software. For understanding what users use and what they don't use. It is one of the best tools a product manager can have, and in the desktop world it's not trivial. There are other tools like user interviews and surveys, but these provide only partial picture, which is usually biased.
Naturally, companies can develop their own usage tracking mechanisms right into their software. Developing such a service requires some investment. Especially when it
comes to setting up a server that absorbs the data from your end users. Microsoft, for example, has such a feature in Windows called Customer Experience Improvement Program. However, this is specific to Microsoft software and cannot be extended to third party applications.
Eclipse 3.4 has something similar called Usage Data Collector. It's still in an early stage, but this could be a valuable tool for Eclipse RCP application developers.
This area is underdeveloped from the wrong reasons. Most desktop applications are far more complex than web applications, so they require much more insights to improve. However, it's the business model which makes the difference. In most desktop applications you pay for the application. You buy it once. In many web applications, you don't pay. They want you to come and hang around as much as possible. This why the usage information is so critical to their business.
Recent Comments