Until recently, developing a user-friendly product rarely made the priority list of software makers. IT engineers were more concerned with the service to be rendered than they were with the usability[1] of their software. Packing a product with features was more important than making it easy to use. But at a time when IT products are a dime a dozen, we are now entitled to the same convenience and ease of use with business applications that we enjoy with mainstream products.
If software makers fail to consider usability, IT departments (their main customers) risk having their users turn to applications other than the ones they recommend. This leads to the development of parallel computing models ("shadow IT") which are not certified by the IT department. The success of Tableau in the field of Business Intelligence is a perfect example.
"User-Centered Design": Usability and Ownership
Software makers have now developed proven design methods to avoid this phenomenon and better identify user needs as well as potential constraints. User-centered design places the end user at the core of the development process (from needs analysis and the structure of the software to the development of more or less elaborate models). Nowadays, software developers can rely on user experience specialists to reach this goal.
Observe and Identify Key Use Cases
The first phase of the process is an on-site observation of users as they perform their tasks in everyday situations. This is the "field research" phase: studying how the user handles the application, how they interact with their coworkers and what constraints govern their daily work. For example, on an industrial assembly line, operators are often equipped with protective gloves, their keyboard is protected by plastic wrap and touch screens are more practical than using a mouse; it is essential that software makers consider this range of constraints to ensure that the design of new features is relevant.
Following this analysis, the UX designer composes descriptive lists detailing the profile of each user, as well as various characteristics such as the user's command of computer applications ("persona"). At the same time, with the help of the product manager, the designer completes a comprehensive analysis of use cases, i.e. the different needs that the software must meet. To prepare a data set before integrating it into a marketing campaign management tool, a business user spends an average of 80% of their time preparing data and only 20% analyzing the data. An application that can automate this process using change suggestions (capitalize the first letter of the name, separate the first and last name in a separate field, address correction, etc.) can help reverse this ratio and allows the user to devote more time to adding value.
Prototyping and Testing
The second phase—prototyping—is an essential step; it provides an interface based on the analysis carried out in the initial phase. An initial set of static prototypes are generated in the first round of analyzes, often in black and white, followed by a second series of prototypes that are more in-depth and detailed. In the majority of R&D departments, the work of the UX designer often stops there and the developer takes over to 'code' the interface. This phase of the development, which can be quite long, requires a great deal of attention to detail to ensure perfect restoration of the UX specifications provided by the designer. If this is not the case, bugs related to usability will be identified, but are rarely made a priority, and fixing them is often put off until later. This frustrates all those involved in the project - the developer is criticized, the designer is not heard and the end user does not get what they want.
In my view however, there is a simple solution that I have experienced myself - the UX designer must go further in the prototyping stage and offer animated models, delivered in HTML & CSS. This should be done using modern development frameworks such as Bootstrap.js or AngularJS, which are now broadly used by developers. This would greatly facilitate the work of developers, who could then simply concentrate on what they do best, i.e. data connection, data exchange, performance between front-end and back-end, etc. This would also present a functional, usable, and appealing version to decision makers and target users in the early stages, thus facilitating the adoption of the new software at all levels. Gone are the days of the more or less long 'tunnel' phase, during which assessing the progress of the project is difficult. Now, a ‘live’ version is available at all stages of the project.
Moreover, it facilitates the completion of the last phase of the "User-Centered Design" process, which consists of testing and evaluating developments. It becomes easy to assign each use case to the prototype/product in order to verify that it works correctly at each stage. The target user experiences actual operating conditions and says aloud what he is doing. Video cameras record the users and after all footage is consolidated, problems are identified and addressed on a regular basis.
The Best of Both Worlds
Previously, the two professions of IT engineer and UX designer were very different. While they present different challenges due to the nature of their tasks, new forms of collaboration must be found, such as the development of a joint 'front-end' component. To do this, it would be useful if in their respective courses of study, each student (developers and designers) be familiarized with the work of the other so that each party understands the general constraints of the project and ultimately, so that they can speed up development while responding more precisely to the demands of end users.
Faced with increased competition, tighter turnaround times designed to enable quicker market development response times and the more rapid delivery of applications consumed daily by our users, collaboration between UX designers and developers is becoming a strategic challenge for software makers.
[1] According to Wikipedia, usability corresponds to "the effectiveness, efficiency, and satisfaction with which specific users should be able to perform tasks"