
- •4. Інженерія систем і програмного забезпечення
- •4.1. Складні та великі системи
- •4.1.1. Властивості систем: емерджентність, адитивність, еквіфінальність
- •4.1.2. Відкриті та закриті системи; класифікація за призначенням, походженням, видом елементів, способом організації
- •4.1.3. Спільне та відмінності складних і великих систем
- •4.2. Моделі систем
- •4.2.1. Склад і структура системи; моделі типу чорної та білої скриньки.
- •4.2.2. Концептуальні, математичні і комп’ютерні моделі
- •4.2.3. Зв’язок між системою та моделлю. Ізо- та гомоморфізм
- •Гомоморфізм
- •Гомоморфізм Гомоморфізм Ізоморфізм
- •4.3. Інформаційні системи
- •4.3.1. Поняття, цілі, значення, класифікація за функціональністю, масштабом, сферою застосування
- •4.3.2. Забезпечення інформаційних систем: організаційне, інформаційне, математичне, програмне, технічне, лінгвістичне, методичне, правове.
- •4.4. Аналіз вимог
- •4.4.1. Класифікація вимог до програмного забезпечення. Джерела та методи збирання вимог
- •4.4.2. Вимоги користувача (варіанти використання та історії користувачів).
- •4.4.3. Функціональні та нефункціональні вимоги, обмеження, структуризація функціональних вимог.
- •4.5. Проєктування програмного забезпечення
- •4.5.1. Види проєктування: структурне, обєктно-орієнтоване, архітектурне, інтерфейсне
- •4.5.2. Парадигми проєктування: функціональна декомпозиція згори вниз, архітектура, орієнтована на дані, об'єктно-орієнтований аналіз та проєктування, подієво-керована архітектура
- •4.5.3. Ідентифікація класів предметної області. Uml-діаграми ієрархії класів: моделювання підсистем, класів та зв’язків між ними
- •4.5.4. Проєктування сценаріїв реалізації варіантів використання на основі uml-діаграм послідовностей та комунікації
- •4.5.5. Основні патерни проєктування mvc, Abstract Factory, Facade, Decorator, Flyweight, Visitor, Observer, Proxy, Strategy, Chain of Responsibility
- •4.6. Реалізація програмного забезпечення
- •4.6.1. Вимоги до оформлення коду: стиль, розбиття на структуровані одиниці, найменування змінних, класів, об’єктів.
- •4.6.2. Засоби автоматичної ґенерації програмного коду
- •4.6.3. Налагодження: Точки зупинки (Breakpoints), Спостереження за змінними (Variable Watch), Виведення на консоль (Console Output), Налагоджувач (Debugger), Аналізатори коду (Code Analyzers)
- •4.6.4. Керування конфігурацією програмного забезпечення та контроль версій
- •4.6.5. Постійна інтеграція/постійне впровадження (Continuous Integration/Continuous Delivery)
- •4.7. Забезпечення якості: спільне та відмінності процесів тестування, верифікації, валідації
- •4.7.1. Тестування методами білої та чорної скрині
- •4.7.2. Рівні тестування: модульний, інтеграційний, системний, валідаційний.
- •4.7.3. Розробка через тестування (Test-driven development)
- •2. Види тестування зручности використання:
- •3. Проведення ефективного тестування зручности використання
- •4. Вирішення крайніх випадків в тестуванні зручности використання
- •4.8. Командна робота, підходи до розробки програмного забезпечення (пз)
- •4.8.1. Класичні моделі розробки пз: каскадна (водопадна), ітераційна, інкрементна
- •4.8.2. Промислові технології розробки. Rup, msf, Agile, Scrum, Extreme Programming (xp), Kamban.
- •4.8.3. Ролі та обов'язки у команді проекту, переваги командної роботи, ризики та складність такої співпраці
- •3. Ролі членів групи в моделі процесу розробки
- •4.8.4. Основні етапи планування і виконання іт проекту. Життєвий цикл іт проекту.
3. Ролі членів групи в моделі процесу розробки
Хоча за загальний хід проекту відповідає менеджер програми, у досягненні кожного етапу, як показано в таблиці 3.1, беруть участь всі ролі. Зіставляючи кожну з ролей (або груп ролей) з основними етапами, одержуємо ясне подання про те, хто відповідає за кожний етап. Такий підхід дозволяє чітко розподілити обов'язку в групі.
Табл. 3.1. Відповідальність ролей моделі групи за основні етапи
Фаза |
Етап |
Відповідальна особа |
Аналіз |
Схвалення концепції |
Менеджер продукту |
Планування |
Схвалення плану проекту |
Менеджер програми |
Розробка |
Завершення розробки |
Розробник, інструктор |
Стабілізація |
Випуск продукту |
Тестер, логістик |
Плюси і мінуси роботи в команді. На кожному з основних етапів відповідальність за наступний етап передається відповідній ролі або групі ролей. Приймаюча сторона повинна підтвердити передачу відповідальності, щоб кожний член групи усвідомив перехід проекту на наступну стадію. Організований перехід відповідальності від ролі до ролі – ознака здорового проекту.
Оскільки результативність роботи є її найкращим показником, людина увесь час намагається впроваджувати різні заходи, спрямовані саме на покращення можливостей виконавців та підсумкового результату праці.
Враховуючи суттєву обмеженість можливостей однієї людини, було придумане делегування обов’язків – певний поділ робочих етапів між колегами-працівниками. Делегування може відбуватися, як згідно вертикалі «керівник-підлеглий», так й поміж членами одного колективу, створюю чи такий тип «розподілу» завдань, яким є командна робота.
Так сучасне прагнення працювати ефективно створило справжній тренд на «командного ефективного гравця». Сьогодні, чимало серйозних роботодавців шукають до колективів своїх компаній саме «командних гравців», та вміння вдало працювати у команді з колегами, вважається суттєвою перевагою у конкурентній боротьбі між шукачами вакансій. Однак, принцип «гуртом й батька веселіше бити», виявляється спрацьовує не завжди, й такий вид роботи, як командна праця, має свої власні переваги й недоліки.
Чим стане доречною та чим може завадити спроба працювати у команді, й коли застосовувати саме командну роботу колективу, спробуємо розібратися нижче.
Іноді, навіть у вузьких спеціалізаціях трапляються ситуації, коли сам фахівець просто не в змозі самотужки впоратися із усією роботою, яка на нього очікує. У таких випадках, делегування задач доволі доречне, оскільки розподіл між кількома працівниками об’ємів необхідних робіт, обумовлює більш швидке виконання необхідного.
Проте, навіть, у такій, вочевидь, логічній ситуації, командна робота буде ефективною, лише за наявністю де-яких умов.
Присутності досвідченого керівника-лідера. Незважаючи на необхідність дотримання рівноправ’я серед членів команди та необхідної толерантності до думок колег, присутність у команді справжнього лідера просто необхідна для вдалої командної роботи. Гарно, коли всі розуміють, що потрібно робити, проте, при настанні складних та «нештатних» ситуацій, саме лідер зможе повести команду далі, організувати роботу та спрямувати зусилля команди в необхідному напрямку.
Наявності чітко визначеної мети роботи та грамотно розподілених завдань. Без виконання цього правила, навіть робота мега досвідчених фахівців не буде мати результативності командного труда. У більшості випадків, без мети та чіткого розподілу завдань, команда та її робота перетвориться на хаос та купу людей, які лише заважають один одному.
Наявності щирої взаємоповаги всередині колективу. Коли мова йде про спільну роботу, на перший план має виходити саме професійна повага, коли, незважаючи на власне ставлення до колеги, як до людини, ми все таки поважаємо його професійну думку, працюючи на спільний результат.
Наявності єдиного «бачення» усіма членами колективу необхідного результату. Правильна мотивація колективу, має не лише «зарядити» енергією та вірою в себе його членів, але й створити в усіх єдине бачення того, що, коли та у якому вигляді вони всі мають зробити у якості результату їхньої командної роботи. В іншому випадку, це призведе до дисонансу у роботі та очікуваннях працівників, виникненню в колективі відчуття омани та втрата мотивації й довіри до свого лідеру.
При ідеальному поєднанні всіх цих аспектів, командна робота матиме дійсно видатні результати та стане гарною «візитівкою» їх роботи, для кожного з членів команди та надаватиме чимало переваг.
Так, однією з таких значних переваг, фахівці вважають можливість «свіжого погляду з боку», яку надає саме командна робота. Навіть, якщо людина автоматично скоїть помилку, ті хто працюють поруч, зможуть помітити її, допомагаючи не зупиняти роботу та вдосконалити процес та результативність.
Наступною перевагою праці у команді, можна вважати виробку вміння взаємодії – якості, яка допоможе не лише під час роботи, но й при побудові кар’єри, й при різних обставинах у побутовому житті. Людині важливо вміти прислухатися до думки інших, знаходити порозуміння та компроміси, приймати власні помилки та допомогу й досвід інших колег.
До речі, можливість постійного обміну досвідом – це ще окрема перевага командної роботи, яка дозволяє постійно вчитися один в одного, людям, які працюють разом.
На що звернути увагу. Як вже говорилося вище, такі «плюси» робота у команді може принести лише за умов, коли вона налагоджена із врахуванням усіх нюансів такої праці. Наприклад, необхідність праці разом зовсім різних людей, може стати вдалим експериментом, лише, якщо всі ці колеги, зможуть «притертися» та спрацюватися один з одним.
Крім того, індивідуальність рівнів особистостей та характерів, може спричиняти численні напруги та сварки у колективі, які затримують роботу та можуть бути владнані, якщо в команді є дійсно авторитетний для більшості лідер. Також, всі люди, які мають працювати у команді, повинні усвідомлювати необхідність пошуків компромісу та прагнути згладжувати усі «гострі кути» суто мирним шляхом.
Висновки щодо переваг роботи у команді:
більш швидке виконання роботи, у порівнянні з часом, що витрачає на роботу одна людина;
унікальний та ефективний досвід в налагоджуванні міжособистісних взаємин;
набуття вміння щиро поважати чужі думки, які не збігаються з власними;
можливість взаємного контролю, завдяки «свіжому» погляду з боку;
допомога у згуртуванні ефективного трудового колективу;
можливість обміну знаннями та досвідом, що є корисним для кожного працівника команди;
вміння знаходити компроміси навички вирішення конфліктних та спірних ситуацій суто мирним шляхом.
А, що з недоліками командної роботи?
Також, не слід забувати й те недоліки, які теж може мати спроба командної роботи колективу.
Не треба намагатися працювати командою, не маючи гідного лідеру. Його відсутність обумовить важке налаштування групи на загальний спільний темп роботи, та організувати сам робочий процес.
Треба пам’ятати про необхідність певного часу, який потрібен для знайомства та залагодження дій в колективі, який намагається працювати командою. Іноді, для плідної взаємодії різних особистостей та власників різних характерів може знадобитися надто забагато часу, й ви просто не матиме право на такі експерименти. В іншому випадку, різні особливості людей стануть на заваді порозумінню та можуть занапастити всю роботу команди.
Командна робота – це завжди підвищений ризик появи всіляких конфліктних ситуацій, тож треба завжди бути готовим до такого негативу та вміти своєчасно та гідно вирішувати ситуації суто мирним шляхом.
Також, коли командній роботи бракує організації, далеко не кожен член команди може вносити повноцінний та рівносильний внесок до загального результату та робочого процесу. Це призведе не лише до можливих конфліктів, але й суттєво заважатиме отриманню максимальних результатів від такого типу праці. Проте, швидко розібратися в тому хто переробляє, а хто «робить видимість» роботи, буває не так вже й просто.
Певним чином, можна сміливо говорити про низку переваг роботи командою, однак, більш ефективною вона стане лише у випадку, коли має гарну організацію та налагоджені всі свої аспекти. Серед таких важливих аспектів й наявність авторитетного лідеру, й розуміння спільної мети, й наявність щирої взаємоповаги між учасниками команди, й чітка мотивація та розподіл обов’язків. У разі браку хоча б одного з цих «елементів», трудовий процес в якості командної роботи буде тривати ще довший час, або «не рухатиметься з місця», в кращому випадку, демонструючи лише «видимість праці».
Зазвичай, за таких умов одразу втрачається головна перевага такої роботи в команді. бо командна робота не є лише «вдалим результатом», а й передбачає ефективний робочий процес, який здатен надавати всі ті переваги, про які ми говорили вище.
Задачею кожного лідеру та просто відповідального за роботу колективу працівника, є своєчасне розуміння того, чи ефективною стане командна роботу саме в конкретному випадку при необхідності виконувати певні завдання. Від того, наскільки досвідчений в плані командної роботи, колектив ви маєте та наскільки вірною була ваша оцінка необхідності застосуванні такого в-типу праці, буде залежатиме й те, чи вдосконалите ви результати роботи, чи лише згаєте такий дорогоцінний робочий час.
Переваги командної роботи:
Підвищення продуктивності: Коли люди працюють в команді, вони можуть об'єднати свої навички та сильні сторони, що призводить до підвищення ефективності та продуктивності. Різні точки зору та різноманітні набори навичок можуть призвести до інноваційних рішень та більш якісної роботи.
Ефективна комунікація: Командна робота сприяє ефективній комунікації між членами команди, дозволяючи їм ділитися своїм досвідом, проблемами чи ідеями. Цей відкритий діалог сприяє обміну інформацією та допомагає уникнути непорозумінь і неправильних тлумачень.
Розподіл робочого навантаження: У команді розподіл роботи може здійснюватися на основі індивідуальних сильних сторін і досвіду. Такий розподіл праці гарантує, що кожен працює разом і робить свій внесок у загальний успіх проекту або завдання.
Взаємна підтримка та підзвітність: Члени команди звітують один перед одним за свій внесок і дотримання дедлайнів, створюючи культуру відповідальності та відданості справі. Ця взаємна підтримка допомагає долати труднощі та просуватися до цілей команди.
Підвищення кваліфікації та розвиток: Робота в команді надає можливості для особистого та професійного зростання. Працюючи з іншими, люди можуть вчитися у своїх колег, розвивати нові навички та розширювати свою базу знань. Це також заохочує учасників надавати конструктивний зворотній зв'язок та ефективно доносити свої ідеї.
Недоліки командної роботи:
Потенційні конфлікти: Незважаючи на свої переваги, командна робота також може призвести до конфліктів між членами команди. Можуть виникати розбіжності в думках, стилях роботи або особистісній динаміці, що перешкоджають прогресу команди і створюють напругу в групі.
Нерівний внесок: У деяких випадках члени команди можуть робити неоднаковий внесок у роботу команди. Такий дисбаланс у розподілі робочого навантаження може викликати обурення та незадоволення, що призводить до зниження мотивації та продуктивності.
Індивідуальні цілі проти командних: Члени команди можуть мати власні індивідуальні цілі або пріоритети, які можуть не збігатися з цілями команди. Конфлікт індивідуальних інтересів може перешкоджати загальній згуртованості та ефективності команди.
Потенціал для соціального байдикування: У великих командах деякі працівники можуть покладатися на інших у виконанні роботи, що призводить до соціального байдикування. Це явище виникає, коли члени команди не докладають стільки ж зусиль, скільки вони докладали б, працюючи індивідуально.
Обмеження часу та ресурсів: Робота в команді іноді може призводити до затримок через необхідність координації та співпраці. Крім того, командні проекти можуть вимагати більше ресурсів, таких як час і фінанси, що може створити проблеми для своєчасного завершення.
Командна робота має безліч переваг, включаючи підвищення продуктивності, ефективну комунікацію та взаємну підтримку.
Однак вона також має свої недоліки, такі як потенційні конфлікти, нерівні внески та суперечливі індивідуальні цілі.
Щоб максимізувати переваги командної роботи та пом’якшити її недоліки, вирішальне значення має ефективне керівництво командою, чіткі канали комунікації та спільне розуміння командних цілей.
Визнаючи та враховуючи ці плюси та мінуси, організації можуть створити середовище, яке сприятиме успішній командній роботі та досягненню оптимальних результатів.