[RUBY] [Must-see for fledgling engineers] A story that the world expanded when I actually operated a web service that I made by myself

Introduction

Hello. My name is Kacchan and I am currently changing jobs with the aim of changing jobs to a web engineer.

When I learned programming by myself and tried to operate a web service, I was able to obtain a tremendous amount of knowledge that I could not get by learning, so this time I also serve as an output for a fledgling engineer like me. I would like to share it.

I hope you find even one useful.

Services that we operate

Right Guradians

Service overview

Destiny2 is a place to prevent mismatches after registering as a friend of an online game and meet the ideal user you are looking for. Services to provide

Please see GitHub for the code etc.

Programming learning situation

・ Front end (mainly HTML & CSS) → 2 months ・ Backend (Ruby & Ruby on Rails) → 5 months ・ Infrastructure / development environment (mainly AWS “EC2, RDS, etc.”, MySQL) → 2 months

Roughly speaking, we have developed a web service through the above learning. (I don't go to programming school at all.)

Now let's get into the main subject.

1, UI is really important

"If the UI is appropriate, the service will not be used!"

The UI is the user interface, which is the point of contact between the user and the service, the ground plane, that is, all the parts that the user actually sees and uses the service.

If you can create a service with this UI in mind, users will be able to use the service "intuitively" and without feeling stress.

However, if the service is not created with the UI in mind, when the user accesses the site, "How should I use it?" "I don't know the merit of using the service" "What is this service in the first place?" When you use the service like this, you have to make the user think about it one by one.

As a result, even though they have accessed the site with much effort, they are withdrawn (users leave the site) without using the service.

This is the first time I have experienced running the service, and although it registers for the service, there was a problem that users did not move voluntarily from there after registration.

The reason why such a problem occurred is that there was a problem with the "UI (user interface)" mentioned above.

The reason is that users could not use the service intuitively, which made them feel stressed.

If this happens, it will be difficult for the number of people who continue to use the service to increase, so the service will not be used unless improvements are made immediately. (Currently improving)

Users, including myself, are so delicate that even one click on a link is so delicate that they don't click on it, so it is necessary to design and develop services so that they do not feel stress as much as possible. (I actually experienced it and learned it)

I think that I was able to have a very good experience because the awareness I gained from this experience was never gained by developing it alone.

Therefore, when developing a service, please think carefully about the UI when developing.

Set personas before development to improve UI

This is one of the findings that I got from running the service for the first time this time, but if the persona is not set properly, the service that I took the time to create will be useful for solving the user's problem. It means that the risk of becoming a missing item increases.

Setting a persona will prevent a mismatch with the user needs that you want, and as a result, it will lead to an improvement in the UI and further improve the UX (user experience).

(UX refers to the experience that users get when they use products and services)

So be sure to decide on a persona before developing a service.

(Persona is a fictitious person who is the most important target you want to use your service.)

I will omit this time because it will be quite long to introduce how to set personas, but for the time being, I personally describe the user's "characteristics", "habits", "sense of challenges", "values I want", etc. I think it's best to focus on the settings.

If you want to know more about how to set a persona and the benefits of setting it, please refer to this site. ↓ ・ Do I have to set a persona? Benefits of setting and how to create

2. The raw voice from the user is very educational

This is also the knowledge I gained since I actually started operating the service, but by actually having the user use it, I understood problems that I did not notice when developing by myself and the behavioral psychology of the user, and in the future I learned a lot in running the service.

To introduce some of the live voices that actually arrived, ・ It is inconvenient not to be able to jump from the recruitment list to the personal profile, so I want you to improve it. ・ I want you to be able to easily share your profile on Twitter and spread it. ・ I want you to be able to fill in the necessary information

We received many opinions and requests.

Since it is a voice from an actual raw user, I think that by reflecting these opinions and requests in the service, we can make more critical improvements and expect a significant UI improvement, so we are currently working hard to respond. I will.

I didn't realize these things until I actually operated the service, so I really learned.

3, Overwhelmingly used from smartphones

スクリーンショット 2020-05-18 23.37.26.png

If you look at the flow of the world, you can probably expect it, but I realized once again that the users who use the service are overwhelmingly used from smartphones.

The data is from the service I run, but 80% of the data was used from smartphones.

From these things, I was able to gain the knowledge that if you want to develop a service, you must design it with UI / UX in mind, considering the use from smartphones.

When considering the layout on your smartphone, it is very convenient to use the "Developer Tool" available from Google Chrome.

Also, this is a digression, but the developer tool has a network called Network, where you can see the "whole request", which can help improve errors that are not in logs such as Ajax.

If you are interested, please take a look here. ↓ Chrome developer tools can be used to understand the status of requests and improve the display speed of websites

4, It is very important to increase the number of repeaters

I have noticed this since I actually started operating the service, but it will be difficult to operate it as a service without repeaters, no matter how many new registrants there are.

This is very important in the operation of the service because it is related to whether the user is firmly established in the service.

However, I noticed this only after I actually started operating the service, so I couldn't think of a mechanism to increase the number of repeaters and introduce it. (Stupid ... lol)

Actually, on the first day of the service release, the number of new registrants was about 200 and the number of accesses was more than 1200, but on the second day, the number of new registrants was about 30 and the number of accesses was reduced to about 600, which is half. It's gone.

Of course, this is partly due to problems with the UI, etc., but it is also due to the fact that we were not able to introduce a mechanism to increase the number of repeaters and retain users in the service.

I think this will differ depending on the service content, but if it is a service that connects users like the service I developed this time, it will remove the psychological hurdles that occur when users communicate with each other and interact naturally. I think that we can increase the number of repeaters a little if we can create a mechanism that makes it easier for people to be born.

Therefore, I learned from this that it is important to create a mechanism to attract customers and increase repeaters in order to operate the service.

5, 200 new registrants on the first day of release

About 200 people newly registered the "Right Guardians" developed this time in just one day from the release, but this was a reasonably good result among the fledgling engineers who are new to programming. I think it may be.

Go to see the evidence (By the way, the number of accesses was over 1,200.)

Approach method used when attracting customers

・ Disseminate information on SNS ・ Advertise in media that prospective users often see ・ Create fans by giving the service a story ・ Involve prospective users in service development

This time, we approached attracting customers by the above four methods.

Contact prospective users on SNS

First of all, we sent information on SNS to prospective users who are likely to use the service we developed this time so that they will be interested in the service we are developing.

When disseminating specific information, listen to a lot of live voices of prospective users, extract the most troubles, and send them with interest in the service as a means to solve those troubles. Did.

Advertise in media that prospective users often see

This familiar medium can be understood by actually deciding the persona before developing the service, so deciding the persona is a must.

And the medium I advertised this time will be the blog I wrote as a hobby.

Before I started learning programming, I wrote a blog under the name of "Kacchan's Destiny 2 Strategy" as a hobby.

Even though I hadn't updated my programming learning at all since the first time, I still had about 40,000 PV a month, so I advertised the service on my blog.

In the blog, in order to make it easier to get interested in the service, we advertised with an awareness of the story that we accurately understood the concerns of readers (prospect users) and developed the service to solve those concerns. ..

Give the service a story

Even if you simply advertise the benefits, it will not affect the users, so I approached it with an awareness of having a story.

In particular, "Why did you decide to develop a service?" "How did I feel and what process did I go through before developing the service?" "Make prospective users aware that they need this service by raising potential problems (enemy) on the surface." I approached it with a story in mind.

Involve prospective users in service development

It would have been nice to create and release the service by myself, but I felt that it was a little weak, so I hurriedly planned to involve prospective users on Twitter just before the release.

The plan is that "expected users decide the name of the service by themselves".

For this, we planned it with the hope that prospective users would be attached to the service before the release.

And this went well, many people were interested in the pre-release service, and there were actually a lot of applications.

When I actually tried these four approaches, the biggest thing I noticed was that if you support me, I will win.

In fact, I think that the service I released this time seems to have only a margin for growth from the perspective of general engineers.

However, if there are a certain number of fans who can support such a service, they will be able to use it.

This is the first thing I noticed when I run the service this time.

Finally

The above is the knowledge I gained when I actually started operating the service. Was there any content that could be of some help to the reader?

When I actually operated the service that I developed by myself this time, I thought, "Even beginners can try to operate the service!"

To be honest, I didn't expect to be able to actually operate the service, but when I was absorbed in studying programming, I got there before I knew it.

Actually, I was really impressed when users used my own service, and from such experience, I became more and more eager to become a web engineer. (I was really excited!)

Therefore, if you are starting to learn programming, why not try learning programming with the feeling that you are actually developing a service to solve problems in the world, not for a portfolio for changing jobs. (Sorry for saying that programming beginners look great ... lol)

Last but not least, I, Kasai Kasai, is currently changing jobs to become a web engineer.

This experience has made me want to develop web services even more in earnest!

So, if you are a self-developed company that develops your own service, if you read this article, please do not hesitate to contact "Wantedly". I hope you will take a closer look and be interested in me. We are always looking forward to hearing from you. Thank you.

Recommended Posts

[Must-see for fledgling engineers] A story that the world expanded when I actually operated a web service that I made by myself
Java: A story that made me feel uncomfortable when I was taught to compare strings with equals for no reason.
I made a check tool for the release module
I tried a puzzle that can only be solved by the bottom 10% of bad engineers
I made a reply function for the Rails Tutorial extension (Part 4): A function that makes the user unique
When I made a bar graph with MPAndroidChart, the x-axis label was misaligned for some reason
A story that made me regret when a "NotReadablePropertyException" occurred during the development of the Spring Boot application.
The story that a model is not a "correct representation of the real world" / the need for a bounded context