Усвідомлюйте наслідки змін

Дуг Кроуфорд

Хороший архітектор знижує складність до мінімуму і може спроектувати рішення, абстракції якого, з одного боку, забезпечують надійний фундамент, а з іншого – досить прагматичні, щоб пережити зміни

Видатний архітектор розуміє наслідки змін – не тільки в окремих програмних модулях, але також у відносинах між людьми і між системами

Зміни можуть виявлятися в різних формах:

• Зміни функціональних вимог

• Жорсткість вимог до масштабованості

• Модифікація інтерфейсів системи

• Прихід і відхід членів команди

• і так далі ..

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

Завдання архітектора – не стільки керувати змінами, скільки подбати про їх керованості

Для прикладу візьмемо розподілене рішення, в якому задіяно кілька додатків, обєднаних різним проміжним програмним забезпеченням (middleware) Якщо набір залежностей невірно визначений або неточно представлений у візуальній моделі, зміни бізнес-процесу можуть призвести до справжнього хаосу Наслідки змін виявляються особливо серйозними, якщо зміни зачіпають модель даних або порушують наявні інтерфейси, а існуючі долговиполняемие транзакції з відстеженням стану повинні бути успішно завершені в старій версії процесу

Приклад може здатися надмірно радикальним, але рішення з високим ступенем інтеграції в наш час застосовуються повсюдно Це очевидно по асортименту пропонованих стандартів інтеграції, інфраструктур і шаблонів Щоб забезпечити вашим клієнтам нормальний рівень підтримки, вкрай важливо розуміти наслідки змін в таких системах, частково лежать за межами вашої досяжності

На щастя, існує цілий ряд інструментів і методів, що дозволяють помякшити вплив змін:

• Вносьте невеликі, поетапні зміни

• Створюйте відтворювані тестові сценарії і часто запускайте їх

• Спрощуйте побудова тестових сценаріїв

• Відстежуйте залежності

• Дійте і реагуйте систематично

• Автоматизуйте повторювані завдання

Архітектор повинен оцінити вплив змін на різні аспекти масштабу проекту, часу і бюджету і бути готовим приділити більше уваги тим областям, які здатні надати найбільш сильний вплив, ставши тієї самої «вибоїною на дорозі» Оцінка ризиків – корисний інструмент для прийняття рішення про те, на що слід витрачати ваш дорогоцінний час

Зниження складності – важливе завдання, але низька складність не рівнозначна простоті Розуміння можливих змін та їх впливу на вирішення надає неоціненну користь у середньостроковій і довгостроковій перспективах

Дуг Кроуфорд (Doug Crawford) керує командою розробників проміжного програмного забезпечення для телекомунікаційної компанії в Південній Африці Останні 10 років він з успіхом поєднував непоєднуване і брав безпосередню участь у проектах з інтеграції програм у різноманітних галузях: рекламі, банківському обслуговуванні великого бізнесу, страхуванні та освіті

Джерело: Форд Н, Найгард М, де Ора Б, 97 етюдів для архітекторів програмних систем – Пер з англ – СПб: Сим-вол-Плюс, 2010 – 224 с, Мул

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*