DEV Community

Anton Kleshchev
Anton Kleshchev

Posted on

Make Agile more Flexible

Introduction

We all know that Agile is a methodology designed to make project planning and implementation dynamic and flexible. Today we're creating a schedule for one set of features and tomorrow after reviewing a demo we can change it according to our adjusted needs and purposes. This sounds really great, however this has a price: the planning we perform needs to be constantly changed and maintained according to the needs and priorities of all parties: team leads, managers, corporate leaders and stakeholders. Often such hierarchy of product owners makes planning stiff and highly resource consuming and leads to hesitation in making radical and frequent changes to the company roadmap. Therefore there is a space to make this process a bit more flexible by introducing a clear continuous algorithm for the planning process.

The Algorithm of a Continuous Planning Process

I call this algorithm an "Evolutionary Timeboxing".
This algorithm can be used any time at any point whether it's in the middle of the sprint or the beginning of the quarter, in general at any time.
Let's go over the main steps:

  1. Define planning horizon you want to plan for. This is similar to military where you can perform strategic (year+), operational (quarterly) or tactical (iteration or N weeks time span) planning.
  2. Decompose the business requirements of the project(s) into system components for all levels (where it's necessary). Define an estimate, nature of work for all activities. Define clear dependencies between system components and dependencies on the components of other projects.
  3. Define a timebox which is the target of your planning. Add or adjust the system components as deliverables for that timebox. Account for level of effort and available teams.
  4. Adjust or define all other timeboxes for the current and all other layers according to the new changes. Keep all layers synchronized. Notify the teams accordingly.

By following this algorithm it's possible to maintain a continuous and very flexible process of planning which is clear and transparent to both stakeholders who require high level vision (i.e. strategic level), project and product managers (operational level) and regular developers (tactical level). Currently I'm working on automating the reshuffling part which should make the process even more easier.
Let me know what you think about and your general thoughts of this practice!

Top comments (0)