📜 ⬆️ ⬇️

Developer brain productization: how to stop writing code and start writing applications

The mobile market is developing so rapidly that in order to appeal to users, it is not enough to develop just a good application. It is necessary to focus on the audience, to offer interesting and useful features, but not to overdo it. How to balance between writing code and creative ideas, where are the most interesting projects now and do you need user data to create a cool application? We talked about this with Android expert Jonathan Levin.



Jonathan Levin has the title of Google Android Experts. At one time, he played a key role in the success of Gett and received funding from the genetic market connector KolGene. Jonathan is an accomplished Android developer, as well as an entrepreneur who knows how to turn good ideas for an application into a profitable product.

')

Code and tools


- Usually applications are developed according to a clearly defined TK. What is wrong with the developer focusing only on the code?

Yonatan Levin: Of course, there is nothing wrong with that. But nothing good. To paint everything in TZ is an extremely difficult and sometimes almost impossible task.
A developer who simply writes code will simply write code. And he, probably, will work as it is specified in TZ.

A developer who understands why he is writing just such a code, how and by whom it will be used, where this product will grow and what is the general purpose of all that he does, will write not the code, but the product. After all, we, the developers, are the source of knowledge about what is best to do on this or that platform and how to build this or that technical solution, based on the needs of the user. And for this you need to ask a lot of questions, to understand what, why and how all this as a result will make the life of users of the product better.

- How to correctly set the task and what tools and approaches to use?

Yonatan Levin: I don’t know how to do it, but I’ll tell you how I try to do it myself.
At the stage of the formation of the function / product, all the developers of the team are discussing this function. I prepare the description and all the basic data in the format: "who is the user, why we need such functionality, who will use it, how we will measure its success." Then we sit down and all together discuss how best to come to this or that decision.

Each of my fellow developers is an expert in their field. I can’t say for them what can be done better on an iPhone, on the web or backend. Of course, I can write code for each platform and choose some kind of architecture, but my colleagues are experts on each of these platforms and know better than me what is best for it.

As a tool, I think the best thing is a pair of markers, a discussion board, a delicious lunch at the company's expense and a whole day for planning and discussion directly.

- Many developers solve typical problems in the framework of the pipeline (for example, in web studios). How can you diversify ordinary tasks and should it be done?

Yonatan Levin: Someone once said that any development for Android comes down to pulling data from the backend, parsing and showing them in the list. Any task can turn into tedious and boring. On the other hand, the same task can be turned into a super-interesting and exciting one.

I think this way: if you received a task with which you already know, you did it 100,500 times and you do it in a third of the allotted time, this is your opportunity. There are many different libraries in development, architectural solutions, changes - this is a great opportunity to try out something new, see how it works under the hood, and thanks to this upgrade your skills.

User analysis


- How to learn to move from grinding and beauty code to user analysis? At what point comes the understanding: “That's enough. Users need a quality application, they are not interested in my code? ”

Jonathan Levin: At what point did the understanding come? - In Gett, every time I was very excited about the release of one or another innovation in technology, I immediately ran to do it, implement it and integrate it into the application. This resulted in sleepless nights of bug fixing and users who could not safely use the application.

I think at first we were all like that. Somehow VP RnD with my new excited story about a new thing, which Square did, asked me: “Well, well, and what is the use of our business, how will we benefit from it?” I could not answer. Later, I realized how right he was. It was just another refactoring of what worked and did not require additional resources.

More code - more bugs. Any refactoring is a business risk. Enough a couple more to the user to stop using the application. He will not be worried that you now have Rx, Clean Architecture or some new ORM there.

If you can not clearly describe what the business will benefit from your refactoring, it is worth considering whether it is needed at all. Could it be better to spend time creating a new function that will bring even more glory to your application?

How to create a unique application?


- I would like to make some useful and interesting product for users. What areas do you recommend to pay attention to? Is there an interesting niche for some reason not occupied by developers?

Yonatan Levin: Today Machine Learning is probably the hottest topic. But not as a product, but as a technology. With its help, you can create products that were not previously available, without having to be a doctor in applied mathematics or algorithms.

There is already a very large set of tools for creating products based on Machine Learning - from TensorFlow to all OCRs. And the field of activity on which this can be applied is truly enormous: I would advise starting with a problem that worries the developer most of all. After all, the best product is the one that you use yourself.

- Suppose I have a wonderful application in a narrow niche. How to inform users of its uniqueness? In the store a huge number of applications falls out every day. How do you stand out from the crowd?

Jonathan Levin: I have such an exam. I call it the exam "wow". And it begins with the fact that if it is not “wow”, then I disagree with that.

If a person came to the interview and I didn’t have a “wow” feeling, I don’t take him to my team. And “wow” is not necessarily the technological part. For the most part, it's about what kind of person, what he is.

It's the same with products - you have to strive to do “wow”: wow design, wow-user experience, wow code, wow communication.

