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

Сергій Солдатов

Автор цього блогу — Python-девелопер Сергій Солдатов, який вирішив створити досить унікальний продукт. І це в умовах перегрітого ринку праці й захмарної конкуренції.

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

Про Shallwe

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

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

Наша задача — звести людей зі схожою потребою, які можуть ужитись.

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

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

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

Навіщо цей проєкт?

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

Це можливість шукати роботу, маючи вже сильний досвід й не штовхаючись з трейніками в черзі на роботу за 300$.

В цілому для всіх в моїй команді це можливість навчитись працювати на стартапі від А до Я — від перших ідей до перших-других-третіх проблем на проді.

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

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

Рішення високого/середнього рівня абстракції

І так, питання високого/середнього рівня абстракції, які мені доводиться зараз вирішувати:

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

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

Будь-яку задачу можна реалізувати у 150 різних способів.  І з них швиденько треба обирати ті, які принесуть менше потенційних проблем, але й достатньо швидкі у реалізації та просто читаються.

Постійні рішення

  • Наприклад, обираєш бібліотеку під одну задачу — треба замислитися про те, чи не буде швидко розширюватися функціонал (і тоді вона вже не підходить). Потрібно дивитись як її підтримує автор, бо можливо там є баги, які ніхто вже не пофіксить. Або ще якісь проблеми;
  • як декомпозувати задачу, яким методом, як пріоретизувати частини; наскільки глибоко її розбирати заздалегідь, а що можна зробити вже на ходу;
  • чи використовувати тут TDD або *підставити практику*;
  • де можна менше тестувати модуль, бо окремі частини вже протестовані;
  • як саме писати ці тести, на що тестувати, як оформити тест-кейси;
  • чи треба тут витрачати час на рефактор або ні, чи очікуються тут якісь зміни?;
  • як краще реалізувати алгоритм? чим пожертвувати?

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

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

Блог створено на базі допису автора в LinkedIn

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

Останні статті

IT в Україні йде до свого фінального кінця. І потраплятимуть туди виключно за покликом душі

Коротко про українську IT-сферу у 2024 році Це коли на одну вакансію Middle розробника по…

26.03.2024

Блокчейн-розробка сьогодні: зарплати і перспективи на ринку праці

Формування криптовалютної галузі в Україні почалося ще у 2014 – саме тоді з'явилися перші стартапи,…

18.03.2024

Чи треба готуватись до співбесіди?

Думки шукачів діляться на: «так, однозначно» і «ні, не вартує, я все і так про…

04.03.2024

Відкладаєте до останнього? Що таке «синдром студента» і як з ним боротися

Синдром студента — це форма прокрастинації, яка полягає в тому, що людина, якій дали завдання,…

23.02.2024

Вчимося працювати з Git: основи конфігурації, гілки, додавання файлів та директорій

Git — це найпопулярніша CVS прямо зараз, яка дозволяє відстежувати історію розробки і спільно працювати.…

20.02.2024

Як вимірювати успіх? Топ-5 метрик для продакт-менеджерів в SaaS

Працюючи у сфері SaaS, продакт-менеджери мають ключову роль у визначенні та вдосконаленні продукту. Для ефективного…

19.02.2024