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

Прорахувати кошти, необхідні на продукти програмного забезпечення - це одна із основ вдалого запуску проекту. Але якщо вам здається, що оцінка вартості розробки програмного забезпечення - це лише про цифри та «суху» математику, ви помиляєтеся. 

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

Як зробити це правильно? Чи добрим і якісним буде офшорне створення продукту? Якою є справжня вартість програмного забезпечення? 

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

Що таке офшоринг?

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

Загалом зараз середня погодинна оплата офшорної розробки складатиме орієнтовно 30 доларів США, тож цей тип є зазвичай найдешевшим із іншим, якщо порівнювати з аутсорсингом або ж in-house розробкою. 

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

Вартість розробки програмного забезпечення 

У цій статті ми розкажемо, як правильно оцінити вартість розробки. 

Перш за все варто знати, що є два типи оплати розробки програмного забезпечення. Перший - це fixed price, другий - це time and materials. 

Fixed price передбачає фіксовану оплату за весь проект. Ви із командою погоджуєте певну ціну і певну роботу, що має бути виконана за оплату. 

Time and materials - це контракт ,у якому за основу беруть час, витрачений на роботу над проектом. 

То який тип контракту обрати - фіксовану оплату чи погодинну ставку? 

Насправді усе залежить від того, скільки можливостей, часу і фінансів у вас є на проект. Якщо робота над ним триватиме довго, буде для команди важкою, але продукт принесе вам прибуток - тоді краще обрати тип time and materials. Цей контракт, до речі, є доволі гнучким: якщо проектна ідея у подальшому потребуватиме змін, тоді їх можна буде легко вносити. 

Якщо ж у вас вже є прорахований бюджет і є чітка алгоритмізація завдань для команди - тоді кращим (і, звісно, економнішим) варіантом стане контракт fixed price. Тоді ж не забувайте, що фаза планування має бути тривалою і поглибленою, адже вносити зміни «на льоту» у такий проект трохи складніше. Адже із компанією, яка працюватиме підрядником, буде важче домовитись за додаткові години розробки, що входитимуть у фіксовану оплату праці. 

5 способів оцінити вартість розробки програмного забезпечення

1. Детально опишіть і сформуйте вимоги, що їх вимагає проект

Якщо ви з тих клієнтів, що посеред проекту кажуть «Я на такому ось сайті побачив таку ось функцію, дуже гарно виглядає! Додамо?» - забудьте. Ви маєте чітко сформувати вимоги до проекту та технічні результати. В іншому випадку це призведе до втрати контролю за витратами та термінами проекту. 

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

Тому якщо у проекті плануються зміни, то спершу треба затвердити бюджет і визначити часові рамки. Так буде краще і якісніше, аніж додавати «дивовижні кнопочки/функції/анімацію» посеред проекту. 

2. Розбийте технічні вимоги 

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

Будь-яка вимога, яку неможливо розбити на чіткі покрокові етапи, може бути недостатньо зрозумілою для точної оцінки (за деякими винятками).

3. Створіть добру команду розробників програмного забезпечення

Команда - поняття об’ємніше, аніж просто розробники, що працюють над технічною частиною проекту. Якщо ви хочете чітко і сповна оцінити вартість створення програмного забезпечення, забезпечте допоміжні ролі і вимоги, що допомагатимуть працювати над продуктом. 

Якщо ви хочете, щоб проект став успішним, ваші користувачі повинні мати змогу ефективно для себе використовувати додаток. Користувацький досвід (UX), інтерфейс для користувача (UI) - це те, що зробить проект вдалим і потрібним на ринку. Але для цього вам у команді потрібні дизайнери, бізнес-аналітики, проектні менеджери. 

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

4. Ітеративне тестування та забезпечення якості у постійному режимі

Тестування на кожному етапі - це своєрідна страховка для продукту. Особливо, якщо ви обрали тип контракту time and materials. На кожному етапі розробки програмного забезпечення варто тестувати той чи інший код у безпечному середовищі. Так ви можете бути певні, що продукт працюватиме без перебоїв і зривів. 

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

5. Виявити проблеми ще до їхньої появи 

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

Якщо продукт розробляється надто повільно, доводиться перевіряти, де виникає «больова точка», чи пов’язана вона із нечітко сформульованими вимогами чи відсутністю доброї комунікації поміж різними експертами, що входить до команди?

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

Як підвищити дохід на одного працівника

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

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

Ще кілька порад для точної оцінки

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

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

Якщо ви лише думаєте про проект, для початку ви можете заздалегідь оцінити його за певними критеріями: 

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

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

COCOMO Модель

Якщо ви хочете оцінити вартість розробки програмного забезпечення, можете скористатися моделлю COCOMO. 

The Constructive Cost Model - модель конструктивних витрат (COCOMO) - це алгоритмічна процедурна модель оцінки вартості програмного забезпечення, яку створив Баррі В. Боем (для перекладу - Barry W. Boehm).
Свою модель Баррі Боем опублікував 1981 року у книзі «Економіка розробки програмного забезпечення». Це своєрідна модель для оцінки трудомісткості, собівартості і чіткого плану для проектів з розробки програмного забезпечення. 

У дослідженні Боем проаналізував 63 проекти. Усіх класифікував за розміром в залежності від кількості рядків коду (від 2 до 100 тисяч), а також з мови програмування. Ці проекти були засновані на моделі Waterfall розробки ПЗ. 

Базовий рівень розраховує трудомісткість і вартість розробки як функцію від розміру програми. Розмір виражається в оціночних тисячах рядків коду (KLOC - kilo lines of code).

COCOMO можна застосовувати до трьох класів проектів розробки програмного забезпечення:

  • Органічний - маленькі команди з достатнім досвідом роботи і відносно м’якими вимогами до розробки;
  • Середній, розділений вид  - середні за розміром команди зі змішаним досвідом розробки та зі змішаними вимогами (як жорсткими, так і м’якими).
  • Вбудований вид - такі проекти розробляються з урахуванням великої кількості жорстких обмежень. 

Ось базові рівняння COCOMO:

Трудомісткість = ab (KLOC) bb [людино-місяців]
Термін розробки або тривалість = cb (Трудомісткість) db [місяців]
Число розробників = Трудомісткість / Термін розробки [людина]
Коефіцієнти ab, bb, cb і db наведені в наступній таблиці.

Розрахунок вартості програмного забезпечення всього життєвого циклу

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

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

Так працює і життєвий цикл продукту. Врахувати потрібно кошти не лише на створення проекту, а й на його подальшу підтримку. Існує 6 головних витрат, які потрібно опрацювати. 

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

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

Але основна формула, яку можна модифікувати під потреби бізнесу, виглядає так: 

LCC = Витрати на купівлю + Витрати на технічне обслуговування + Довічні експлуатаційні витрати + Витрати на фінансування + Витрати на амортизацію + Витрати на кінець життя - Залишкова вартість

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


Тарифи на офшорне програмне забезпечення 

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

Наприклад, середня погодинна ставка для senior розробника в США стартує від 60 доларів за годину розробки. У Латинській Америці ціни на розробку коливаються від 30 до 50 доларів; у Східній Європі година роботи розробника коштуватиме до 50 доларів. 

Оптимальну ціну пропонує Україна. Тут розробка становить середні ринкові 35 доларів на годину. Якщо ви шукаєте офшорну команду розробників програмного забезпечення, напишіть нам

Джерело - https://www.daxx.com/

TL;DR

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

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