Usually, any idea that you can think about, most likely there are already 10 people who have thought about it and have already begun to do something. Therefore, it is not so much the idea, how much its implementation. We must strive to ensure that everything is “wow” - in order for the chances of becoming the best to be the highest.

- How to impress a user from the first seconds of launching the application? What not to do? For example, when is it better to use splash screen, push notifications and other means?

Yonatan Levin: My personal opinion: SplashScreen is a pain. On average, there are about five seconds to make a first impression of the application and hook the user to the hook. SplashScreen is usually a company logo on a beautiful background. Most often, developers use it to load all sorts of settings. In fact, this should be what users will remember about your application. There are other more interesting solutions used when loading parameters in the background.

I think that a great hook is to immediately show your user the bait: that is, what your application does.

And this can be done either through the OnBoarding process, where you can tell the story of what is in your application in a very beautiful and interactive form, or you can immediately show the main actions. For example, if you have the application “supermarket”, immediately show the possibility of adding the most delicious products (chocolate!) To the basket, and only when he finishes choosing, offer to register.

- Suppose an application collects a lot of data in the background: geolocation, media content, contacts, etc. How to disguise it correctly? And whether it is necessary to mask?

Jonathan Levin: Transparency is probably the best thing you can give to users. When I was little, we were always told that everything secret became clear. Sooner or later someone will do the reverse-engineering of your application, and everything will come out. The damage to the company will be huge.

It is much better to give the user the opportunity to decide whether he wants to or does not want to give you his data, explaining what will happen to them and how. In my experience, most are ready to give their data for certain features in the application.

- Is it necessary at all to collect data about users and to what extent? It does not violate their privacy? How did this help in reality? What services and extensions do you recommend to use?

Jonathan Levin: Without data - as without eyes. Difficult to find the true path in the dark.
From the point of view of legality, the most direct way is to hang the terms & conditions with which users agree. Subsequently, it can get rid of many problems. This does not mean that you need to run to a lawyer and pay him a lot of tugriks. The Internet is a very useful thing, if you search a bit, it is quite possible to find a template Terms & Conditions, which will be suitable in the early stages of development until a lawyer appears in the company.

As for privacy, I think that it, as a fact, no longer exists. If someone thinks that he can hide something from someone who really wants to get this information, he is mistaken. Therefore, I do not particularly worry when someone collects information about how I use this or that application. And the majority of users, as many cases show, put a tick on Terms & Conditions, even without reading.

In reality, such information is a treasure. The treasure, which then helps to figure out what works and how to use the functions of the application.

For a start, I would advise to put FullStory for the web and TestFairy for mobile applications. This will allow you to see what your user is doing on the site or in the application. I assure you, you will be surprised at many things.

In addition, Google Analytics / Firebase Analytics provides a lot of freebies in the form of events that can be recorded and used for further processing.

If possible, measure everything. Starting with how many times they clicked on the button, up to which photo was viewed the most. Not to mention that fixing business metrics is an absolutely necessary thing.

- Here we collect data, analyze each step of the user in the application. How to properly manage this data?

Jonathan Levin: Every time we develop a particular function in an application, we need to determine which metrics will measure its success.

Let's say that we added the auto-complete function of the name of a genetic test when ordering it. How to find out if it works successfully or not? What will be considered success for this feature? Maybe the number of successfully prompted names in the test? Or maybe the total time spent on the order screen? Or the letter we got from?

All this needs to be specified in advance and measured, and then decide what to do with it. And if it does not work, cut the functionality as a rotten part.

How to understand if the application is successful?


- How to install KPI for your project? How to check their performance with analytical systems?

Jonathan Levin: By trial and error. The easiest way to proceed from the business model. Those. if earnings come from the number of genetic tests performed, you need to measure everything that may affect it. For example, KPI can be from the level and time of the laboratory interaction and the speed of its work to the price range in offers from different laboratories.

- Tell us about the A / B tests. How and how to implement them correctly? How not to overdo it with A / B tests?

Jonathan Levin: I love Firebase Remote Config. It allows you to fasten different values ​​based on who the user is, where he came from and how he behaves.

You can make different events in Firebase Analytics, and if one of them happened, then do something special for this user.

For example, you can set the order button in the top menu, say, as the Bottom Tab, and measure where the most users are converted into those who order. These experiments can be run continuously and continue for as long as you like.

What's great about RemoteConfig - these experiments and tests can be done all the time. From different colors to navigation within the application. The main thing: to think over them in advance when developing the functionality. Especially if there are nuances about which there is no single opinion. The best thing is to screw it to the RemoteConfig and see what works more reliably.

And most importantly - when you realized that it works best, and you know that it will not change in the near future - clean the code and delete all these preparations for a coffee maker inside your application. Less code - less bugs.


If you like to savor the details in mobile development just as we do, you probably will be interested in these reports at our November conference Mobius 2017 Moscow :

Source: https://habr.com/ru/post/341480/


All Articles