- дотримується стичних і професійних принципів, захищаючи суспільство, замовників і себе;
- постійно поповнює свої знання, освоюючи нові методи, техніку і технології;
- спирається на специфічні знання і досвід, працюючи всередині специфічних доменів, враховуючи особливість доменних рішень, виробництва, матеріалів, вимог;
- уміє визначати, які частини можна повторно використовувати, а які слід розробляти заново.
Розділ 2. КУЛЬТУРНИЙ АСПЕКТ ІНЖЕНЕРІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
Культура - безліч цінностей, цілей і принципів, які керують діями, пріоритетами і рішеннями окремих осіб або групи, що працюють у напрямі спільної мети. Культура групи розробників програмного продукту дуже сильно впливає на якість продукту, продуктивність розробників і мікроклімату в групі.
2.1. Культура інженерії програмного забезпечення
Культура інженерії програмного забезпечення - це сукупність позицій розробників, людських відносин і технічних процесів, орієнтованих на якість у широкому сенсі. Кожна організація і особа має власну культуру, набуту шляхом копіткої роботи. Культура інженерії програмного забезпечення характеризується такими чинниками:
- чіткими організаційними цілями;
- зобов'язанням менеджменту вести організацію до досягнення встановлених цілей;
- середовищем, яке дає змогу кожному розробникові вдосконалювати і ефективно застосовувати свої знання і навички;
- вимірюваннями, що дають змогу добирати ефективні процеси. Будь-яка «здорова» культура повинна містити три істотні компоненти:
- персональне зобов'язання кожного розробника створювати якісні продукти шляхом систематичного застосування передового досвіду інженерії програмного забезпечення;
- зобов'язання менеджерів усіх, рівнів забезпечувати середовище, в якому якість програмного забезпечення (у всіх його аспектах) є фундаментальною концепцією і кожен розробник може реалізовувати цю концепцію;
- зобов'язаній всіх членів організації постійно вдосконалювати процеси, в яких воли беруть участь і продукти, які вони створюють.
На рис. 2.1 показано, як культура інженерії програмного забезпечення пов'язана з цілями, пріоритетами і технічною практикою розробки програмного забезпечення [25]. Культура інженерії програмного забезпечення визначає якісний рівень дій, процесів і технічних можливостей організації, задає проектні цілі і можливості організації. Рівень проектних цілей залежить від того технічного досвіду, який нагромоджено в організації. Чим більший цей досвід, тим вищі проектні цілі і тим краще відповідне програмне забезпечення здатна створювати організація. Технічний досвід, очевидно, впливає на загальну культуру організації і чим він більший, тим вища культура (А). Культура організації є, з одного боку, основою для діяльності кожного розробника, а з іншого - культура організацій буде тим вища, чим вища культура кожного розробника (В). Нарешті, культура інженерії програмного забезпечення допомагає встановлювати пріоритети менеджменту. Очевидно, вищі пріоритети менеджменту визначають (підсилюють) загальну культуру організації (С).
Рис. 2.1. Зв'язок культури з організацією
Сьогодні відомо декілька моделей культур організацій. Найвідоміші з них: Константіноса та Де Грака. Модель Константіноса розглядає чотири організаційні парадигми:
- закрита - характеризується стабільністю, секретністю, незначною гнучкістю, низхідним процесом прийняття рішень, неінноваційністю, авторитарністю;
- відкрита - характеризується інноваційністю, співпрацею, переговорністю, адаптивністю, колективним ухваленням рішень, ви рішенням проблем;
- синхронна - характеризується гармонійністю, рівністю, ефективністю, консерватизмом у змінах, координативністю, непрактичністю керівництва;
- випадкова - характеризується незалежністю ініціатив, творчістю і винахідливістю, індивідуальністю, нестабільністю, автономністю, неформальністю.
Модель Де Грака розглядає дві організаційні парадигми, які називаються римським і грецьким шляхами розвитку організацій (табл. 2.1), Де Грак вказує, що римський шлях характерний для старих, крупних і консервативних організацій, а грецький - для нових, середніх і малих мобільних організацій (ательє).
Таблиця 2.1
Р. Гласс (R.Gluss) додає «варварську» культуру для найменш цивілізованих, малих програмних ательє, порівнюючи її з грецькою і римською культурами таким чином: