⬆️ ⬇️

Startup eyes of the developer. Which framework is better to choose

We live in a time when people are tired of doing certain operations manually and are ready to pay money so that others can do it for them. And it does not matter whether it is a question of writing to a doctor, searching for a contractor, advantageous airline tickets, cleaning the house or preparing a delicious homemade lunch.



What unites these ideas and what does it mean? People began to value their time above the money they earn at work. At the same time, it is not necessary to have some completely unique idea; it is enough to be able to do something better than others or have some zest.



There are many inspiring stories on the Internet that a promising start-up has emerged that has already gained multi-million investments. At the Promotion conference organized by the Unified Frontal System program, there was a lot of talk about creating new products and startups, and even selected the best banking application ideas at the end of the competition.

')





And today, in our post, Nikolay Nadorichev, the leader of the front-end development program of Sberbank's Unified Frontal System, will tell about his vision of startups, common mistakes and how to create an application in one evening using React technology.



Development Approaches



What do we know about developing a startup? It consists of several stages:



  1. Proof of concept
  2. Getting investment
  3. Team gathering
  4. MVP Development
  5. Presentation to the investor and receipt of a new round of financing


Many startups make the mistake of trying to develop MVPs before going to venture funds. This leads to the fact that over time, the motivation of the team falls, and increases the likelihood that the project does not see the light. To avoid this, it is necessary to clearly understand when it is necessary to stop and take the product out. If you look at consulting companies, you can see that many of their products pass through the presale stage, when development time is rigidly fixed to prevent the company from wasting resources.



The team must have a clear leader who will defend the interests of the team when communicating with a potential customer. In addition, he must have a clear vision of the product, the ability to anticipate the pitfalls and possible problems. And not only in technical terms, but also in terms of communications. In large companies, as a rule, this role is carried out by the owner of the product, in smaller companies - timlid.



Reasons for the failures



We came up with a startup, he is cool, but he didn’t shoot. Why?



The first reason is an attempt to grasp the immense. Many young, self-reliant developers feel like superheroes. They are trying to create the perfect solution, but it takes too much time.



The second reason is the development of a detailed application architecture. You always want to create the perfect product with the perfect architecture. But this only works in large corporations where it is possible to finance even a product in which not a single line of code is written. And often this is a reference to the waterfall development model .



However, delaying the process of obtaining feedback from the investor can entail enormous costs for rewriting the code. If there is a person in the team who knows flexible development methodologies, then it would be useful to build the development according to the scrum model. If there is no such person, then you can not use the development methodology at all. A common command chat is enough to quickly solve problems and tasks.



Technology stack



Framework



We have an idea, now we need to create an application. Where to begin? Before proceeding to the choice of technology, it is necessary to determine what technologies we need.



First, you need to decide on the framework that will be used in the project. The main goal of the framework is to set the rules of the game according to which the product development will take place. There are a lot of different technologies in the world of frontend, but let's define the selection criteria:





Let's start in order. Community support includes the number of npm packages that can extend the functionality of the application, as well as the number of commits in the project from external developers. Next, pay attention to the promotion of IT giants: no matter how good the product is, its recognition is always important. If a product has a huge corporation behind it, then there is a great chance that it will suddenly close, turning your megaproject into a bunch of legacy code. The third important fact is the ease of learning. In my opinion, additional comments are not needed here: why develop on a framework that will kill a lot of time for mastering? And last but not least, maturity. How long has the technology been on the market? How is actively developing? By answering these questions with the words “long ago” and “actively,” we can say that the technology suits you.



Based on these considerations, we in the “Unified Frontal System” Program have chosen the main framework for developing React. Why? Let's go through all the points: for React there are a huge number of written UI elements, libraries for managing the state of the application and other modules . This makes it possible not to do part of their work - you can simply take a ready-made component and embed it in the application.



On top of that, React is easy to learn and there are quite a few developers on the market who know it. This will gather a team and send it immediately to the battle.



With all the advantages, React has a fly in the form of a complex project setup. Fortunately, Facebook took care of this and released the project Create React App . He was originally sharpened on a quick start to the project with the transition from the idea immediately to development.



Nikolay told how to create an application on the reactor in one evening. See video instruction.





Uikit



Allow yourself to create your own unique set of UI-components can only companies that already have a separate team to develop UIKit'a. There are stories when UIKit is developed by all product teams together, but this approach has a key drawback: the more developers, the more opinions. And ultimately this will lead to the fact that each team will drag the blanket over himself.



But our goal is to release MVP in a short time. In the vast network there are many ready-made solutions, both paid and open source. There are several popular ones:





Each of them has its own design, it remains only to choose which one you like more.



MVP



Or Minimum Viable Product - minimum viable product. It implies that there is some minimum application that provides proof of concept. Its main goal is to show that the product has the right to life. It does not require a detailed study of the database architecture, work under high load and beautiful design. Often, it shows some interactive image that you can touch.



And most importantly - do not forget to always think about the future of the project. You need to understand whether you need a product, what are its future prospects. And if you honestly answer this question positively for yourself, then it is worth rushing into battle and winning. Have you tried to participate in a startup or organized your own? What are the successes? We invite you to discuss in the comments.

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



All Articles