Трохи передумови тут - ми невелика команда (з 5) розробників RAD, відповідальних за внутрішню розробку програмного забезпечення у великій непрограмній компанії. "Внутрішнє програмне забезпечення" варіюється від настільного додатка .NET, що використовує MSSQL-сервер як сервер для скриптів Python, що працюють на задньому плані до документів та шаблонів MS Word - зоопарку технологій.
Вся команда складається з багатообіцяючих, здатних отримати вимоги від користувачів, кодувати її, протестувати і розгорнути у виробництво. Як тільки програмне забезпечення у виробництві доглядає інша команда, але нам зазвичай легко втрутитися, якщо щось піде не так.
На сьогодні все добре звучить, але є проблема - будучи командою RAD, яку ми повинні часто випускати, і не минає жодного дня, не випустивши нові версії однієї або двох програм (або це може бути сценарій, оновлений текстовий документ , Консольний додаток C ++ тощо) у виробництво. Ми робимо тестування розробки, а також залучаємо кінцевих користувачів, дозволяючи їм запускати програмне забезпечення в середовищі UAT ...
... але клопи все одно повзають у виробництво. Користувачі розуміють, що ці помилки та епізодична нестабільність - це ціна, яку вони платять за те, щоб отримати те, що вони хочуть дійсно швидко, але в той же час це змусило нас задуматися - можливо, ми могли б покращити наш розвиток або випустити практику для підвищення стабільності програмне забезпечення та зменшити кількість помилок, які ми вводимо, додаючи новий функціонал.
Хороша річ - у нас насправді не так багато процесів, в першу чергу, тож слід легко почати вдосконалюватись, погана справа - будучи невеликою командою RAD, ми не маємо дійсно багато часу та ресурсів для впровадження. щось велике, але ми думали про наступні ініціативи і вітаємо будь-які відгуки, поради, підказки та пропозиції.
В даний час деякі програми випускаються у виробництво відразу після тестування розробника, минаючи тестування на прийняття користувача. Цю практику слід припинити, і навіть невелика зміна повинна бути перевірена кінцевим споживачем. Кожна програма матиме спеціальний бета-тестер, обраний серед кінцевих користувачів. Лише після того, як бета-тестер отримав нове випуск, його буде переведено від тестового до виробничого середовища.
Ми не проводимо перевірку коду - але ми почнемо робити перевірку коду, перш ніж хтось із нас перевірить набір змін. Я також думав про "огляд розгортання" - в основному один з розробників повинен сидіти поруч з іншим і спостерігати за тим, як він / її роблять програмне забезпечення (копіюють бінарні файли, оновлюють конфігурації, додають нову таблицю в базу даних тощо) - зазвичай це лише займає 5-10 хвилин, тому це не займе багато часу на "огляд розгортання".
Як зменшити час відкату, коли новий реліз виявився достатньо глючним, щоб його можна було випустити з виробництва та замінити його на хорошу попередню версію. Ми зберігаємо історію всіх випусків (як бінарних файлів), щоб полегшити повернення однієї версії назад - і, хоча це швидко "перезаписати щойно випущені бінарні файли з бінарними версіями попередньої версії", це все одно ручний процес, який схильний до помилок. і вимагає часом "що робити, якщо відкат не вдасться, і зробить систему непридатною замість баггі".
Тут ми закінчилися з нашими ідеями, і ми хотіли б отримати ваші відгуки щодо цих питань, і якщо ви могли б поділитися простими порадами щодо вдосконалення процесів випуску / розробки - це було б приголомшливо.