How we chose a prototyping tool. Part I
There are often misunderstandings between software developers and users. The user wants to get an effective tool for solving certain problems, besides being easy to learn and easy to use, but he has a very rough idea of the specifics of the programmer's work. The programmer often has a very, very rough idea of the range of tasks that the user is dealing with. What seems brilliantly implemented to the developer may seem uncomfortable to the end user. A programmer may not pay attention to things that seem quite obvious to the user. (For a detailed analysis of these problems, see, for example, the book by David Platt with the provocative, but expressive title, "Software - sucks! And what to do about it?"). How to avoid situations of misunderstanding and help the programmer and user find a common language? (This topic has repeatedly become the subject of research by representatives of various fields of knowledge - programmers, psychologists, specialists in the field of ergonomics. A detailed and interesting review of the literature on the topic -here )
Creating applications and websites is a complex process in which people of different professions and different ways of thinking are involved: programmers, designers, managers. Each of these people has a strictly defined task: a programmer writes code, a designer takes care of visual appeal, a manager makes contact with a client. How to bring their work, as they say, to a common denominator? How to ensure mutual understanding of all participants in the development process?
One way to solve the above problems is to use prototyping technologies. Prototyping refers to the creation of an interactive visual sample to demonstrate the behavior of the program interface to future users. An important advantage of using prototyping is the possibility of feedback: the developer gets acquainted with the comments, suggestions and wishes of users in the early stages of working on a product, when changes can be made without significant losses. Thanks to prototyping, the dialogue of all participants in the program development process becomes more specific, which allows them to coordinate their work. Prototyping technologies also change the status of the user: he becomes an accomplice in the development process, and not a passive consumer.
Our company has such aspects that it’s impossible to manage without prototyping. We are developing electronic document management systems, customer relationship management systems and web content management systems. All of these are industrial-scale systems built on client-server technologies; they include both desktop and web interfaces. When such systems are implemented in a particular organization, the problem of interface customization inevitably arises. We believe that customization should be given special attention: often the end users of software products are people who are completely far from computer technology.
The software product interface should be as user friendly as possible, adapted to the specific tasks of a particular organization and modified in accordance with existing corporate information systems. Otherwise, the user will spend much more time learning how to work with the new program, performing simple standard operations and will not use its functionality to the full. In order to create a simple and really user-friendly interface, you should turn to prototyping. We are faced with the acute problem of choosing a tool for creating visually accurate and interactive prototypes that describes complex operations and transitions.
There are quite a lot of prototyping tools on the software market. They are designed to solve a wide variety of tasks: from creating “pencil” sketches to building interactive prototypes of high visual accuracy (see a fairly detailed overview ; see also related materials here and here ). It would seem that with such a wide selection you can easily pick up suitable prototyping tool. But a more detailed acquaintance with the available programs showed that in reality everything is much more complicated. When working with software for prototyping, you have to deal with a number of problems, which will be described below.
Problem 1. Web and desktop
Even a cursory examination shows that the lion's share of existing software is “tailored” specifically for web applications and sites. Prototyping desktop applications using such programs is difficult, and sometimes even impossible. Therefore, the idea to use many of the programs presented on the market after the initial acquaintance had to be abandoned: for our company, which develops both desktop and web applications, we need a universal tool.
Problem 2. Visualization
An important factor in choosing a prototyping tool is the visual accuracy of the prototypes created. There are quite a few programs that create simple “pencil” sketches. In some cases, they are really useful, but the specificity of our work is such that the prototypes created must be characterized not only by visual accuracy, but also by a purely aesthetic appeal.
Having got acquainted more closely with the existing prototyping tools, we saw that not all of them have a set of so-called native (i.e., made in the style of the operating system under which the application runs) components. The number of programs with which you can create really beautiful, pleasing to the eye (first of all, of course, the eye of the customer) is very, very small.
Problem 3. Movement
It seems that the main characteristics of the prototype are interactivity and dynamism. You can imagine the appearance of a future application on paper. The prototype demonstrates not only and not so much external characteristics as the functionality of the created system.
Creating truly “live”, interactive prototypes often proves a number of problems: some tools cannot communicate interfaces at all, which, of course, significantly narrows the range of tasks.
There are tools that create interactive prototypes, but the only possible format for saving these prototypes is .pdf. This is an obvious minus: this format does not provide a high degree of interactivity. The prototype in .pdf format is suitable for demonstrating the appearance, but not the capabilities of the system. The “live” (launched and clickable) prototype shows the future application in work and allows you to see many of the nuances that are simply impossible to pay attention to in a static pdf prototype.
When choosing a prototyping tool, the degree of interactivity of the prototypes created also plays an important role: I would like the program used to be capable of something more than a simple change of interface at the click of a button. There are not so many programs capable of creating a large and varied set of events, as practice shows.
Problem 4. Simplicity and accessibility
The purchase of a software product is often associated with costs far exceeding the purchase price. The cost of employee training and technical support can significantly exceed the down payment. In the case of acquiring foreign software products for staff training, you have to attract foreign specialists, look for translators, etc., which significantly increases the time and financial costs. Not all employees of Russian companies speak foreign languages enough to independently understand the specifics of a particular program. Localization of applications, writing of Russian-language documentation, creation of Russian-speaking professional Internet communities are required ... Separately, we point out the need to provide ongoing technical support in Russian.
Unfortunately, among the prototyping tools on the market, there are no Russian products, and this is a significant minus for users from Russia and the countries of the former USSR.
We believe that a good prototyping tool should be publicly available. Accessibility is understood, firstly, as cross-platform, which creates the attractiveness of the product for a wide range of users and allows you to completely eliminate situations where, for example, you have to introduce a new operating system for the sake of any one necessary application.
Secondly, the program must be implemented in such a way as to create prototypes with its help people who do not have knowledge and programming skills. Accessibility and universality mean that the creation and modification of prototypes could be available not only to programmers, but also, say, to managers who have direct contact with the client.
And what is the result?
We tried many prototyping tools in practice, but we could not find one that would fully meet all our wishes. In the end, however, we managed to find our own solution to all the problems described above. We will talk about it in subsequent materials , and now we would like to turn to the community of our readers with the following questions:
- What solution would you propose in our situation?
- What characteristics of prototyping tools do you find most important?
- What tools do you use in your work?
UPD: Part II. The history of the creation of the prototyping tool