Зберігайте простежуваність вимог під час зміни програмного забезпечення
ЗавершеноПов’язуйте результат для користувача з рішеннями, критеріями приймання, реалізацією та доказами. Оновлюйте зв’язки, коли припущення змінюються.
Видавець TaigaЯк ми пишемо
Перевірте своє розумінняСпецифікація змінюється після підготовки архітектури й тестів. Що має відбутися?Виконайте вправу
Чого ви навчитеся
- Писати спостережувану вимогу з явними межами.
- Простежувати вимогу через зміну та її перевірки.
- Виявляти подальші документи, на які впливає змінене припущення.
Опишіть поведінку, яку хтось може перевірити
«Створити сучасний експорт даних клієнтів» залишає важливі рішення відкритими. Запит не визначає користувачів, записів, полів або поведінки в разі відмови. Агент має або запитати, або зробити припущення. Незаписані припущення складно переглядати згодом.
Використайте вигадану вимогу з чіткою межею: автентифікований менеджер може експортувати дані активних клієнтів власної організації. Експорт містить ідентифікатор клієнта та відображуване ім’я. Він виключає контактні дані й архівні записи. Користувач без ролі менеджера не отримує експорт.
Усе ще потрібні рішення щодо формату, обсягу, часу відповіді та обробки відмов. Явно позначайте невідоме. Корисна специфікація виявляє невизначеність, а не приховує її у впевнених формулюваннях.
Відокремлюйте вимоги від вибору реалізації
Користувачу потрібен дозволений набір записів у придатному форматі. Запит до бази даних, бібліотека та структура endpoint — це вибір реалізації. Пов’язуйте їх із вимогою, не трактуючи кожен поточний вибір як постійну бізнес-потребу.
Записуйте важливе рішення з його контекстом, альтернативами та причиною. Наприклад, синхронний експорт може підходити для малих обсягів. Більший обсяг може потребувати фонової задачі та окремої перевірки авторизації завантаження.
За можливості зберігайте вимогу сталою, версіонуючи змінене рішення. Це допомагає рецензентам відрізняти іншу реалізацію від іншої обіцянки користувачам.
Створіть короткий ланцюг доказів
Використовуйте ідентифікатори, які залишаються зрозумілими під час перегляду. У цьому прикладі EXPORT-01 може позначати межу організації. Назва ілюстративна, це не обов’язкова система нумерації.
| Зв’язок | Приклад |
|---|---|
| Вимога | EXPORT-01: лише записи організації менеджера |
| Проєктне рішення | Забезпечувати дотримання вимоги належності до організації на сервері, а не в браузері |
| Реалізація | PR змінює запит і шлях авторизації |
| Перевірка | Запит до записів іншої організації відхилено |
| Докази випуску | Результат перевірки визначає прийняті commit і артефакт |
Ланцюг має вказувати на справжні докази. Назва тесту з ідентифікатором вимоги не доводить, що його перевірка охоплює цю вимогу. Дослідіть тест і шлях продуктивного коду, який він виконує.
SSDF від NIST дає контекст для вимог і перевірки в безпечній розробці. Використовуйте простежуваність, щоб ці дії можна було перевірити, а не заради самої документації. Прочитайте фреймворк.
Перегляньте вплив зміненого припущення
Припустімо, бізнесу тепер потрібні архівні клієнти. Ця зміна впливає не лише на прапорець у запиті. Перевірте правила зберігання, авторизацію, очікуваний обсяг, пояснення користувачам і значення наявних звітів.
Позначте відповідні документи та перевірки для перегляду. Збережіть попереднє рішення, щоб оператор міг пояснити старіший випуск. Не переписуйте історію мовчки, щоб найновіший дизайн здавався неминучим.
Агент може допомогти знайти посилання та запропонувати оновлення. Відповідальні мають розв’язати суперечності вимог і прийняти змінену поведінку. Список файлів, що відповідають пошуку, — відправна точка, а не повне оцінювання впливу.
Зберігайте запис достатньо малим для використання
Записуйте рішення, що впливають на реалізацію, перевірку й експлуатацію. Не повторюйте ту саму вимогу в багатьох непов’язаних документах. Надавайте перевагу посиланням на одне підтримуване джерело.
Перед прийняттям зміни запитайте, чи рецензент може простежити її мету до фактичних доказів. Перед експлуатацією запитайте, чи відповідальний за сервіс може знайти відповідну межу та рішення про відновлення. Це практичні перевірки корисної простежуваності.
Виконайте вправу
Напишіть вимогу, за якою менеджер експортує дані активних клієнтів. Включіть дозволених користувачів, межу організації, поля, поведінку в разі відмови та вимірювану умову завершення. Пов’яжіть її з вигаданим тестом і випуском. Потім змініть вимогу, щоб включити архівних клієнтів, і перелічіть рішення, яких це стосується.
Завантажити робочий аркуш (Markdown)Зняття цієї позначки видаляє весь прогрес, збережений у цьому браузері.
Прогрес залишається в цьому браузері. Без облікового запису та відстеження.
Джерела та додаткові матеріали
- NIST: Secure Software Development Framework ↗
- Google Engineering Practices: What to look for in a code review ↗