Saturday, April 30, 2016

Agile Transformation (Part 1) - Understanding Your Investors

In this miniseries I want to share my observations about the organizational challenges with Agile Transformation. The information I use originates from my personal experience as well as from anecdotes and stories I collect from my friends and colleagues working in the software industry.

Any Agile Transformation is soner or later bound by the organizational capacity to accept change, and this includes executive leadership. At the end of the day, no matter how far the product development team is capable of going in becoming lean and Agile, they need full support and understanding of their investors, including customers and executives.

To illustrate, I want to use the unrelated at first glance story about the Japanese/American cultural differences. I drafted and never published this post more than a year ago, finding it interesting from the cultural perspective point of view. As I re-read it now I was somewhat surprised at how natural the story read if I were to replace the "American Vendor" below with a software development organisation striving to adopt Agile and similarly the "Japanese Customer" with their corresponding corporate level executives.

Situation: An American Vendor working on addressing a Japanese Customer’s request. Part of the disconnect is due to some cultural peculiarities that need to be understood by the Vendor.
First, the Customer fully expects to be able to provide input into the Plan. Not only the bottom-line value to the Customer has to be clearly articulated, the Vendor needs to sell the Customer on each item in the Plan so they understand how it maps to their concerns.  
Second, from the Customer’s perspective, the target completion dates should be thoroughly vetted and accounted for all possible delays. While an American might think this is unrealistic or overly conservative, from a Japanese perspective this is normal. From that perspective, it can be seen why multiple revisions to the Plan dates become problematic – the Vendor loses credibility with regards to its forecasting ability. This also helps understand why the Japanese Customer sometimes finds it hard to believe Vendor's explanation of the reason for a delay. The Customer believes the Vendor should have predicted the outcome and mitigated the risk before the Plan was committed (unless the Vendor is hiding the real reason for the delay). Again, from an American perspective this is unfathomable, but it helps to see things from the Japanese Customer’s perspective. 
Third, Japanese companies need frequent updates and hand-holding. Even if no progress is made, they need to be updated by the Vendor, with explanations why what is being done matters to them. The level of updates that Japanese companies see as normal may be considered an overkill to an American. Depending on the situation it is advisable to provide a weekly or even daily status update that simply states what has been accomplished and what is planned for the coming period. This can go a long way towards maintaining good relations. 
Fourth, the phrase “TBD” is not acceptable to the Customer. Culturally, Japanese are not nearly as comfortable with uncertainty as Americans. We see TBD as a necessary component of planning, but the Customer sees it as a lack of focus, investigation, and drive. For this reason, it is best to use TBD sparingly, and only if accompanied with an explanation of why it is undetermined, and when/how it will be determined. 
Bottom line, when helping Japanese Customers we need to make sure it is crystal clear what problem we’re trying to solve and exactly why that particular action item has value to them. Also, if there is some uncertainty, or if something will take more than a week to complete, or if there were multiple revisions to the target date, we need to thoroughly explain why.
What's my point? To be successful every Agile Team needs to understand the psychology of their investors, or their executive management.

Wednesday, April 6, 2016

Do you respect the backlog?

We always strive to be more effective in how we build software for our customers, and today I was compelled to reach out with the following to my scrum teams:

The backlog ranking order is in place for a reason. Traditional waterfall software development projects have for years struggled to meet planned quality, schedule and content targets. The Agile software development recognizes the unique nature of uncertainty associated with software development, and gives us an approach to improve the governance and predictability for shipping quality software while building the content that target customers want. We do this by 
  • QA: building quality targets into our definition of done criteria and acceptance criteria. This way any work that fails to meet DOD or acceptance criteria is not accepted and is not shipped. 
  • Schedule: fixing the timeline. Sprint duration is fixed. Anything that is not accepted is not part of a sprint delivery and is not included in the shippable product (we can choose when we ship the release, but only after one of the sprints). 
  • Content: we use backlog ranking to control what gets built as part of the release. When we run out of time, ranking ensures that we had enough time to build what we wanted to include in the shippable product and that we didn’t instead use that time to do something less desirable.

Generally speaking you should not begin work on any defect or a user story if you are also the owner of another open defect or an unfinished user story that is/are ranked higher. If you want to work on this because you disagree with the backlog ranking order, this is material and it is important that other people working on the release know; so just bring it up in our daily standup meeting, or reach out to me or your scrum master (in person, Flowdock, Skype, email, call, SMS). We can quickly discuss this and come to a shared agreement which can then be communicated and logged (e.g. in the Rally Discussion tab of the affected work item).
This also applies to any new work items popping up in our backlogs in the middle of sprints, i.e. items that we have not explicitly planned for during Sprint Planning sessions. If you open a new defect during the sprint or move a story or a defect from future sprints, please communicate/log this (e.g. by adding the explanation in the corresponding work item’s Discussion tab in Rally). Again, in general, the work on these work items should only begin when all the items planned for the current sprint are either completed or the work on them is blocked. If the unplanned item is critical for the sprint progress, we should discuss and if deemed necessary rank it higher on the backlog and (again) communicate/log our decision.

Although we are dealing with high uncertainty associated with complex software development, our business needs us to be more predictable in our ability to ship the working product. This is really important for our company's ability to operate as a well-run successful enterprise. Improving the following will help us get better 
  • Transparency and communication
  • The discipline and consistency in how we allocate our time during the sprints 


Monday, February 29, 2016

What makes top performing teams click

I came across this great New York Times article called "What Google Learned From Its Quest to Build the Perfect Team", and since the topic is near and dear to me I am taking time to share my short interpretation of this knowledge.

This research points out that best performing teams typically excel in what psychology researchers refer to "conversational turn-taking" and "average social sensitivity" behavioral norms - both relating to psychological safety defined by the Harvard Business School professor Amy Edmondson as 

"a sense of confidence that the team will not embarrass, reject or punish someone for speaking up,.. It describes a team climate characterized by interpersonal trust and mutual respect in which people are comfortable being themselves."