As part of my team's workflow, every two weeks we take some time to have a retrospective session (we are currently using Scrum). Although the format can vary, we normally keep things pretty simple and talk through what went well and what could have been improved during the sprint, and then we come up with a few action items to work on the next one. I have helped facilitate many of these retros and one thing that I started to notice fairly regularly was how easy it was to quickly jump into where teams wanted to improve and only briefly touch upon (or completely skip) what had been working well. With the focus that agile frameworks place on continuous improvement, it is understandable for teams to want to find ways to fix things they feel aren't working, but I have found that focusing on what has been working can be just as important in ensuring the team continues to succeed.
There are many great books that talk about Agile theory and principles and these are important to building a theoretical foundation for any new Scrum Master (or any new Agile leader for that matter). However, in order to be an effective Scrum Master and Servant Leader, it is essential to learn how to provide coaching and build up high performing, self organizing teams. This is always listed as skills that Scrum Masters can provide, but most training courses and Agile books focus more on tactics and don't often provide guidance to new Scrum Masters on how to develop the more nuanced skills that the position will require for success. Below is a list of the books that I have found most helpful in improving these skills and that I wish I would have read before I started building out my first Agile teams.
"In preparing for battle I have always found that plans are useless, but planning is indispensable" - Dwight D. Eisenhower
There is always a fear when embracing Agile that things will fall into chaos and that planning and strategy go out the window. I have been on projects that have run into these types of issues and a big part of that stemmed from the team losing sight of the big picture goals and direction for the project. One thing that has been very helpful in preventing chaos and keeping things on track has been: release planning.
It is commonly agreed that collaboration for Agile teams is best when it is face to face. However, in an increasingly global world and with companies and workers focusing more on saving on costs by looking abroad, face to face collaboration is not always practical or even possible. Thankfully, there are many applications these days that have made it possible to work effectively with distributed teams regardless of where they are located and make it feel as if you are almost in the same room. Below is a list of five of my favorite tools for working effectively with distributed agile teams.
A team member once came to me and said that they're team was currently using Kanban, but that they wanted to switch to Scrum. When I asked why, their response was: "we need the two week time-box, because in Kanban everything goes into the in-progress column and just stays there". There are clearly many issues that would need to be addressed in this statement, but one that is very important that seems to be ignored on a regular basis is: WIP Limits.
One of the most well-known aspects of many Agile frameworks is the iterative nature of the delivery of working software. The Agile manifesto states: "Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale." The key phrase here that many teams seem to struggle with is "with a preference to the shorter timescale". The Scrum guide states that sprints can be from 2-4 weeks. This is a little bit better, but many teams still gravitate towards the longer end of that range and end up attempting 3-4 week sprints (Although I am using sprints as recognized in Scrum for most this article, I believe the content and practices that follow can apply to any Agile framework).
Scrum and Kanban are currently two of the most popular ways to implement Agile practices within software development teams. Scrum has prescribed roles and ceremonies and focuses on delivering small batches of potentially releasable work in short time-boxes. Kanban focuses on visualizing work, flow, and limiting work in progress. Both place an emphasis on continuous improvement. Both have been shown to be effective, but the question many teams face when starting to adopt Agile is: which one should we use? Teams often get hung up on deciding and in many cases select a framework which may not suit their team or environment. Or even worse, they will switch when the framework they chose isn’t working as well as they had hoped, without giving any thought to the underlying cause of their problems. Taking the following factors into consideration when deciding which one will be best for a particular team will help to ensure that the team is set up for success.
I love dancing, traveling, reading about technology, watching movies/tv shows, finding new ways to improve myself and just generally living a pretty laid back life. I'm hoping to share some of the things that I enjoy or that have improved my life with anyone who would like to see =)