tgoop.com/emacsway_log/1223
Last Update:
Тут возникло предположение о том, что Agile и планирование несовместимы.
Я не буду сейчас говорить о том, что сегодня Agile в чистом виде стремительно снижает свою долю на рынке в пользу гибридных моделей разработки. Хотя на этом можно было бы и остановиться, потому что:
💬 An important consequence of these values and principles is that a team should choose its own process - one that suits the people and context in which they work. Imposing an agile process from the outside strips the team of the self-determination which is at the heart of agile thinking.
-- AgileImposition by MartinFowler (один из ключевых соорганизаторов Agile Manifesto)
Раз уж затронули этого фигуранта Agile Manifesto, то давайте выслушаем его полностью:
💬 Plan-driven engineering expects us to come up with a predictive plan that precedes development. The plan lays out the people, resources and timelines for the overall project. Software design is also done up-front, with implementation expected to conform with this design. Success is measured according to how well development follows this plan.
Agile plans are a baseline that we use to help us control changes. Agile teams plan just as carefully as traditional teams, but the plans are constantly revising to reflect the things we learn during a project. Success is based on value delivered by the software.
Plan-driven engineering seeks a process which provides enough structure to reduce individual variations to insignificance. Such an industrial process is more predictable, copes better when people transfer, and is easier to define skills and career paths.
Agile engineering sees software development as a primarily human activity, where the people involved and how they bond as a team are the primary driver behind success. Processes (and tools) can enhance a team's effectiveness, but are always second-order influences.
-- Agile Software Guide by Martin Fowler
💬 The problem with predictive processes is that project quality is measured by conformance to plan. This makes it difficult for people to signal when reality and the plan diverge. The common result is a big slip in the schedule late in the project. In an agile project there is a constant reworking of the plan with every iteration.
-- New Methodology by Martin Fowler
💬 A good predictive project will go according to plan, a good agile project will build something different and better than the original plan foresaw.
-- New Methodology by Martin Fowler
Из этого видно, что ключевым в Agile является не отсутствие плана, а отсутствие следования плану, точнее, присутствие изменяемости плана с каждым новым инкрементом знаний, возникающим в результате практического исследования каждого нового системного инкремента. Подробнее смотрите в главе "Predictive and Adaptive Planning" его книги "UML Distilled" 3d edition.
Задача Agile заключается не в устранении плана, а в компенсации трудности заблаговременно планирования путем использования эмпирического способа обработки неопределенности (т.е. путем adaptation, responding).
При этом нужно учитывать, что адаптация тоже имеет свою стоимость, и важно находить баланс между экономической целесообразностью Prediction и Adaptation, о чем шла речь здесь:
https://www.tgoop.com/ru_arc/50
Иными словами, адаптации должно быть настолько мало, насколько недорого обходится Prediction. Вот что по этому поводу говорит сам организатор Agile Manifesto:
💬 The cost of improving the estimate, the initial work breakdown estimation, the cost of refining that grows exponentially. With every next layer you want to take it down. And the benefit of doing that does not grow exponentially. It grows logarithmically."
—"YOW! 2016 Robert C. Martin - Effective Estimation (or: How not to Lie)" at 33:15
BY emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Share with your friend now:
tgoop.com/emacsway_log/1223