Система Orphus

Adapting Configuration Management for Agile Teams

Balancing Sustainability and Speed

Автор: Mario E. Moreira
Издательство: Wiley, 2009
302 страницы
ISBN: 0470746637
ISBN: 978-0470746639

Материал предоставил: Юрий Удовиченко
Найти в магазинах

Аннотация

Содержание
Комментарии

Аннотация

Adapting Configuration Management for Agile Teams is aimed at all levels of professionals in the Agile, Configuration Management, Project Management and Product Management field. It provides very tangible approaches on how Configuration Management with its practices and infrastructure can be adapted and managed in order to directly benefit Agile teams.

Written by Mario E. Moreira, author of Software Configuration Management Implementation Roadmap, columnist for CM Crossroads online community and writer for the Agile Journal, this book provides concrete guidance on tailoring CM for Agile projects without sacrificing the principles of Configuration Management. When done properly, CM provides the lean and evolving structure needed for Agile projects to continue to run fast. CM and Agile can be a very powerful combination.

Sprinkled throughout the book are “Pit Stops” which provide insightful CM and Agile information in bite size chunks as take-aways for the reader and to encourage reading on. Inside, learn how to:

Содержание

Contents
Publisher’s Acknowledgements
Preface
Acknowledgements
About the Author
Contributor Biography

1 Introduction: Racing with Confidence
1.1 Focus of this Book
1.2 Who should Use this Book
1.3 Navigation through this Book
1.4 Value of this Book

2 CMPrimer
2.1 Brief History of CM
2.2 CM Values
2.3 CM Practices
2.4 Benefits of CM
2.5 CM Roles
2.6 CM Mindset
2.7 Relationship of CM to Culture, Methods, and Governance
2.8 CM Resource Guide

3 Agile Primer
3.1 Brief History of Agile
3.2 Agile Values (a.k.a., Manifesto)
3.3 Agile Methods
3.4 Benefits of Agile
3.5 Agile Personality Types
3.6 Agile Roles
3.7 Agile Mindset
3.8 Moving to an Agile Culture
3.9 Agile Resource Guide

4 How CM and Agile Values Work Together
4.1 Aligning Agile and CM Mindsets
4.2 Supporting Agile and CM Values without Sacrifice
4.3 Value of Retrospective to CM
4.4 Agile Perspective of CM Practices

5 Approaching Infrastructure for Agile
5.1 Guiding Principles for Approaching Infrastructure
5.2 Considerations for Approaching Infrastructure
5.3 Infrastructure Envisioning
5.4 Infrastructure Refactoring
5.5 Owning on Premises or Renting in the Clouds

6 Approaching the CM Implementation for Agile
6.1 CM Envisioning
6.2 CM Refactoring
6.3 Automate, Automate, Automate for Agile

7 Adapting CM Practices for Agile
7.1 Adapting to Continuous Integration and Build
7.2 Adapting CM Planning
7.3 Adapting to Support Refactoring
7.4 Adapting to Support Pair Programming
7.5 Adapting to Support Test Driven Development (TDD)
7.6 Adapting to Support Agile Distributed Teams
7.7 Adapting Change Control, Traceability, and Baselines
7.8 Adapting CM Audit
7.9 Adapting Problem Management
7.10 Adapting CM Report and Review

8 CM Tool as a Strategic Agile Partner
8.1 CM Tool Support for Software Development
8.2 The Agile Practices that Impact a CM Tool
8.3 Evaluating Your Situation
8.4 CM Tool Features that Facilitate Agile Development
8.5 Integration with Your Agile Ecosystem
8.6 Conclusion

9 Evaluating Tools Suited for Agile
9.1 Looking for Tools out there and in here
9.2 Levels of Technology Evaluation
9.3 Perform a Technology Evaluation

10 Using CM Standards and Frameworks to Support Agile
10.1 Importance of CM
10.2 Compliance and IT Governance Requirements
10.3 Communicating Your Approach to Senior Management
10.4 Which Standards Should Be Considered?
10.5 Configuration Management Functions that are most Essential
10.6 How do Frameworks such as Cobit, ITIL, CMMI, and RUP
10.7 Achieving Synergy through Harmonization and Tailoring
10.8 Conclusion

Bibliography
Index

Комментарии

Юрий Удовиченко

Сам я не курящий, однако для книжки, про которую пойдет речь, эта фраза из "Кофе и сигарет" Джима Джармуша - вполне подходящий эпиграф. Потому как книжка - про соединение двух очень связанных областей - это гибкие методологии разработки (a.k.a. Agile) и управление конфигурацией (a.k.a. SCM).

Название можно перевести как "Применение SCM в командах с гибкими методиками разработки: в равновесии между устойчивостью и скоростью". Что по-русски, что по-английски - одинаково громоздко, однако смысл понятен. Перед прочтением опасался, что книжка будет похожа на героев старого анекдота про морскую свинку, однако опасения были напрасными.

