In this article I would like to tell you in detail about my own work experience with cheap programmers, and what is called, on the fingers to tell about all the pitfalls that await those who choose this tempting and at the same time dangerous work path. Frankly, if I knew what I wrote below when I started the project, I would save a few million rubles, a year of life and a lot of nerves.
The article is aimed primarily at beginners who want to make their first mobile application, and, as we once did, absolutely do not know where to start and are looking at low-cost programming options. Partly in some places it will be interesting to mobile mastodons as an interesting example to combat the objections of future non-zealous customers.
Prologue
In the wake of the rise of entertaining mobile applications and viral videos about various challenges, your humble servant had the idea to create an entertaining mobile application with themes of flash mobs and flash mobs. Looking ahead, I will say that despite the horrors described below, we all managed to implement the project and release a beta version for iOS and a full version for Android.
')
For this publication, it suffices to say that the implementation of the idea was undertaken by a team of ideologues without the slightest amount of knowledge in mobile development, advertising, and all the associated intricacies of the industry.
Own cases and life hacks
Below I will describe the dry numbers, examples of their own cases, tips and top life hacking programmers selectable. In my humble opinion, everyone who really wants to make their first mobile application, but does not know where to start, should know this. Most likely, some tips will be suitable in the search for performers in other areas and fields.
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 for 2 years and go through 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 developers really have experience in developing mobile applications, and not “in a bit of everything”.
A real-life example: during the implementation of the project, we twice resorted to searching for programmers through ordinary search services and compiled lists of potential developers. Two years later, when it came to an understanding of how to choose programmers, we compared our past lists with insights received later and feedback from industry colleagues. With most of the developers on this list, or, to put it mildly, they did not recommend working, or their promises could in fact diverge from real possibilities. At the same time, none of the TOP 50 Russian developer companies were included in the list based on Google search results and Yandex.
2. When compiling a short-list of companies with which you can potentially work, pay attention to the projects implemented and do not hesitate to call their clients from the portfolio. Satisfied customers will be happy to tell and recommend this partner, and those who are dissatisfied with even more pleasure will be discouraged from entering into a contract with them.
Life example: we negotiated with a company that rents to an office in a very expensive business center in Moscow and has prices far 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 insider from the employees of this company. It turned out that the expertise in the mobile of this company is low, unlike web development, which did not prevent us from making an offer with a high price and a promise to realize any things. It was possible to realize the project, but it most likely would not be the sweetie 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, 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 to see live, implemented examples of similar work and functions. At the same time, it is desirable that this was not one project on which a sample of the pen could occur.
If the functionality of your application is similar to “social network”, and the developers, project managers and directors tell you that they themselves do not use social networks, but beat themselves in the chest and declare that they easily implement your project - safely leave the meeting. Most likely, they will have extremely low expertise in your question, and the project will be implemented crookedly.
It is quite important that the examples of projects shown to you were released and whether they support them at the moment. If applications have not been released or released, but are completely different from what a potential partner shows you - this is the first serious call.
A real life example: our project manager and director knew superficially the functionality of all social networks and things that in our opinion were indestructible and self-evident, turned out to be either unrealized, or in their opinion difficult to implement. The server programmer had no prior experience with mobile applications, and made such mistakes, which in the end with an incredible set of bugs were solved only by a complete rewriting of the server part.
4. If the partner you are considering does not adhere to the ethics of negotiation and is not punctual, do not waste time on it. As a client, you are not interested in him and the work with him is likely to continue in a non-punctual key. You will have constant problems with work, control, timing and attitude to the project as a whole.
An example from life: after we had an urgent need to change the contractor, negotiations began with a number of companies from the TOP developers of Russia. Surprisingly, at the initial stage a number of companies scornfully treated us as a customer.
Immediately make a reservation that we were ready to accept the condition of payment for the code review, come to another city to negotiate and provide the source codes of the application. Damn, yes we were almost an ideal client.
Some of these companies managed to forget to call back at the appointed time, to remember our letter a week later, or to forget about the fact of our negotiations.
An interesting story happened to one St. Petersburg company. We had a ready version for iOS, and we needed to make an exact and functional copy of the application for Android. We offered to send a description of our project, give access to the iOS assembly, and arrive at the meeting, to which we received the answer: “We will consider this, according to the description, we don’t have to watch a working application”. At the same time, the company's portfolio was full of large and serious projects. In the end, I ask you to note, the negotiations with them did not end with anything, a year later I was waiting for a letter from them, or at least a call with a commercial offer.
5. Ask for opinions from industry experts. It was pleasant to see several times from my own experience that the professional community is warm enough and actively helps people in need of advice. Look for profile groups on Facebook, feel free 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 help and help.
What happens if you do not follow these recommendations
The result of the work objectively
- Failure of deadlines 2 times;
- The tremendous operating expenses that we have incurred due to the failure of the project deadlines and debag;
- Correction of bugs on the principle "when programmers have time";
- Unrealized features and uncorrected bugs. At one of the moments, our partner simply ran out of money to pay the salary of his programmers. As a result, we were given a partially unfinished job with a bunch of obvious bugs;
The result of the work after the independent code review
- Incorrectly implemented fundamental functions and methods - lack of caching, incorrect user authorization methods, lack of security as a class. Many minor bugs of medium criticality and problems that will necessarily arise at certain stages of the project development, and which are removed only by completely rewriting the server-side code;
- Complete lack of security. The application was broken by any user with initial knowledge of HTML and a simple code of 300 characters, in fact, being a table where the necessary data is entered;
- Giant number of bugs with difficult to calculate reasons. The code was written neatly, but with an often complete lack of common sense in the written function or the principle of correcting a bug. In some cases, it was necessary to simply rewrite completely the pieces of code or part of the functional;
- A month later, the main page of the application was loaded a minute. On the face there was programming on crutches, when the function works and thank God, but it is better to “touch” nothing there;
The 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 expenses for programming time, operating expenses due to failure to meet deadlines, the cost of fixing bugs for new programmers, operating expenses for fixing bugs = the cost of the server and client parts for a single platform with broader functionality from Top 30 developers in Russia.
Conclusion
The new programmers have already evaluated the project as medium in complexity and most of the functions from the category “difficult, we wash with blood when we implement them” migrated to the category “we did it four times in other projects, we will do it, there is nothing complex.
By the way, the same company that so “well” implemented our project moved by happy coincidence to Moscow-City, which confirms the theory that high prices and a pathetic office are not always the key to high professionalism.
Meet on clothes, follow on the mind and do not be fools, learn from the mistakes of others (for example, ours), and not on their own.