📜 ⬆️ ⬇️

From idea to implementation. Part three - we create TZ (technical task)

Kirill Danilevsky

I apologize to readers for a long break. Now I work on a large project, I do not have enough time for anything. So, I am writing a sequel to the series of articles “From idea to realization.” Here is the previous article: “From idea to implementation. Part Two - the birth of the idea "

Today I want to talk a little about how to cut your way from a bare idea to getting an investment. There are two important points here. For yourself, you need to decide who will be the investor. If you are able to finance yourself, this is very good. But if you have problems with finances, then you cannot do without external attraction of money.
')
But in order to interest the investor, you need to provide him with sufficiently detailed documents. Since the conversation with the explanation, roughly speaking, on the fingers, does not give the investor the opportunity to see the whole picture. Consequently, there can be no talk about money either.

And our main task is to prepare such documents that will help you get funding and will be able to clarify the picture for you with the future of your project.


The very first thing to do is to articulate a business idea clearly. It should be not just an interesting idea, but some kind of complete and closed solution that will help to achieve the goal. In order not to engage in verbiage, we take as a basis a certain example, on the basis of which we will build our documentation.

For example, there is a certain private laboratory where some employees work. These employees are specialists in the field of physics, have their own equipment, which allows them to carry out some complex experiments and produce results. All the original data are stored in the database, and the results are also stored in the form of some statistical data. When carrying out the n-number of experiments, a certain behavioral model is formed, thanks to which one can predict the result with a sufficiently high probability, without already conducting a laboratory experiment.

And at some point there comes an understanding that the demand for conducting experiments is not so great, the laboratory is limited by its carrying capacity, it is quite difficult to receive orders from different countries, each time it is necessary to conduct a large number of negotiations, enter into contracts, etc. The main idea of ​​the problem is that it is impossible to jump above the head. And those "jumps" that are, are quite complex, not mobile and expensive.

And here specialists have an interesting idea. And what if all our experience and huge data arrays are applied in the program, which will be a kind of artificial intelligence. Having this program it will be possible, with a high degree of probability, to get the right result when you enter your parameters. Thus, the program will calculate the correct result without using the laboratory, but only based on data from experiments that have already been carried out earlier. This saves a lot of overhead, and helps you quickly get new customers from all over the world.

The idea is interesting, already more or less formed. Begin the search for an investor who is willing to invest in this idea finance. But the first question is how much to invest in this project? And there is no answer to this question. And the second point is if the investor does not understand physics, he will not understand at all what they will try to explain to him. And to invest money in something that the investor cannot even understand, he certainly will not.

And here comes an understanding of how to assess the necessary amount of finance. After all, excellent specialists in physics do not understand anything in IT and finance, excellent programmers do not understand anything in physics and finance, and excellent financiers do not understand anything in physics and IT. It turns out a vicious circle, which, for many, is often closed and remains.

In order to get out of this difficult situation, you need a person who will be an intermediary between business and IT, who is well versed in finance, the software development process and can very quickly understand the essence of the customer's business. As a rule, system analysts do this.

Now let's switch to the work of the system analyst. There is a task - to understand the principle of business operation, to create documentation that will be able to estimate the time required for software development. Estimation of time, as a rule, can be either rough or more or less detailed. In the first case, a detailed technical task will not be created, but only an architecture model will be created. In the second case, a detailed ToR will be developed, which will be ready for the start of the development process.

Naturally, knowing the amount of time it will take to develop, knowing the platform on which the development will be based, it is already possible to more or less calculate the amount of investment for the project. And when there is a figure that is calculated and justified, then there is already something to talk about with the investor.

The next step in the calculations is an attempt to estimate the possible profit during the monetization of the project. As a rule, many do not. But for the investor, this moment is also very important. Since in order for him to decide to invest money, he needs to know that he can earn money from this.

WE CREATE TK FOR PROJECT

I will not dwell on this issue in great detail, but I will go through the main points that will help to understand what's what.

1. The idea of ​​the project is described in great detail. This idea is argued. Why it should work. What competitors are already present in the market. What is their market share. Whether the given market is saturated or experiencing starvation for a similar decision.

