{"id":12156,"date":"2015-02-04T19:21:05","date_gmt":"2015-02-04T17:21:05","guid":{"rendered":"https:\/\/mozaicworks.com\/?p=8384"},"modified":"2022-02-01T18:08:28","modified_gmt":"2022-02-01T16:08:28","slug":"usable-software-design","status":"publish","type":"post","link":"https:\/\/mozaicworks.com\/blog\/usable-software-design","title":{"rendered":"Usable Software Design"},"content":{"rendered":"

In a previous blog post<\/a>, I wrote about the fact that we tend to perceive software design as userless.<\/p>\n

Whenever we talk about design in other domains than software, we discuss it from a user-centric point of view. Apple\u2019s products are renowned because they focus on the experience of a user with their device: how it feels, how it looks, how fast it responds, the sounds it makes etc.<\/p>\n

Software design is the only type of design that seems to be userless. After all, the end-user has no idea how the software works and doesn\u2019t care. All they do care about is to work fine.<\/p>\n

…<\/p>\n

Software design is not userless. The user is the developer that will have to change the code after you do. If you have collective code ownership (like most Scrum teams these days), you\u2019d better consider user-centric software design.<\/p><\/blockquote>\n

Ideas such as “Clean Code” touch this idea. But I’d like to explore this topic in detail.<\/p>\n

1. New Developers Working On Usable Software Design Will Get Productive Faster<\/h2>\n

\"New<\/a><\/p>\n

Why is usability of web applications such an important topic today? I would argue that it brings a competitive advantage because users find it easier to start and use an application that’s built with the user in mind. No user has time to spend days learning a new product; we want to start using it immediately and get instant benefits.<\/p>\n

The new users of software design are the new developers joining your team. We will assume they know the programming language, the main framework used and have worked in the business domain before. How long does it take for them to become productive in your environment? The time spent familiarizing with the design of the application and with how things are done mostly translates to expenses. In the economy of the product, that’s waste.<\/p>\n

2. Most Common Tasks Get Done Faster With Usable Software Design<\/h2>\n

Think about the type of work you did on your current product. Chances are some of them are repeated patterns.<\/p>\n

\"gaudi-park-guell\"<\/a><\/p>\n

In the eHealth application we’re developing, the first few features took a while to get done (NB: we were also learning a new technology at the same time). By carefully looking at what slowed us down and adjusting the design, we optimized the development and got to the point where about 60% of the work is the UI\/UX design. The development was no longer the bottleneck. We then looked at optimizing the UI\/UX design, but that’s another story.<\/p>\n

The key to this improvement was that looking back, we realized that the features we develop fall into several types of work:<\/p>\n