В первой главе Introduction: Racing with Confidence автор заранее говорит - кому вообще стоит читать данную книгу. Как и следовало ожидать - читать можно всем. И тем, кто знаком с agile, но хочет узнать больше про SCM, и наоборот. Много "воды", однако - надо же было с чего-то начать книгу. :) Далее идёт ознакомление с основами как SCM, так и agile.

Глава CM Primer с толком рассказывает, что же такое управление конфигурацией. Причем основы изложены правильно. Сначала говорится о 4 основных направлениях ответственности - identification, control, audit, report. А затем - об основных практиках, таких как контроль версий, багтрекинг, управление отстройкой и многом другом. После этой главы должно появиться понимание - что из себя представляет SCM и какова его роль. С точки зрения СМ-инженера - изложено толково.

Следующая глава - Agile Primer - рассказывает о том, что вы давно хотели узнать про Agile, но всё недосуг было прочитать. Причем упор делается больше на идеях и духе, хотя о конкретных практиках также рассказывается. Для начала цитируется Agile Manifesto - чтобы читатель проникся идеями и ценностями. Далее идет рассказ о популярных методах, например, Scrum и XP. А затем, опять же, немало уделяется внимания именно роли личности и персональным коммуникациям - приводятся психотипы участников agile-движения (несколько - от innovator и champion до deviever и denier), их роли и общий настрой (mindset). В общем, познавательно. Я вот лично не работал в Agile-командах, однако для себя получил изрядную картину того, что же это такое.

Далее в главе How CM and Agile Values Work Together делается первая попытка свести вместе гибкие методики и SCM и показать, что они отлично уживаются и дополняют друг друга. А именно - берётся поочередно каждая практика SCM - будь то контроль версий, выпуск релизов или планирование - и рассматривается с точки зрения Agile. Рассуждение идёт достаточно прагматичное и не предвзятое - практик Agile примеряет "на себя" все практики SCM.

Затем глава Approaching Infrastructure for Agile описывает как выстраивается инфраструктура под гибкую разработку. В основном, описывается два подхода - когда всё выстраивается заранее (envisioning) и когда минимальный набор средств на старте проекта постепенно перерабатывается под нужны каждой итерации (refactoring). Также немало рассказывается о выборе между двумя крайностями: создание инфраструктуры самостоятельно, или же размещение/покупка решений "в облаке" - это направление в последние годы набирает обороты.

После чего глава Approaching the CM Implementation for Agile продолжает развивать нчатую мысль и показывает как практики SCM будут внедрятся в работу agile-команды. Аналогично предыдущей главы рассматриваются подходы envisioning vs. refactoring, после чего читателя активно убеждают в необходимости максимальной автоматизации CM-деятельности, что очень правильно.

Наиболее существенная часть книги - это глава Adapting CM Practices for Agile, где подробно описывается, как практики SCM адаптируются к работе команды, исповедующей Agile. Берется какая-то сторона работы гибких методологий, и показывается - как CM увязывается с Agile в описанном случае. Сюда входит и continuous integration, планирование, рефакторинг, test-driven development, парное программирование, управление изменениями, багтрекинг и некоторые другие аспекты. Всё очень подробно и, опять же, прагматично. Автор спокойно может утверждать, что какие-то традиционные практики вроде планирования или baselining могут просто не понадобиться при грамотной работе "гибкой" команды. Причем описывает это обоснованно, с точки зрения здравого смысла и духа гибких методик.

Следующую главу CM Tool as a Strategic Agile Partner предоставил Деймон Пул (Damon Poole). Он делает упор на выборе инструментария под "гибкие" проекты описывающие выбор инструментария как для CM, так и для всего процесса разработки. Причем берет действительно нужные параметры, такие как производительность, наличие репликации или распределенного механизма, поддержка веток и т.п. Неплохая глава, в общем.

Следующая за ней Evaluating Tools Suited for Agile продолжает разговор о выборе инструментов, причем упор уже далается на том, как правильно построить evaluation, т.е. оценку выбираемых инструментов. Мало, но неплохо.

Закрывает книгу глава, предоставленная Бобом Айелло (Bob Aiello) - Using CM Standards and Frameworks to Support Agile - которая во многом повторяет одноименную главу в его книге Configuration Management Best Practices.

Кому будет полезна книга?

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

Для тех, кто занимается SCM или какой-либо из его сторон, будет также полезно познакомится с тем, чем сейчас живёт чуть ли не половина всей отрасли. Ведь Agile сейчас на подъёме, а значит, надо иметь хорошее представление о том, что происходит вокруг. Кроме того, многие канонические вещи, вроде ветвления, обсуждаются в новом свете, что заставляет задуматься об их исключительной необходимости в определенных условиях. Короче, полезно иногда взглянуть по-новому на знакомые вещи.

Общий итог - надо брать.