Закон Брукса — спостереження щодо управління програмним проектом, згідно з яким додавання робочої сили до програмного проекту, який відстає від графіка, затримає його ще більше. Його придумав і описав Фред Брукс у своїй книзі «Міфі́чний люди́но-мі́сяць або Як ство́рюють програ́мні систе́ми» (англ. The Mythical Man-Month) 1975 року. За словами Брукса, за певних умов додаткова особа, додана до проекту, відтермінує виконання проекту, а не пришвидшить його.
Пояснення
Фред Брукс виділяє декілька факторів для пояснення закону:
- Проекти програмного забезпечення — це складні інженерні розробки, і нові працівники проекту повинні спочатку отримати знання про роботу, яка передувала етапу їх залучення до проекту. Брукс називає це часом «наростання». Процес отримання знань, повязаних з проектом від інших співробітників приведе до зносу ресурсів останніх і зменшення їх продуктивності, оскільки їх увага буде розсіюватись. Кожен новий працівник також має інтегруватися з командою, що складається з кількох інженерів, які мають навчати нового працівника у своїй галузі день за днем. Окрім зменшення внеску досвідчених працівників (через необхідність навчання нових співробітників), нові працівники можуть навіть зробити негативний внесок, наприклад, якщо вони введуть помилки, які відтермінують завершення проекту.
- Витрати на спілкування збільшуються зі збільшенням кількості людей. Завдяки комбінаторному вибуху кількість різних каналів зв'язку швидко зростає зі збільшенням кількості людей. Витрати на спілкування збільшуються зі збільшенням кількості людей, оскільки кількість різних каналів зростає. Кожен, хто працює над тим самим завданням, має підтримувати синхронізацію, тому чим більше людей додається, тим більше вони витрачають більше часу, щоб дізнатися, що роблять усі інші.
- Додавання більшої кількості людей до завдання, яке дуже поділено, наприклад прибирання номерів у готелі, зменшує загальну тривалість завдання (аж до моменту, коли додаткові працівники заважають один одному). Однак інші завдання, включаючи багато спеціальностей у проектах програмного забезпечення, менш подільні. Брукс вказує на цю обмежену подільність іншим прикладом: хоча одній жінці потрібно дев'ять місяців, щоб народити одну дитину, «дев'ять жінок не можуть народити дитину за один місяць».
Винятки та можливі рішення
У законі Брукса є кілька ключових моментів, які допускають наявність винятків та відкривають двері для можливих рішень. По-перше, слід зазначити, що закон Брукса застосовується лише до проектів, в яких вже минув термін закінчення. Проекти можна тримати під контролем, якщо заздалегідь додавати людей. Також важливо визначити, чи справді проект порушує графік виконання, чи з самого початку графік був надто оптимістичним. Помилки в плануванні є причиною великої кількості протермінованих проектів. Виправлення графіка є найкращим способом мати значущі та надійні часові рамки для завершення проекту.
Необхідно також враховувати кількість і роль людей, доданих до проекту, а також якість їх професійних знань. Один із простих способів обійти закон про перевитрачений проект — додати більше людей, ніж потрібно, таким чином, щоб додаткова потужність компенсувала витрати на навчання та спілкування. Набираючи людей з вищим професійним рівнем знань можна зекономити з витратами на навчання.
Хороша сегментація допомагає мінімізувати накладні витрати на спілкування між членами команди. Менші проблеми вирішує менша команда, а команда верхнього рівня відповідає за системну інтеграцію. Щоб цей метод спрацював, сегментація завдання повинна бути виконана правильно — якщо це зробити неправильно, це може погіршити проблему, а не покращити, перешкоджаючи спілкуванню між програмістами, які працюють над частинами проблеми, які насправді тісно пов'язані, навіть якщо план проекту постановив, що це не так.
Прикладом сегментації є шаблони проектування, які спрощують розподіл роботи, оскільки вся команда може виконувати свою частину в рамках, передбачених цим шаблоном. Шаблон проектування визначає правила, яких дотримуються програмісти, спрощує спілкування завдяки використанню стандартної мови та забезпечує послідовність і масштабованість.
План Бермудських островів (англ. Bermuda Plan), згідно з яким більшість розробників проекту видаляються («відправляються на Бермудські острови»), а решта залишаються для завершення програмного забезпечення, був запропонований як спосіб обійти закон Брукса.
Див. також
Посилання
- Сайт Фредеріка Брукса.
- Effectiviology.
Цю статтю треба для відповідності Вікіпедії. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Zakon Bruksa sposterezhennya shodo upravlinnya programnim proektom zgidno z yakim dodavannya robochoyi sili do programnogo proektu yakij vidstaye vid grafika zatrimaye jogo she bilshe Jogo pridumav i opisav Fred Bruks u svoyij knizi Mifi chnij lyudi no mi syac abo Yak stvo ryuyut progra mni siste mi angl The Mythical Man Month 1975 roku Za slovami Bruksa za pevnih umov dodatkova osoba dodana do proektu vidterminuye vikonannya proektu a ne prishvidshit jogo PoyasnennyaFred Bruks vidilyaye dekilka faktoriv dlya poyasnennya zakonu Proekti programnogo zabezpechennya ce skladni inzhenerni rozrobki i novi pracivniki proektu povinni spochatku otrimati znannya pro robotu yaka pereduvala etapu yih zaluchennya do proektu Bruks nazivaye ce chasom narostannya Proces otrimannya znan povyazanih z proektom vid inshih spivrobitnikiv privede do znosu resursiv ostannih i zmenshennya yih produktivnosti oskilki yih uvaga bude rozsiyuvatis Kozhen novij pracivnik takozh maye integruvatisya z komandoyu sho skladayetsya z kilkoh inzheneriv yaki mayut navchati novogo pracivnika u svoyij galuzi den za dnem Okrim zmenshennya vnesku dosvidchenih pracivnikiv cherez neobhidnist navchannya novih spivrobitnikiv novi pracivniki mozhut navit zrobiti negativnij vnesok napriklad yaksho voni vvedut pomilki yaki vidterminuyut zavershennya proektu Vitrati na spilkuvannya zbilshuyutsya zi zbilshennyam kilkosti lyudej Zavdyaki kombinatornomu vibuhu kilkist riznih kanaliv zv yazku shvidko zrostaye zi zbilshennyam kilkosti lyudej Vitrati na spilkuvannya zbilshuyutsya zi zbilshennyam kilkosti lyudej oskilki kilkist riznih kanaliv zrostaye Kozhen hto pracyuye nad tim samim zavdannyam maye pidtrimuvati sinhronizaciyu tomu chim bilshe lyudej dodayetsya tim bilshe voni vitrachayut bilshe chasu shob diznatisya sho roblyat usi inshi Dodavannya bilshoyi kilkosti lyudej do zavdannya yake duzhe podileno napriklad pribirannya nomeriv u goteli zmenshuye zagalnu trivalist zavdannya azh do momentu koli dodatkovi pracivniki zavazhayut odin odnomu Odnak inshi zavdannya vklyuchayuchi bagato specialnostej u proektah programnogo zabezpechennya mensh podilni Bruks vkazuye na cyu obmezhenu podilnist inshim prikladom hocha odnij zhinci potribno dev yat misyaciv shob naroditi odnu ditinu dev yat zhinok ne mozhut naroditi ditinu za odin misyac Vinyatki ta mozhlivi rishennyaU zakoni Bruksa ye kilka klyuchovih momentiv yaki dopuskayut nayavnist vinyatkiv ta vidkrivayut dveri dlya mozhlivih rishen Po pershe slid zaznachiti sho zakon Bruksa zastosovuyetsya lishe do proektiv v yakih vzhe minuv termin zakinchennya Proekti mozhna trimati pid kontrolem yaksho zazdalegid dodavati lyudej Takozh vazhlivo viznachiti chi spravdi proekt porushuye grafik vikonannya chi z samogo pochatku grafik buv nadto optimistichnim Pomilki v planuvanni ye prichinoyu velikoyi kilkosti proterminovanih proektiv Vipravlennya grafika ye najkrashim sposobom mati znachushi ta nadijni chasovi ramki dlya zavershennya proektu Neobhidno takozh vrahovuvati kilkist i rol lyudej dodanih do proektu a takozh yakist yih profesijnih znan Odin iz prostih sposobiv obijti zakon pro perevitrachenij proekt dodati bilshe lyudej nizh potribno takim chinom shob dodatkova potuzhnist kompensuvala vitrati na navchannya ta spilkuvannya Nabirayuchi lyudej z vishim profesijnim rivnem znan mozhna zekonomiti z vitratami na navchannya Horosha segmentaciya dopomagaye minimizuvati nakladni vitrati na spilkuvannya mizh chlenami komandi Menshi problemi virishuye mensha komanda a komanda verhnogo rivnya vidpovidaye za sistemnu integraciyu Shob cej metod spracyuvav segmentaciya zavdannya povinna buti vikonana pravilno yaksho ce zrobiti nepravilno ce mozhe pogirshiti problemu a ne pokrashiti pereshkodzhayuchi spilkuvannyu mizh programistami yaki pracyuyut nad chastinami problemi yaki naspravdi tisno pov yazani navit yaksho plan proektu postanoviv sho ce ne tak Prikladom segmentaciyi ye shabloni proektuvannya yaki sproshuyut rozpodil roboti oskilki vsya komanda mozhe vikonuvati svoyu chastinu v ramkah peredbachenih cim shablonom Shablon proektuvannya viznachaye pravila yakih dotrimuyutsya programisti sproshuye spilkuvannya zavdyaki vikoristannyu standartnoyi movi ta zabezpechuye poslidovnist i masshtabovanist Plan Bermudskih ostroviv angl Bermuda Plan zgidno z yakim bilshist rozrobnikiv proektu vidalyayutsya vidpravlyayutsya na Bermudski ostrovi a reshta zalishayutsya dlya zavershennya programnogo zabezpechennya buv zaproponovanij yak sposib obijti zakon Bruksa Div takozhUpravlinnya rozrobkoyu programnogo zabezpechennya Menedzher produktu Zakon Linusa AntipaternPosilannyaSajt Frederika Bruksa Effectiviology Cyu stattyu treba vikifikuvati dlya vidpovidnosti standartam yakosti Vikipediyi Bud laska dopomozhit dodavannyam dorechnih vnutrishnih posilan abo vdoskonalennyam rozmitki statti