8 важливих речей, які ми зрозуміли за 15+ років розробки програмних продуктів
Успіх будь-якої компанії багато в чому залежить від того, наскільки задоволеними є її клієнти. За час роботи в ІТ ми створювали програмні рішення для замовників з різних країн, різних сфер бізнесу і для вирішення найрізноманітніших завдань.
Наша команда завжди фокусувалися на тому, щоб зробити наших клієнтів задоволеними, тому ми багато чого навчилися і багато чого зрозуміли, працюючи над різними проектами.
Вже більше 15 років ми займаємося розробкою програмного забезпечення на замовлення. Ось декілька важливих речей, які ми засвоїли на цьому шляху.
1. Успішний продукт - це командний вид спорту
Навіть якщо над вашим проектом працює всього один програміст, в процесі можуть точково підключатися інші люди, як на стороні компанії-аутсорсера, так і на стороні замовника. На різних етапах розробки може знадобитися різностороння експертиза і необхідність вирішувати специфічні завдання.
Наприклад, програмістів недостатньо, коли справа доходить до контролю якості (QA). Професійний тестер зробить цю роботу краще. Також, якщо проект складний і великий, завжди потрібен хтось, хто добре розбирається в загальній картині. Тому, на різних етапах роботи над проектом для замовника, ми можемо підключати потрібних в даний момент спеціалістів.
Правильний технічний партнер повинен відчуватися як продовження вашої внутрішньої команди. Він фокусується на ваших цілях і потребах, обмінюється з вами ідеями і пропонує оптимальні рішення.
2. Зосереджуватися треба на 20%, які приносять 80% результатів
Чим більшим є проект, тим більш приблизною буде його оцінка на старті. І тим вищою є ймовірність, що в процесі роботи над ним багато чого зміниться. Додайте сюди той факт, що усі ми працюємо в умовах обмежених ресурсів, і стає зрозуміло, наскільки важливо використовувати їх правильно.
Фокус і концентрація є нашими найбільш цінними і найбільш дефіцитними ресурсами. Саме тому ми часто рекомендуємо клієнтам починати з MVP і нарощувати бажаний функціонал поступово, щоб отримати те, що їм потрібно, з мінімальними витратами часу і коштів.
3. Етап Discovery дуже важливий
Попередній пункт органічно підводить нас до наступного - важливості Discovery Phase на етапі оцінки проекту. Цій роботі можна дати наступне визначення:
Discovery в розробці програмного забезпечення - це початковий етап, на якому команда розробників і зацікавлені сторони збирають інформацію, визначають цілі та ідентифікують вимоги.
На цьому етапі проводяться дослідження, обговорення, та збираються важливі дані, щоб зрозуміти можливості і виклики, які вас очікують. За результатами цього формується стратегія розробки.
Додаткові декілька годин чи днів на етапі аналізу, в результаті можуть зекономити багато тижнів роботи програмістів.
4. Використовуйте короткі ітерації і починайте з малого
Ітеративний підхід до розробки програмного забезпечення додає гнучкості, дозволяє оперативно вносити необхідні зміни і швидко виявляти можливі проблеми. А головне - це можливість адаптуватися до мінливих умов і потреб протягом усього життєвого циклу проекту.
Ще один важливий момент полягає в тому, щоб стартувати з невеликого ядра робіт, про що ми вже писали вище, згадуючи концепцію MVP. Маючи хорошу дорожню карту проекту, можна поступово додавати новий функціонал, детально пропрацьовуючи кожен з етапів розробки.
5. Комунікація - один з ключів до успіху
Завжди краще спілкуватися більше, ніж менше. Щоб досягати найкращих результатів, кожний проект потребує індивідуального підходу. Тому в процесі роботи над ним неодмінно виникає потреба в уточненнях, відповідях на запитання, повідомленнях про статуси, обговоренню успіхів та проблем.
Регулярний зворотній зв'язок дає клієнту впевненість у тому, що робота над проектом просувається так як було задумано. А розробники чи інші спеціалісти не губляться в тому, що роблять.
6. Спочатку думайте, потім пишіть код
Одним з ризиків, який виникає в результаті ігнорування цього принципу, є технічний борг. Він може відчутно нашкодити проекту у майбутньому, впливаючи на масштабування, продуктивність і вартість підтримки продукту. Тому перед тим як приступити до подальшої розробки, потрібно впевнитися у тому, що в існуючому коді немає ніяких проблем.
При цьому, часто найбільшими викликами є проблеми нетехнічного характеру. Тому важливо зупинитися і подумати, лежить проблема в площині коду чи в площині процесу. Це дозволяє знайти оптимальне рішення.
7. Якість не повинна бути опціональною
Можна створити продукт з великою кількістю корисних функцій, але отримати при цьому негативну реакцію цільової аудиторії через велику кількість багів, недоробок, поганий UX та цілий ряд інших проблем. Тому, враховуючи величезний рівень конкуренції в сфері програмного забезпечення, якість продукту повинна бути безумовним пріоритетом у наш час.
8. Хороша команда збільшує ваші можливості в геометричній прогресії
Яким би талановитим не був конкретний спеціаліст, але круті проекти практично завжди створюються команди. Наявність поруч людей, з якими можна обговорити ті чи інші речі, розширює кругозір, спрощує вирішення проблем і дозволяє знайти нестандартний підхід до вирішення завдань.
Досвідчена offshore dedicated team забезпечує клієнту такий же досвід, як і спеціалісти в штаті його компанії. З нашого досвіду, ефект від такої співпраці, нерідко має експоненційний, а не лінійний характер.
Декілька слів наостанок
Кожен проект має свої особливості і ньюанси, які необхідно враховувати. Завжди є фактор невизначеності і ймовірність того, що щось піде не так. Але за багато років роботи у сфері розробки програмного забезпечення на замовлення, ми навчилися організовувати роботу і процеси так, щоб наші клієнти отримували найкращий результат відповідно до своїх потреб. І ці 8 принципів нам у цьому допомагають.
Ми сподіваємося, що ви зможете взяти щось корисне для себе з тих речей, про які ми написали у цій статті. Якщо з вашого досвіду є щось таке, чим ви хотіли б поділитися, напишіть про це у коментарях.