We work in an infinitely complex telco and service provider environments where it is extremely hard to keep up with the change. Our customers are driven by their user base which is as unpredictable as possible while the technological surroundings keep changing.
Thus they want their time-to-market to be extremely small. Despite the fact that we have solutions that are very flexible we sometimes struggle while trying to contain the changes. Year and a half a go we introduced Scrum in our R&D. Transformation is still ongoing but we have reaped some benefits of it. Primarily we have managed to reduce a lot of waste, gained clearer prioritization and started to build continuoud integration systems.
We have delivery departments that deliver the required customizations on top of our platforms. They face ambigious, and sometimes even non-existent requirements from the customer and try to cope with them. There is a constant flow of changes coming from the customers as they elaboreate their own business models. Until recently everything has happened under waterfall processes, not least because of the strict contracts based on phases of the delivery.
As part of the Scrum transformation the deliveries have started to use Scrum in the delivery projects. The project teams are constantly fighting in a cross-draught of different projects. The teams may abruptly be changed taking away all that was built so far breaking every single aspect of team building, one of the cornerstones of Scrum.
After following the deliveries for a while I have come to a conclusion that their environment is too chaotic for Scrum. If they can’t even keep a team intact over one delivery it is useless. But there exists another process model in the world of Agile that fits this situation perfectly and that is Kanban.
Removing the unnecessary sprint plannings from their environment and concentrating solely on a continous flow of feature and change request deliveries they could achieve much more leaner projects. Prioritize tasks everyday, place strict limits on the amount of tasks that can be under implementation at the same time. In other words control the chaos by limiting the work in progress.