On the way to simplicity: how difficult it is given to developers

    “The power of simplicity” - this phrase is increasingly heard in the rooms of Macroscop developers during version planning. Now we are more than ever focused on the simplicity of the product, including only what users really need in it, and removing everything that is not in demand.

    Surprisingly, making the product simple for the user is very difficult. We understood this from our own experience when we came across questions that we did not find a definite answer:
    • which is more important, simplicity or functionality?
    • to what extent is the product necessary and possible to simplify?
    • and who will ultimately be guided by when making changes?

    Simplicity is hard


    Of course, it was always clear to us that the product should be made simple for the user. This is confirmed by common sense and the experience of successful companies from various fields.

    Take a look at Dropbox, for example. Once Macroscop CEO Artyom Razumkov talked with one of the creators of this service. He said that the idea of ​​storing files in the cloud was known for a long time, and for this it was necessary to click on the button only 1 time - upload the file. What they came up with is just a transition from one click to zero clicks: a person simply puts the file in a regular folder and it uploads to the cloud automatically. The download button does not need to be pressed at all! This simple idea of ​​moving from 1 click to 0 clicks allowed them to fly to incredible heights. Here it is the power of simplicity!

    Or Uber. Why did he become so popular? Because it is extremely simple for the user: there is no need to call and tell the operator where you are going and where to go, count out cash for a taxi driver and suffer with exchange. You press exactly one button, and a car comes to you. What could be simpler and more convenient ?!

    image


    But why then aren't all products like Uber? The fact is that it is simply very difficult to do. Some people think that simplicity is just for everyone, but in fact simplicity is just for users, but it is very hard for developers.

    For example, Google. Google for the user is one search bar, it is very simple. But to ensure that by entering a search query in this line, the user gets what he needs, thousands of engineers, developers, researchers work. It would be possible to insert many different settings and filters that the user would have to twist in order for the search to give him what he needed, but Google engineers took it upon themselves. And in order for the user to be so simple, they implemented extremely sophisticated technologies that understand and guess what search settings are implied.

    How do we simplify the product


    Making it simple is difficult. It’s almost impossible to develop immediately. Therefore, the path to a product that is simple for the user most often goes through the simplification of something complicated, rather than creating from scratch something immediately simple and convenient.

    And to create a new one, and to simplify the existing one, we have one recipe - to do everything exclusively in conjunction with the user experience!

    In a previous postWe talked about how we created a new video analytics module - the function of inter-camera tracking. It allows you to track the trajectory of a person through several cameras of the video system. Initially, when the idea came up to create inter-chamber tracking, we did not think about its convenience for users. We wanted to RELEASE THE FUNCTION, as many developers want. And at the initial stage, inter-chamber tracking was one of the search filters.

    image
    Initially, inter-chamber tracking was one of the Macroscop search filters.

    Macroscop had a search by size, search by features, search by place in the frame and ... inter-camera tracking. Of course, this was illogical and inconvenient for the user. In order to activate inter-chamber tracking, it was necessary to do some incredible manipulations: first, find the person whose path you are going to build - to do this, set up signs, color the sample, find it in the archive; then on one of the results activate the inter-chamber tracking mode; then add samples one by one there manually. It was a long, difficult and absolutely not the way the user had to. And he had to "track": to see the object on the screen and build a trajectory right there, right now, and not draw signs and color the little men.

    When we understood this and decided to work on convenience and simplicity, we formulated the goal: 7 out of 10 people who had not previously used the function of inter-camera tracking and, moreover, are not professional users of video surveillance systems, but simply know how to work on a computer, should without verbal prompts with of our side to solve the problem of constructing a trajectory. We went through several iterations of improvement, after each of which we invited 10 different users, put them on a computer and asked us to solve this problem. And when 7 out of 10 “experimental” independently built a trajectory, we decided that we made inter-chamber tracking really convenient for the user.

    image
    In the updated inter-chamber tracking, you can start to “track” as soon as the right person appeared in the frame

    Today, communication with users is directly embedded in the development process. Developers call up and meet with those who use video systems, and directly check on them what they have developed. And before starting to develop something new, they must communicate with at least 5 users and understand in detail what exactly and in what form they need.

    So different simplicity


    How to balance the simplicity and functionality? How not to go into the gap and not remove something really useful and irreplaceable? To what extent can it be simplified? For consumer products, this facet is not. But you need to understand that consumer and professional products are different things, and you need to consider the approach to their development in different ways. Yes, it’s great for a person who wants to leave in a taxi to simply press one button. But for a person who works with a professional security system, pressing one button is somehow frivolous.

    For business products, such as video surveillance software, the issue of simplification is dialectical. We must seek a balance of simplicity and functionality. This dialectic also arose with our simplified inter-chamber tracking. We made a simple interface that allows unprepared people to build a trajectory, and for this we included special tips in the function. And when the updated inter-chamber tracking fell into the hands of professional users of security systems, they said that they did not need these hints at all and even interfere.

    Perhaps we made a mistake inviting people from the street to test not professionals, but people, because this is a highly specialized video analytics function that experts will use. On the other hand, we believe that inter-camera tracking is a solution that can fundamentally change the work with the archive for everyone, and not just for professionals. There’s a contradiction for you: on the one hand, we now clearly understand that only professionals use inter-camera tracking and do it for them, on the other hand, we believe that this function will be able to change the approach to working with the archive as a whole for ALL USERS.

    There is no single answer to the question of the limit of simplicity, and there is no one right recipe, otherwise everyone would use it.

    How to combine incompatible? Split up!


    If you need to simplify, but you don’t want to refuse functionality, you can separate the products.

    One day, our key partner asked for Macroscop software development for a very large, serious project. It was necessary to implement a chat for communication between the operators of the video system. When we began to do this function, we realized that it was very specific, and 99% of users would not be needed. Then we first thought about dividing the software into two different products, one of which will focus on simplicity and most of our users will use it, the other, a specific product, will focus on functionality and be used in complex large video systems.

    We decided that such a separation could be a good option to maintain a balance of simplicity and functionality. A few months ago, we released a product for large-scale Macroscop Ultra video systems and decided to remove some of the existing functionality from the “regular” Macroscop.

    There is no one right decision


    The issue of simplicity in product development remains open to us. We did not find the only true solution and unequivocal answer to the conflicting dialectic questions “to what extent should I simplify?”, “How to remain a functional and useful product?”, “What audience should I focus on when simplifying?” Perhaps because they are not there, and each developer makes his own decision. Nevertheless, today we see several ways to come to simplicity:

    1. Eliminate all unclaimed features of the product. In this case, the decision to remove each function must be made based on feedback from direct users.
    2.Leave all the functionality and at the same time globally work on the interface, trying to reduce the receipt of the desired result to the user by “pressing a single button”. In this case, one must understand the full utopianism of this goal.
    3. Divide the product into several versions, focused on solving different problems and use by different users.

    Also popular now: