Як втратити кілька мільйонів, працюючи з дешевими програмістами

У даній статті хотілося б докладно розповісти про власний досвід роботи з дешевими програмістами, і, що називається, на пальцях розповісти про всі підводні камені, які очікують обрали цей привабливий і водночас небезпечний шлях роботи. Відверто кажучи, якби я знав про те, що написав нижче, коли приступав до реалізації проекту, я заощадив би декілька мільйонів рублів, рік життя і купу нервів.

image

Стаття націлена в першу чергу на новачків, охочих зробити своє перше мобільний додаток, і, як ми в свій час, абсолютно не знають з чого почати і які придивляються до недорогих варіантів програмування. Почасти в деяких місцях вона буде цікава і мастодонтам мобайла в якості цікавого прикладу для боротьби з запереченнями майбутніх не запопадливих клієнтів.

Вступна частина
На хвилі підйому розважальних мобільних додатків і вірусних відео про різноманітних челленджах, у вашого покірного слуги народилася ідея створити розважальне мобільний додаток з тематикою челленджей та флешмобів. Забігаючи вперед скажу, що незважаючи на описані нижче жахи, нам все вдалося реалізувати проект і випустити в стори beta-версію для iOS і повноцінну версію для Android.

Для даної публікації достатньо буде сказати, що за реалізацію ідеї ми з командою ідеологів взялися без найменшого набору знання в мобільній розробки, рекламу і всіх супутніх тонкощах галузі.

Власні кейси та лайфхаки
Нижче я опишу сухі цифри, приклади власних кейсів, поради та топ лайфхаков за вибором програмістів. На мій скромний погляд це повинні знати всі, хто дуже хоче зробити свій перший мобільний додаток, але не знає з чого почати. Швидше за все, деякі поради підійдуть в пошуку виконавців та в інших областях і сферах.

1. При пошуку підрядника (у нашому випадку — розробника) не займайтеся пошуком його в Гуглі або Яндексі. Знайдіть ТОП мобільних розробників за 2 роки і йдіть з даного списку. Звичайно, це не дасть 100% гарантії, що ви знайдете грамотного, відповідального і порядного партнера (про це трохи пізніше), але це дасть гарантію того, що розробники дійсно мають досвід в розробці мобільних додатків, а не «по всім потроху».
Приклад з життя: при реалізації проекту ми два рази вдавалися до пошуку програмістів через звичайні пошукові сервіси і складали списки потенційних розробників. Через два роки, коли прийшло розуміння того, як потрібно вибирати програмістів, ми порівнювали наші минулі списки з отриманими пізніше инсайдами відгуками і від колег по галузі. З більшою частиною розробників з цього списку або, м'яко кажучи, працювати не рекомендували, або їх обіцянки на ділі могли розійтися з реальними можливостями. При цьому ні одна із ТОП-50 компаній-розробників Росії в список, складені за результатами пошуку через Гугл і Яндекс не потрапила.
2. При складанні шорт-листа компаній, з якими потенційно можна працювати, звертайте увагу на реалізовані проекти і не соромтеся дзвонити їх клієнтам з портфоліо. Задоволені клієнти із задоволенням розкажуть і рекомендують даного партнера, а незадоволені з ще більшим задоволенням відрадить укладати з ним контракт.
Приклад з життя: ми вели переговори з компанією, яка знімає в офіс в дуже дорогому БЦ в Москві і має ціни далеко вище середньої. Здавалося б, це повинно було говорити про високий професіоналізм і наявність великого числа серйозних клієнтів.

Згодом нам вдалося отримати інсайд від працівників цієї компанії. З'ясувалося, що експертиза мобайл має в даній компанії невисока, на відміну від web-розробки, що не заважало зробити нам пропозицію з високою ціною і обіцянкою реалізувати будь-які речі. Проект реалізувати було можна, але це, швидше за все, була б не та пісня, яку б ми хотіли отримати за ті високі ціни, які пропонувалися.

3. При виборі підрядника обов'язково звертайте увагу на реалізовані їм проекти. Ідеально, якщо підрядник реалізовував або схоже додаток, або вже реалізовував частини вашого передбачуваного функціоналу в інших додатках. Пройдіться по загальному функціоналу і за окремими функціями додатками. Попросіть показати живі, реалізовані приклади схожих робіт і функцій. При цьому бажано, щоб це був не один проект, на якому могла відбуватися проба пера.

Якщо функціонал вашого додатки схожий на «социалочку», а розробники, менеджери проекту та директора кажуть вам, що вони самі не користуються соціальними мережами, але б'ють себе в груди і заявляють, що легко реалізують ваш проект – сміливо йдіть із зустрічі. Швидше за все, у них буде вкрай низька експертиза саме у вашому питанні, і проект буде реалізований криво.

