Що мати на увазі при переписуванні програмного забезпечення

При розробці якихось продуктів у команди часто виникає бажання перестати боротися з поточним станом проекту і переписати все знову, на цей раз "правильно" і "по науці". Зазвичай такі пориви не схвалюються, але в цей раз я б хотів запропонувати до прочитання переклад поста Hugo Baraúna, присвяченого тому, які питання потрібно задати собі, якщо все ж вирішили переписувати.
Також, як і великий рефакторинг, переписування продукту — непроста штука. За багато років ми набули достатньо досвіду, щоб вказати, що вам слід обдумати, плануючи і здійснюючи процес переписування.
чи Будуть обидві платформи існувати одночасно, чи ні?
ви Плануєте підтримувати стару і нову версії на продакшені? Якщо так, то як довго? Вам слід уникати обслуговування двох версій на продакшені протягом довгого часу через операційних витрат.
Хто буде займатися переписуванням, а хто — підтримувати стару версію?
Розробники воліють працювати над перспективними проектами (green field projects). Вам слід мати це на увазі, коли будете приймати рішення, хто буде підтримувати стару версію і хто буде працювати над новою.
Переписувати все й одразу не має сенсу
Не раціонально мати зіставлення 1-до-1 між старою і новою версіями. Іншими словами, які саме можливості вам слід почати переписувати?
зверніть увагу на те, який вплив на клієнтів надасть продукт з меншою кількістю можливостей.
Переписування сповільнить або зупинить впровадження нових можливостей в стару версію
Швидше за все, ви не будете впроваджувати нові можливості в стару версію в процесі її переписування. Нові можливості не отримають не тільки користувачі, але і внутрішні клієнти (комерційний і продуктовий відділи). Ваші внутрішні клієнти і акціонери вимагатимуть від вас появи нових можливостей.
Переконайтеся, що взаємодія до і під час переписування налагоджено і що всі зацікавлені особи згодні з кінцевими цілями.
Тримати в секреті або опублікувати?
Уявіть, що ви — потенційний клієнт програмного продукту. Ви плануєте купити його, але ви тільки що виявили, що абсолютно нова версія буде представлена через три місяці. Купите ви застарілу версію чи почекаєте три місяці? Помножте це на десятки чи сотні потенційних покупців. Постачальник може втратити купу грошей.
Тому, якщо ви постачальник продукту, вам слід старанно обміркувати, як і коли ви збираєте опублікувати інформацію про принципово нової версії.
Міграція даних
Переписування це не просто розробка можливостей. Вам також слід запланувати міграцію даних. Люди зазвичай недооцінюють складність і витрати, необхідні для міграції даних зі старої версії на нову. Ця діяльність не повинна бути просто одним завданням на у вашому списку із заголовком "міграція даних".
Наприклад, припустимо, що вам потрібно перенести облікові записи користувачів. Якщо ваша застаріла версія управляється третьою стороною, швидше за все, у вас немає доступу до зашифрованих паролів користувачів, так що ви будете не в змозі і перенести їх. Вам потрібно попросити кожного користувача окремо скинути пароль в новій версії. Це теж частина процесу міграції даних.
Будьте готові до можливого зниження конверсії
Ви запустіть нову версію з новими можливостями. Хто може гарантувати, що конверсія залишиться тією ж? Конверсія життєво важлива в деяких областях, як e-commerce.
В ідеалі, у вас повинна бути можливість зберегти обидві версії, нову і стару, на деякий час, на випадок, якщо падіння конверсії буде занадто сильним.
Виділіть час на навчання внутрішніх користувачів
Це теж часто випускають з уваги. План переписування повинен мати фазу, присвячену навчання внутрішніх користувачів до передачі вашого нового продукту в продакшен. Це також не можна недооцінювати. Може пройти багато часу, перш ніж ваші внутрішні користувачі зможуть дати вам зворотний зв'язок про те, що, можливо, слід змінити.
Внутрішні користувачі можуть бути знайдені в різних областях, таких як служба підтримки та продажу.
А як щодо вас? Чи є у вас поради про те, про що варто подбати при переписуванні продукту? Поділіться з нами!
Джерело: Хабрахабр

0 коментарів

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