This week we continue the read of Commitment – Novel about Managing Project Risk by Olav Maassen, Chris Matts and Chris Geary (2nd edition, 2016) with chapter 3. Chapter 3 introduces a number of Agile and lean techniques. Susan follows the path of the hero as she crosses the threshold into a new world, signifying her commitment to the journey, and she begins to identify allies.
As a reminder, Chapter 2 ended with the management team telling Rose that the plan she presented was no different from the one David had presented. Management fired David after presenting his plan to complete the project. The management committee is ready to shut down the project and terminate the lot. Chapter 3 begins with Rose’s cry for help to Lily. Lily listens and convinces Rose to ask for help from the mentors. She finally calls the number on the business card Lily gave her in chapter 1 to set up a meeting with a mentor. As Rose is leaving the office (with everyone laboring into the evening) to go to the meeting with a mentor at the Cantina of Learning, no one even says goodbye. Rose is a pariah even to her own team.
There’s a call out in one of Lily’s blogs that describes the knowledge options and relationships as the transition from Rose’s leaving work and getting to the Cantina of Learning. Knowledge options are where you know just enough about a subject to know how to apply the subject and how long it will take to get up to speed on the topic when needed. With this knowledge, a practitioner can assess a situation, assess his or her options and then commit based on context. There’s an old saying “if the only tool you own is a hammer, then everything looks like a nail.” That is an example of a practitioner not having (or understanding that there are) knowledge options. Having knowledge options allows individuals and teams to pivot at the last possible moment when the option has the highest value. Knowledge options help you make decisions with the best possible knowledge, which will improve the outcome of the decision. Knowledge options are an acknowledgment that being consciously incompetent has value if you know how long it takes to move from consciously incompetent to consciously competent. For example, if a new piece of functionality required learning Ruby and that it would take two months of study to become proficient you would be able to decide when the piece of work could be done based on your capability in Ruby.
The blog entry goes on further to provide advice on finding the right mentor. The advice is to find an author that has published a good book on the subject and then identify the community that generally exists around the author’s work. The practitioners that are active in the community often have the time and experience to act as mentors. I use a variant of this process to find and engage people for Software Process and Measurement Cast interviews.
Once Rose is ensconced in the Cantina of Learning, the journey to redemption begins. Rose meets Jon who tells Rose about work visualization and stand-ups. Visualization helps the team know where they are and how they can coordinate their own activities. The process of visualizing the flow of work identifies all the work in process (WIP). A side benefit of identifying WIP is that you can see when a person is working on more than one piece of work at a time. WOrking on more than one thing at a time is multitasking. Multitasking actually hides work sitting in queue (waiting). Work that is sitting slows the process of delivery. Rose’s role is to help unblock tasks and to find and break dependencies between tasks. Dependencies are blockages waiting to happen. Visualization is perhaps one of the most basic techniques in Agile and lean. When work is visualized teams can self-organize and self-manage. The value of visualizing work is huge; however, the urgency around the concept has waned as tools have replaced card walls and paper Kanban board which reduces the effectiveness of the technique.
The chapter’s action culminates with Jon introducing Rose to Liz. Liz builds on visualization by reinforcing the ideas behind real options. Liz points out that each option has three possible solutions. Using options as the decision process is a tool to manage uncertainty. The three possible solutions are:
- Postpone the decision and collect more information.
- Choose the option that’s easiest to change.
- Invest in a different approach that allows change to be easier.
There is no one, best solution. Projects use all three solutions to maximize value based on the context. Visualization provides a platform for the team to know where work is in the development life cycle. The use of options to evaluate generate alternate paths for a decision reduces uncertainty. The combination of these tools gives the project the power to change direction quickly to maximize the value it can deliver. It is important that decisions are made consciously, which means examining each decision with an eye to which option you intend to exercise.
In order to use the new tools, Susan realizes she needs a coach. Liz points to a person she knows that happens to be walking the table by as the type of person that she should hire. It turns out to be Gary, one the leads currently on her team. Gary agrees to act as Rose’s real options coach.
Chapter 3 ends with Rose writing to Susan and a blog entry from Liz. The letter introduces the concept of technical debt using the metaphor of a group of roommates that let dishes build up in a dirty kitchen. After a time, it becomes so hard to clean the kitchen that no one even makes the effort. Paying down technical debt (refactoring) is important to increase efficiency and makes it easier to respond quickly to change. Liz’s blog discusses the value of change and reprioritization of the backlog by the customer (or product owner). The ability to periodically change and reprioritize the backlog is a form of an option. Agile and lean techniques provide a set of tools so the team works on the top priorities, delivers functionality that generates feedback and allows the customer to exercises his/her options by reprioritizing based on functional code.