![App for customers App for customers](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/2f9/ec3/14b/2f9ec314b08cf044784d673d70166ac7.jpeg)
Hi Habr!
My name is Dmitrii Konstantinov. I am a product manager and I love developing mobile apps. I'm passionate about them and believe that some things are much more convenient to do in a mobile app than on a desktop or web. I recently published my first article (check it out!) on Habr and want to write more and share more experiences. I thought about which of the challenges I solved as a product manager I remember the most and why. The answer will no doubt be "that one startup". There are a lot of "I" in this introductory section, so it's about me personally. But this entire article has a structure and a title with the word "We" because I did not go through this experience alone, but with a team.
All my reflections in this article are a kind of retrospective. I worked at the startup for a little over three years and left it a long time ago. The last updates of the mobile apps came out in the last month of my work. My memories of the company are exceptionally good, and we said goodbye to each other in time. I tried to describe the business moments and the technical challenges we had to face. In the screenshots from the app, the text will be in Russian, because the app was created for the Russian market. The article may be of interest to managers, designers, and engineers. Let's start!
The Team
In a startup, with the right management, you can have a family-like atmosphere when you order pizza with beer on Fridays after work and play "Broforce" (not everyone loves FIFA) on the PlayStation.
One of the questions at the interview, when I applied for a job in this company, was why I put a certain number in my CV in line with the expected salary. I honestly answered that when the number was 20% lower, no one called me for interviews. After that, we laughed, and a little later I accepted an offer. I hope that I got it not only because of this joke.
The former CTO is now the host of one of the largest RU IT podcasts and is developing marketing in the company that is the author of the current main Android language. The former iOS developer wrote a famous article about two jobs and sometimes reflects on "that one startup". The former android developer works in the UK's fastest scaling FinTech and etc. Our team was quite talented.
![CrossFit event. The guy on the right is me. The inscription on the plate is "Passion" CrossFit event. The guy on the right is me. The inscription on the plate is "Passion"](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/2ae/4e8/71e/2ae4e871e8b16ad4f1387e4620ab5fe9.jpeg)
Plan A - App for customers (or "Beauty Uber")
A ‘startup’ is a company that is confused about:
1. What its product is.
2. Who its customers are.
3. How to make money.
– Dave McClure, 500Startups co-founder
The first idea of the startup was to create two mobile apps ("Mobile First" approach!) - one for customers who buy services and one for beauty masters who provide these services.
The whole focus was on the first app. It was the main one, it had a much larger number of screens and was created as the main and only way for an organic interaction with the service. Organic user - the external user who saw an advertisement for our app in a famous social network banned in Russia. The app contained a catalog of services and a list of salons and masters. Immediately after placing the order, a potential customer could discuss all the details in a chat with the master. It was also possible to order the services of a master at home (yes, the "Uber" from the title was not clickbait). We had a small department that moderated the masters who wanted to become part of the service. Registration in the app for masters was firstly through the request on the landing page, later we added it to the mobile app for masters. One of the advantages of moderating masters is that we took a professional photo of each of them and they looked very cool on the master selection screen (yes, I'm talking about you, the master who took a selfie in the car and put on your avatar, when we added the ability to put personal photo for a few weeks).
We monetized the app for customers. At first, we did not have bank acquiring and only had the option of paying in cash directly to the master. What exactly did we earn? We took a percentage of each order for bringing customers to the master. The master signed a contract where he agreed to behave well, not to cheat and share percentages. In theory, the master could share personal contacts in the chat so that the customer would go to him directly next time bypassing our service, but this was a necessary risk that we, as a business, had to take.
The customer had 3 options when placing an order:
Come to our signature, highly expensive, and luxurious salon, which our founder freshly named "Spot"
Come to the master's salon, which some of them decorated right at home with our permission. What could go wrong if the user selected this option? For example: once I came to the master, whose husband sat right in the room in his pants in front of me and watched some cartoon at high volume. (I do not recommend this option)
Invite the master to your home. The order automatically included an additional service with a dynamic price called "Home visit" The nearest available time was calculated based on a distance from the city center. The master in the app had the ability to select the metro stations where he was ready to come, and we calculated about 1.5 km of the available radius from the metro station and did not allow placing an order further
A little later, we added the ability to pay through bank acquiring, directly in the customer app. In the master app, we added the ability to upload a card to receive money.
![App for customers ver. 1 App for customers ver. 1](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/1c2/5fb/1c9/1c25fb1c9ec01251966f94e072ba1d05.jpeg)
Let's stop talking about business for a second. I promised technical cases and challenges. A short story about the most typical case that we solved then. When we designed the beauty services table in the database, we did not expect that the price of coloring is not a fixed price, but a delta. The reason is that neither the master nor the customer knows how many consumables (hair dye, shampoo, conditioner, etc) will be used in the work, so the customer always carries more money with them, and the master tells them an approximate delta. Therefore, a little later we had to add a new attribute to the API and add the crutch condition "first look there, and only then there" in mobile apps.
Or another story. We needed to implement the ability to communicate through mobile apps between the master and the customer. Write and build SDK from scratch? Why bother, if you can take a solution from a famous dating app! Mobile developers sometimes dream about WebSockets. We also dreamed about them. How to make a live chat that will be updated with every message? Update the chat via push notifications!
Failure
So far so good, right? Well, we couldn't answer the third question from the quote I mentioned above. The service didn't grow fast enough. In the system that we built, we needed to scale thirty-fifty times faster than we did, and only on a gigantic turnover of funds would we begin to bring an acceptable profit. This was impossible to do in the market in which we existed. Therefore, the pivot decision was made.
![App for masters ver. 1 App for masters ver. 1](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/632/9e5/26f/6329e526f40f1b677753828226594258.jpeg)
Plan B - App for masters (or "Beauty coworking")
If Plan A doesn’t work, the alphabet has 25 more letters.”
– Claire Cook, Author.
Time to stop and ask ourselves, what do we have?
2 native mobile apps for iOS (for the customer and for the master), 2 native mobile apps for Android (for the customer and for the master), web landing for customers, a server, an admin CRM panel that has not yet been completed, and last but not least two signature highly expensive and luxurious spots! (Customer's option 1, remember?)
If the business cannot scale up, then you need to pivot! When a business pivots, it means that it’s changing some aspect of its core products or services. Businesses might pivot to better meet customer demand, shift their target audience to boost sales, or some combination of both.
We came up with the idea to turn our spots into beauty coworking spaces. Our target audience has changed from customers to masters. Now the masters are our main customers, but in the article, I will continue to stick to the old naming. The secondary app began to require a lot of improvement because it has now become the main one.
The audience of masters is much smaller. If with customers our MAU (Monthly Active Users) was measured in thousands, then with masters it was hundreds. But the masters have much more LTV (Lifetime Value) and it is easier to work with them because they come to the salon and provide all the services in it.
![Pivot sketch made by me Pivot sketch made by me](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/002/266/70c/00226670caaf86c789789a98071f5faf.jpg)
Let's take a closer look at what we have at this point in the master app. Calendar with order schedule, chat, statistics, and ability to manage your list of services and portfolio. The master himself decides which order to accept, all accepted orders are displayed in the calendar. The master in the first version of the app had a very simplified calendar, in which he could set free time in a particular salon and see the order in the schedule.
We needed to monetize the master app and scale our server to a business pivot, significantly improving the ordering API method, because most of the orders in coworking are booking a chair for a certain period. We also needed to refine the customer app by changing the payment system, because now he pays the entire amount to the master, and we charge the master at the rate for how many hours he worked on the chair.
The following options have been removed from the customer's app: for the customer to visit the master in the salon (sometimes at home, haha) and for the master to visit the customer at home (goodbye "beauty uber").
New challenges
Business pivots usually do not go smoothly. In our case, a decent part of the development and management team left. Fortunately, we managed to hire new people who have not yet burned out and wanted to actively create, prove and develop the service and platform.
What technical challenges did we face? The most unexpected challenge was that the new guys who came in could not scale the code written by people before. Therefore, the difficult decision was made to write the methods from scratch (and in fact the whole server), but in the Json API structure that was used before, in order to minimize changes in mobile apps as much as possible. We planned the work, I made a Gantt chart for mobile development, which was based on the deadlines in the Gantt chart for the backend.
![Gantt chart Gantt chart](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/203/57a/206/20357a206a54cbecac2ebecf21959439.jpg)
At a certain point, we realized that the API methods have changed a lot and this timing coincided with the time when the last Android developer left us.
Tip! Have at least two developers on the same platform so that the bus factor is not the minimum possible (1.0)
What did we have to do? One front-end web developer took the initiative, but a month later we realized that nothing was working out for him and this problem could not be fixed by some kind of code review, because we had no Android experts left. At the same time, we were writing a widget for the web, which reproduced the flow of the mobile app for customers.
The terrible idea came out itself because we had no other choice. We made an Android app that contained only WebView with our web widget.
I have a pen, I have a apple
Uh! Apple-Pen!
I have a pen, I have pineapple
Uh! Pineapple-Pen!
Piko-Taro, singer/songwriter
![App for customers ver. 2, WebView app (only on Android) App for customers ver. 2, WebView app (only on Android)](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/02d/550/eaf/02d550eaf5555cce3d8393df0e5cb1ed.jpeg)
Customer Development
With the change of focus and target audience to another app, we had a unique opportunity to talk to literally all the masters that we had. We conducted over 100 interviews. We studied why they chose us and what turned them off before they came to us. We saw the patterns in the interviews, and based on these patterns, we made a new "Welcome" screen, where we wrote about the benefits of our service based on the fears and needs of users. The screen consists of a videos of the masters at work and a slider with our main advantages. Yes, I understand videos on the "Welcome" screen are out of favor these days, but 2019 was the heyday of vertical videos and TT (back then it was under a different name). We spoke to the master on this screen without capital letters, but with emojis are in the style of the company's brand book.
What fears and needs for service did the masters have?
Work chairs in the coworking space will be dirty — on the very first screen we say that our service is about "cleanliness" and "comfort"
The need to purchase consumables, preferably at a low cost — we agreed with suppliers and sold the materials to the master at almost wholesale prices
How and where to meet a customer? — The customer will be met by a polite administrator and escorted to you
Will there be a confirmation call after booking a seat in the mobile app? — No, we are a "Mobile First" service. Book, make an advance payment 24 hours before the start of the order in the mobile app and come to work
!["Welcome" screen of the app. We tell the user about our benefits, knowing about their needs "Welcome" screen of the app. We tell the user about our benefits, knowing about their needs](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/0a5/dc9/501/0a5dc950133568f1074da656af6269c6.jpeg)
The master have 2 options when placing an order:
Booking (the booking flow in the screenshot below)
Customer order (by entering a phone number and name). The customer order created in the master app automatically registers the customer if he is not registered in the system. We will send this customer an SMS the day before the order with a link to the mobile app. This is where the advantage of the "Mobile First" approach comes in. The customer has the same flow during registration and authorization, they only enter the phone number and code from SMS. No logins and passwords - awesome!
Next, we implemented the onboarding flow for placing the first order (in the screenshot below).
![Onboarding booking flow 1 Onboarding booking flow 1](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/315/f76/2c8/315f762c84b508790832a4c4b30f757d.jpeg)
![Onboarding booking flow 2 Onboarding booking flow 2](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/ef0/3fe/3fb/ef03fe3fb9ba6eb9af1a7caa941c2303.jpeg)
Our founder had an idea that the master could "pull" time interval in the calendar (like in Google calendar) to select the desired order duration. Personally, I liked the implementation similar to Apple calendar, where you can easily change the beginning of the interval by moving your finger, while in the Google calendar the finger is "stuck" at the first point where the user tapped. My team and I came up with what I think is an amazing progress bar solution, combining the best of Apple and Google calendar. The progress bar filled up in just over one second. You can see how it works in the screenshot above.
Summary and conclusion
We made and successfully released the site and apps on time. Our main metric of success was the overall chair occupancy, and this metric was growing successfully. Everything was fine and promising until Covid came. Almost the entire IT team was disbanded. Later CTO from IT outsource contacted me and asked about the business part and the architecture of the mobile apps. Most likely they planned to pick up the development, but judging by the lack of mobile apps updates, it did not work out.
![Web, unified for customers and masters ver. 2 Web, unified for customers and masters ver. 2](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/e58/005/e7c/e58005e7ca0945c044a47a745bb90847.jpeg)
Here's what the pictures of the masters app look like on the App Store right now.
![App for masters ver. 2 App for masters ver. 2](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/37e/0ea/54d/37e0ea54dac6bfbc4beb1f53a5633974.jpeg)
The service continues to exist and flourish. You can see that beauty masters are still available for booking. WebView app is still available in Google Play! (Google, I have questions for you)
![App for customers ver. 2 (only on iOS) App for customers ver. 2 (only on iOS)](https://webcf.waybackmachine.org/web/20221118094521/https://habrastorage.org/getpro/habr/upload_files/871/cb5/5c0/871cb55c072b3d0e9d8811c3e37e16b1.jpeg)
In conclusion, I would like to note that a startup is a great opportunity for vertical growth in a company. You can develop your hard and soft skills anywhere, but in a startup, you can grow (or change) the title of your position. I came in as a QA and very quickly grew to Head of Mobile and reporting directly to the founder. If you are open and ready to work hard 24/7, then go to a startup instead of a corporation.
Thanks to everyone who read to the end! Leave a like and comment below - I would be pleased.