передового досвіду в галузі адаптивних команд програмного забезпечення

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

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

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

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

В основі обох цих підходів є тестування. Можна стверджувати, що тестування є єдиним найбільш важливим напрямком діяльності для розвитку команди зробити. Є успішні команди, які використовують дуже складні масиви автоматизованих тестів, а деякі, які є успішними робити це вручну. Ступінь автоматизації, як правило, необхідні корелює з масштабом розроблюваної системи. Що більш важливо те, як тісно діяльності в галузі випробувань відображають очікування замовників і кінцевих користувачів програмного забезпечення. Це з того, що так багато інших «кращих практик» виводяться.

У ThoughtWorks Studios, ми визначили нашу ідеальний стан як один з безперервної доставки: той, в якому клієнти і користувачі програмного забезпечення мають максимальні власності та впливу процесу розвитку.
Ця система включає в себе дисципліни з боку всіх суб’єктів системи, від керівництва, яке забезпечує довіру і керівництва з колективами розробників, на команди, які регулярно виконують мінливих потреб своїх клієнтів. Там немає рецепту для команди, щоб слідувати, щоб досягти цієї мети, але є бажання, щоб спостерігати, адаптуватися і реагувати на зміни, які зустрічає їх.