How to lose a few millions, working incomprehensibly with anyone

Published on November 15, 2016

How to lose a few millions, working incomprehensibly with anyone

In this article I would like to tell in detail about my own experience working with cheap programmers, and what’s called on my fingers to tell about all the pitfalls that await those who choose this alluring and at the same time dangerous way to work. Frankly, if I knew about what I wrote below when I started to implement the project, I would save several million rubles, a year of life and a lot of nerves.

image


The article is aimed primarily at beginners who want to make their first mobile application, and, as we at one time, absolutely do not know where to start and are looking at low-cost programming options. Partly in some places it will be of interest to the mobile mastodons as an interesting example to combat the objections of future non-zealous clients.

Introduction


In the wake of the rise of entertaining mobile applications and viral videos about a variety of challenges, your humble servant came up with the idea to create an entertaining mobile application with the theme of challenges and flash mobs. Looking ahead, I’ll say that despite the horrors described below, we all managed to implement the project and release the beta version for iOS and the full version for Android.

For this publication, it will suffice to say that a team of ideologists and I took up the implementation of the idea without the slightest set of knowledge in mobile development, advertising, and all the related intricacies of the industry.

Own cases and life hacks


Below I will describe dry numbers, examples of my own cases, tips and top life hacks for the choice of programmers. In my humble opinion, this should be known to everyone who really wants to make their first mobile application, but does not know where to start. Most likely, some tips are suitable in finding artists in other areas and areas.

1. When searching for a contractor (in our case, a developer), do not search for it in Google or Yandex. Find the TOP mobile developers in 2 years and go on this list. Of course, this will not give a 100% guarantee that you will find a competent, responsible and decent partner (more on this later), but it will guarantee that the developers really have experience in developing mobile applications, and not "in a little bit of everything."
Life example: during the implementation of the project, we twice resorted to searching for programmers through regular search services and compiled lists of potential developers. Two years later, when it came to understanding how to choose programmers, we compared our past lists with later insights and feedback from colleagues in the industry. With most of the developers on this list, either, to put it mildly, were not recommended to work, or their promises in practice could diverge from real possibilities. At the same time, none of the TOP 50 Russian development companies was included in the list compiled by the search results via Google and Yandex.

2. When compiling a short list of companies with which you can potentially work, pay attention to completed projects and do not hesitate to call their clients from the portfolio. Satisfied customers are happy to tell and recommend this partner, and dissatisfied with even greater pleasure dissuade them from entering into a contract.
Life example: we were negotiating with a company that rents an office in a very expensive business center in Moscow and has prices well above average. It would seem that this should speak of high professionalism and the presence of a large number of serious customers.

Subsequently, we managed to get an insider from the employees of this company. It turned out that the expertise in the mobile company is not high, unlike web development, which did not stop us from making an offer with a high price and a promise to realize any things. The project could be implemented, but it would most likely not be the sweetie that we would like to receive for the high prices that were offered.


3. When choosing a contractor, be sure to pay attention to the projects implemented by him. Ideally, if the contractor implemented either a similar application, or already implemented parts of your intended functionality in other applications. Walk through the general functionality and the individual functions of the applications. Ask for live, realized examples of similar work and functions. At the same time, it is desirable that this was not one project on which a pen test could take place.

If the functionality of your application is similar to the “social account”, and the developers, project managers and directors tell you that they themselves do not use social networks, but beat themselves in the chest and say that they are easily implementing your project, feel free to leave the meeting. Most likely, they will have extremely low expertise precisely in your question, and the project will be implemented crookedly.

It is of great importance whether the examples of projects shown to you have been released and they support them at the moment. If the applications have not been released or released, but are fundamentally different from what the potential partner shows you, this is the first serious call.
Life example: our project manager and director superficially knew the functionality of all social networks and things that, in our opinion, were indestructible and taken for granted, were either unrealized or, in their opinion, difficult to implement. The server programmer had no previous experience with mobile applications, and made such mistakes that, as a result, with an incredible set of bugs, they were solved only by completely rewriting the server side.

4. If the partner you are considering does not adhere to the ethics of negotiating and is not punctual, do not waste time on it. As a client, you are not interested in him and work with him is likely to continue in a non-punctual manner. You will have constant problems with work, control, timing and attitude towards the project as a whole.
Life example: after we had a sharp question about changing the contractor, negotiations began with a number of companies from the TOP developers of Russia. It was amazing how at the initial stage a number of companies scornfully treated us as a client.

Immediately make a reservation that we were ready to accept the payment code review, to come to another city for negotiations and provide the source codes for the application. Damn, we were almost an ideal customer.

Some of these companies managed to forget to call back at the appointed time, to recall our letter in a week or even forget about the fact of our negotiations.

An interesting story happened with one St. Petersburg company. We had a version for iOS ready, and we needed to make a functional copy of the Android application. We proposed to send a description of our project, give access to the iOS assembly and come to a meeting, to which we received an answer: "We will calculate so, according to the description, we don’t need to watch a working application." At the same time, the company's portfolio was full of large and serious projects. As a result, please note that the negotiations with them did not end there, after a year I still wait for a letter from them, or at least a call with a commercial offer.

5. Ask industry experts for opinions. It was nice to make sure several times on our own experience that the professional community is warm enough and actively helps people in need of advice. Look for specialized groups on Facebook, do not hesitate to ask questions about specific companies you want to work with, ask for advice in certain areas. In most parts, there are a lot of useful tips and nice people who are ready to prompt and help.

What happens if you do not follow these recommendations


The result of the work is objective


  • Failure to meet 2 times;

  • The colossal operating expenses that we incurred due to the failure to meet the deadlines for the project and debug;

  • Correction of bugs on the principle of "when the programmers will have time";

  • Unrealized functions and uncorrected bugs. At one point, our partner simply ran out of money to pay a salary to his programmers. As a result, we were handed partly unfinished work with a bunch of obvious bugs;

The result of the work after an independent code review


  • Incorrectly implemented fundamental functions and methods - lack of caching, incorrect methods for authorizing users, lack of security as a class. There are many small bugs of medium criticality and problems that will surely arise at certain stages of the development of the project, and which can only be removed by completely rewriting the server side code;

  • Complete insecurity. The application crashed by any user with an initial knowledge of HTML and a simple code of 300 characters, which is essentially a table where the necessary data is entered;

  • A huge number of bugs with difficult to calculate reasons. The code was written carefully, but with often a complete lack of common sense in the written function or the principle of fixing a bug. In some cases, you just had to rewrite all the pieces of code or parts of the functionality;

  • A month later, the main page of the application loaded a minute. On the face was programming “on crutches” when the function works and thank God, but it’s better not to touch anything “there”;

Results of work in money


Correction of bugs and the most critical things came at a cost to the level of writing a new server part in a company that really has experience in mobile development.

Programming for inexperienced and cheap programmers, operating costs for programming time, operating costs due to deadlines, the cost of fixing bugs for new programmers, operating costs for fixing bugs = the cost of the server and client part for one platform with wider functionality for a company from TOP-30 developers of Russia.

Conclusion


By new programmers, the project was already rated as medium in complexity and most of the functions from the category “difficult, we wash ourselves with blood when we implement them” migrated to the category “we did it four times in other projects, we will do it for you, there’s nothing complicated. "

By the way, the very company that implemented the project so “well” for us, fortunately moved to Moscow City, which confirms the theory that high prices and a pathos office are far from always a guarantee of high professionalism.

Meet by clothes, see off the mind and do not be fools, learn from the mistakes of others (for example, ours), and not your own.