When you are juggling a bunch of work, whether it be in your personal or professional life, it can feel like everything is equally important and that there is never enough time to do everything. If you are working on a team this can get even worse as people will have different ideas on what is higher priority and which items deserve more time and effort. This can lead to many long and frustrating discussions and everyone might eventually start to feel stuck. One tool that I have found to be very useful in reducing the emotion around prioritizing work and helping teams move forward is a simple metaphor involving rocks, pebbles, sand, and a jar.
A common concern for many development teams when they are planning a project is avoiding rework. There is the idea that if they can think through every scenario at the beginning of each stage of the project, they can avoid having to redo designs, documentation, or code in the future. On the surface this is understandable, as having to redo tasks unnecessarily can definitely be wasteful. However, anyone who has worked on a project, especially an Agile project, knows that once a design or feature has been released to end users, there will always be unexpected feedback that will necessitate rework.
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).
1. Not focusing on Culture
Adopting Agile at an organizational level is something that will take a long time, bring about change throughout every level of the organization, face many difficulties, and require a great deal of experimentation and learning. In order for all of these to be possible it is not enough for an organization to simply adopt the practices of one of the many Agile frameworks that are currently available. This will lead to (maybe) some short term successes and some initial enthusiasm, but it will not setup the organization to sustain their Agile adoption over the long term. In order to really get a transformation to stick, the entire organization must experience a cultural shift that will encourage, support, and enable a focus on learning, failing, inspection, adaption, and continuous improvement. With the right culture in place, it will not matter what frameworks or practices the organization tries to adopt because they will be comfortable with trying many different things, continuing to focus on improving, and sustaining improvements over the long term.
After many years, my dream of having my primary work computer be a Macbook finally came true! I was so happy when I received my new 13 inch - Retina Macbook Pro and started to set up my desk with my new charger, keyboard, and mouse. Suddenly I realized there was at least one convenience I hadn't thought about when making the switch from the PC world: a dock that I could easily attach my machine to that would neatly organize all of my cables and provide all the ports I needed. I had never really seen any other Mac users in my office with a dock for their machines, but after a quick search on google I saw that there were at least two options with the more well known being the Henge Docks option. I was a little skeptical of a vertical dock at first since all of the other docks I had used previously were horizontal and the Henge Docks horizontal dock was super expensive. Ultimately, I decided to take the plunge on the vertical dock and see if it would be as useful as using the docks I had grown used to on the PC. Below I have included the pros and cons that I noticed while using the dock.
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 =)