I've done a lot of scrum like projects in the past 15 years. I say scrum like, because absolutely nobody does it "by the book". And if you do, you are doing it wrong because you are being rigid and dogmatic. Every agile manifesto signee will tell you that (I've heard several of them talk about this). I meet a lot of "you are doing it wrong" types. You know the type. Self styled agilists that throw the book at you and seem to love having lots of post its stuck on their walls that provide the illusion of progress in the absence of exactly that.
These days, I prefer Kanban style processes for several reasons. Most importantly, the practice of ignoring new requirements for two weeks (aka. doing a sprint) is not sustainable in most projects I'm on. It's just not a thing. Stuff changes all the time, deal with it now instead of in two weeks. Another reason is that I prefer continuous deployment and automating PM reviews away so we don't block shipping stuff over somebody's opinion. Sprint deadlines are utterly meaningless from a release point of view if you release multiple times per day. If it's better than what we have then merge and ship it ASAP. If it's obviously broken, obviously fix it now ASAP and don't wait to have a meeting about it in 2 weeks. Do that multiple times per day. Have responsible processes to ensure bad stuff gets caught before it is merged. It works. Shipping early means you catch stuff early and get feedback from real users rather than opinionated PMs and managers detached from reality. Also people stop throwing things over the fence when they are confronted with the consequences of what they did right away. It forces them to think end to end, a quality that I find is often missing with engineers because they are being shielded by layers of management.
Finally, I work with remote developers a lot these days. Anything involving telcos or meetings is downright painful; especially if you add language and cultural barriers. Having full day scrum ceremonial crap is just not something I have a lot of patience for. Doing that over a hangouts meeting is just an exercise in futility.
Kanban of course does not stop you from having regular planning meetings, estimation sessions, retrospectives, etc. All that can still work and if it adds value to your team, by all means keep on doing that. IMHO it makes less sense in distributed teams and those require more asynchronous approaches. I find decoupling what we do from when we do it in a Kanban style to be helpful. If the backlog is getting too short, add more stuff and add it in the priority you want things fixed. Don't allow your team to lose focus (aka. multi task) and set concrete goals. Have breakout meetings when things need clarification. Don't pile on too much work in too much detail until it is ready to get done. Doing CD means you can specify changes in terms of what you have in production and how you want things changed. I find that injects a sense of reality that just stops a lot of BS. from ever happening.
These days, I prefer Kanban style processes for several reasons. Most importantly, the practice of ignoring new requirements for two weeks (aka. doing a sprint) is not sustainable in most projects I'm on. It's just not a thing. Stuff changes all the time, deal with it now instead of in two weeks. Another reason is that I prefer continuous deployment and automating PM reviews away so we don't block shipping stuff over somebody's opinion. Sprint deadlines are utterly meaningless from a release point of view if you release multiple times per day. If it's better than what we have then merge and ship it ASAP. If it's obviously broken, obviously fix it now ASAP and don't wait to have a meeting about it in 2 weeks. Do that multiple times per day. Have responsible processes to ensure bad stuff gets caught before it is merged. It works. Shipping early means you catch stuff early and get feedback from real users rather than opinionated PMs and managers detached from reality. Also people stop throwing things over the fence when they are confronted with the consequences of what they did right away. It forces them to think end to end, a quality that I find is often missing with engineers because they are being shielded by layers of management.
Finally, I work with remote developers a lot these days. Anything involving telcos or meetings is downright painful; especially if you add language and cultural barriers. Having full day scrum ceremonial crap is just not something I have a lot of patience for. Doing that over a hangouts meeting is just an exercise in futility.
Kanban of course does not stop you from having regular planning meetings, estimation sessions, retrospectives, etc. All that can still work and if it adds value to your team, by all means keep on doing that. IMHO it makes less sense in distributed teams and those require more asynchronous approaches. I find decoupling what we do from when we do it in a Kanban style to be helpful. If the backlog is getting too short, add more stuff and add it in the priority you want things fixed. Don't allow your team to lose focus (aka. multi task) and set concrete goals. Have breakout meetings when things need clarification. Don't pile on too much work in too much detail until it is ready to get done. Doing CD means you can specify changes in terms of what you have in production and how you want things changed. I find that injects a sense of reality that just stops a lot of BS. from ever happening.