Повторне використання залежить не тільки від архітектури

Джеремі Мейер

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

… Знають про їх існування

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

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

… Вміють ними користуватися

Уміння повторно використовувати елементи залежить від навичок та кваліфікації Звичайно, існують люди, здатні (за висловом Дональда Кнута (Donald Knuth)) «потрапляти в резонанс» з програмуванням і проектуванням Всі ми працювали з такими людьми – обдарованими розробниками та архітекторами, які володіють вражаючою (і навіть лякає) швидкістю і глибиною засвоєння інформації Але такі люди зустрічаються рідко Решта члени команди, ймовірно, просто хороші, надійні, розумні розробники та проектувальники Їх необхідно вчити

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

… Вважають, що це краще, ніж зробити заново самим

Багато людей – і особливо розробники – воліють вирішувати проблеми самостійно, замість того щоб звертатися за допомогою Питати

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

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

Джеремі Мейер (Jeremy Meyer) займається проектуванням і розробкою програмного забезпечення, а також викладанням протягом майже 20 років В даний час він є провідним консультантом Borland Software в області моделювання та проектування

Джерело: Форд Н, Найгард М, де Ора Б, 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>

*

*