Чимало важливо, були показані вам приклади проектів випущені в стор і підтримують їх в даний момент. Якщо програми не були випущені або випущені, але кардинально відрізняються від того, що показує вам потенційний партнер – це перший серйозний дзвінок.
Приклад з життя: наш менеджер проекту та директор поверхнево знали функціонал всіх соціальних мереж і речі, які на наш погляд були непорушними і само собою зрозумілими, виявилися або нереалізованими, або на їх погляд важко реалізованими. Серверний програміст не мав досвіду роботи з мобільними додатками, і допустив такі помилки, які в підсумку з неймовірним набором багів вирішувалися тільки повним переписуванням серверної частини.
4. Якщо розглянутий вами партнер не дотримується етики ведення переговорів і не відрізняється пунктуальністю, не витрачайте на нього час. Як клієнт ви йому не цікаві і робота з ним, швидше за все, продовжиться в непунктуальном ключі. У вас будуть постійні проблеми з роботою, контролем, термінами і ставленням до проекту в цілому.
Приклад з життя: після того, як у нас гостро постало питання про зміну підрядника, почалися переговори з низкою компаній з Топ розробників Росії. Дивно було те, як на початковому етапі ряд компаній зневажливо ставилися до нас, як до клієнта.

Відразу обмовлюся, що ми були готові прийняти умову оплати код-рев'ю, приїхати в інше місто на переговори і надати вихідні коди програми. Блін, та ми були практично ідеальним клієнтом.

Деякі з таких компаній примудрялися забувати передзвонити в призначений термін, згадувати про нашому листі через тиждень або взагалі забували про факт наших переговорів.

Цікава історія трапилася з однієї Пітерської компанією. У нас була готова версія iOS, і нам потрібно було зробити точну по функціоналу копію програми для Android. Ми запропонували вислати опис нашого проекту, дати доступ до iOS-складання і приїхати на зустріч, на що отримали відповідь: «Ми порахуємо, по опису, нам дивитися працююче додаток не обов'язково». При цьому портфоліо компанії ряснів великими і серйозними проектами. У підсумку, прошу зауважити, переговори з ними нічим так і не закінчилися, через рік я так і чекаю від них листи або хоча б дзвінка з комерційною пропозицією.
5. Запитуйте думку експертів з галузі. Було приємно переконатися кілька разів на власному досвіді, що професійне ком'юніті досить тепло і активно допомагає нужденним в раді людям. Шукайте профільні групи у Facebook, не соромтеся задавати питання про конкретні компанії, з якими ви хочете працювати, просіть ради, в тих чи інших областях. Більше частини знайдеться купа корисних порад і приємних людей, які готові підказати і допомогти.

Що буває, якщо не слідувати цим рекомендаціям

Підсумок роботи об'єктивно

  • Зрив термінів у 2 рази;

  • Колосальні операційні витрати, які ми понесли за зрив термінів здачі проекту і дебаг;

  • Виправлення багів за принципом «коли у програмістів буде час»;

  • Нереалізовані функції і невиправлені помилки. В один з моментів у нашого партнера просто закінчилися гроші, щоб платити зарплату своїм програмістам. У підсумку нам здали частково незакінчену роботу з купою явних помилок;

Підсумок роботи після незалежного код-рев'ю

  • Неправильно реалізовані основні функції і методи – відсутність кешування, неправильні методи авторизації користувачів, відсутність безпеки, як класу. Багато дрібних багів середньої критичності і проблем, які обов'язково виникнуть на певних стадіях розвитку проекту, і які знімаються тільки повним переписуванням коду серверної частини;

  • Повна відсутність безпеки. Додаток ламалося будь-яким користувачем з початковими знаннями HTML і простим кодом на 300 символів, по суті, є таблицею, куди вводяться потрібні дані;

  • Гігантське число багів з важко вычислимыми причинами. Код був написаний акуратно, але найчастіше з повною відсутністю здорового глузду в написаній функції або принципі виправлення будь-яких бага. В деяких випадках доводилося переписувати повністю шматки коду або частини функціоналу;

  • Через місяць головна сторінка програми завантажувалася хвилину. На обличчя був програмінг «на милицях», коли функція працює і слава Богу, але краще «там» нічого не чіпати;

Підсумки роботи в грошах

Виправлення багів і найбільш важливих речей вийшли з вартості на рівень написання нової серверної частини в компанії, яка дійсно має досвід мобільної розробки.

Програмування у недосвідчених і дешевих програмістів, операційні витрати на час програмування, операційні витрати з-за зрив термінів, вартість виправлення багів у нових програмістів, операційні витрати на час виправлення багів = вартість серверної і клієнтської частини під одну платформу з більш широким функціоналом у компанії з ТОП-30 розробників Росії.

Висновок
Новими програмістами проект був оцінений як середній по складності і велика частина функцій з розряду «складно, ми умиємося кров'ю, коли будемо їх реалізовувати» перекочувала в розряд «ми це робили чотири рази в інших проектах, зробимо і у вас, в цьому немає нічого складного».

До речі, та сама компанія, яка так «добре» реалізувала нам проект, переїхала за щасливим збігом обставин в «Москва-Сіті», що підтверджує теорію про те, що високі ціни і пафосний офіс далеко не завжди є запорукою високого професіоналізму.

Зустрічайте по одягу, проводжайте по розуму і не будьте дурнями, вчіться на чужих помилках (наприклад, наших), а не на своїх.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.