2. How the monetization of the project is planned. This item can also be associated with the choice of platform. This will be an online application or desktop version. Analyzing which version is better, more flexible and scalable. How will the payment for the application. For example, a paid program with an individual key. Online access to the program (site) for a certain time (limited access), etc. This is an important point and you need to think it over immediately. Since an error in this matter may in the future put an end to the whole project.

3. Having found out in the second paragraph what the platform will be, you can already build an architecture. Architecture need to think very, very carefully. If you make a gross mistake, you can later come to the conclusion that further expansion of the functional will be impossible. So all the time and money was wasted. The architecture should be as modular as possible with loosely coupled components. This will help to easily add new features and change old ones.

4. You need to think about how data will be stored in the database. Design tables for data and their relationships. If the project is large, you immediately need to think not about one base, but about their larger number, where and how to place them (on different servers). And how they will be connected in a single project. Often I come across such a picture that the bases are bloated to terabytes, and it is simply unrealistic to do something with them.

5. If it is assumed that there will be many different projects based on one platform, then you need to think about how they should work better. You should not push all the functionality into one giant site. It is better to post all on different servers. But then you have to do an intermediate server where authorization will take place, etc.

6. You need to immediately provide for what you may not need now. Since when you need it, you will spend finances ten times more! I mean, it’s not immediately to create a functional, but, roughly speaking, to build a foundation for a possible functional. As a rule, such a foundation is your own API, thanks to which you can do different things. For example, connect laboratory equipment that will record the results of experiments immediately to the base of the project. Or, for example, it will be possible to sell access to your data for different partners.

7. After tons of physics documents have been studied, the essence of the project is clear and on the basis of this a database model has been created, then it’s time to think about how this data will be recorded in the database and how it will be obtained from the database. So, it is required to think over interfaces through which data will be entered. We are now talking about statistical data, on the basis of which the result of calculations will be correlated.

8. You need to think of an independent modular system for the formulas that will be used for the calculation. Formulas should be unrelated and completely independent. And in the project itself, when and where it is necessary, then refer to the formula, giving it the data and getting the result from it. This will allow you, in case of any changes, to make changes only in a small and separate module. In this case, nothing else will suffer and will not affect the work of the project itself.

9. For such complex projects, a self-diagnostic system is simply necessary. It should be divided into two parts. The first is database diagnostics, on the correctness of data. After all, we are talking about complex mathematical calculations. So, even a small error (for example, a certain coefficient in the database is not 0.5, but 0.6) can lead to fatal consequences. To do this, you need to have some reference data that will be checked against the real data in the database. And if the real data went beyond the limit of the permissible threshold, then the administrator should know this and decide for himself what to do about it. The same goes for formulas with input parameters. Parameters should be only within the limits of the permissible error.

10. User interface. This question is also very important. The system must be intuitive, easy to use and obvious.

11. Data protection system and general crack resistance. You should not forget about this moment either. If some hacker can bring down your server or steal your data, then it will not be possible for any business to talk about.

12. Automated system of payment and access to the system. This process must be fully automated. Clear and detailed reports should be built. Need a system for analyzing data on payments (something like a financial report). Automatic notification of users and administrators.

13. System of the detailed analysis of users. The calculations and actions they perform in the system. This will help to find bottlenecks in the project and improve the quality of your application.

14. Licensing. Copyright protection. Well, here without comments. If you want to get a serious corporate client, then you should take care that your software solution has an international license that you can trust.

Of course, these are not all items. But for understanding the process, this is quite enough. Each of these points is split into smaller tasks. Those in turn are also crushed. The result is a huge process tree (leaves on the tree). And each small process (task) can already be calculated with sufficient accuracy in terms of time costs.

Also by this time it is necessary to add the cost of production capacity, advertising and promotion, and many other factors that can not be immediately calculated, but which necessarily arise.

In the final, of this hard and painstaking work, a decent package of documentation will appear, from which one can assess the level of complexity of the project, its ambitiousness, scope and final cost of implementation. And sometimes it happens that someone who came up with an interesting idea thinks that it will take a couple of thousand dollars to realize it, but in fact it can cost hundreds of thousands or even millions of dollars.

Naturally, what I have said above concerns a strictly professional approach. If you do this on a blooper, such as “and so it’s okay,” we will get an approximate picture of why the greater half of the Internet is a garbage dump, and not a technological masterpiece.

Thank you all and see you again.

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


All Articles