Reduce Waste During Software Development by Increasing Communication
Posted by robkraft on January 16, 2012
Lean software development focuses on reducing waste. One source of waste is time spent implementing a difficult solution when the product owner would have been satisfied with a simpler solution. The likelihood that this source of waste occurs increases as the interactions between developer and product owner decreases. When the environment discourages frequent communication between product owner and developer, and the developer discovers some minor features will be more difficult than expected, the developer is likely to attempt to implement the solution as the product owner requested it. But when the environment encourages frequent communication, the developer is more likely to let the product owner know that a specific feature is more difficult than anticipated, but that the same feature goals could probably be achieved with an alternative implementation. This allows the product owner to decide if the alternative implementation is sufficient, or if he wants to pay the extra time to have the feature as originally envisioned. A few of the factors that can contribute to an environment that discourages developer to product owner communication include:
- Physical distance. For several reasons, physical distance discourages communication. Developers don’t want to interrupt the product owner, and it is difficult to know if the product owner is currently in a meeting, or involved in other activities when the product owner is not visible.
- Personal perception. Developers don’t want the product owner to think they are unable to make decisions themselves, and may be concerned the product owner will gain that impression if the developer is frequently asking for product owner input.
- Unfriendly product owners. Developers quickly sense when product owners are getting annoyed with questions. Once a developer feels he has used his allowance of goodwill, he is more likely to just attempt to implement difficult solutions per the original spec rather than suggest an alternative.
- Introverted developers. Some developers simply prefer to minimize interactions with people they are not extremely comfortable with. When faced with the choice of interacting with a person they aren’t comfortable with, or trying to make the software work as originally requested, they frequently choose the latter.
It does not matter whether you develop software using Lean (Kanban), Agile, or Waterfall. If you can increase communication between the product owners and developers, you can probably reduce or eliminate this source of waste. Product owners pay the price of this waste, and they are also best positioned to reduce the problems I mentioned above. Product owners, at least the people that make the detailed decisions about how the software should work, should strive to make themselves constantly accessible to software developers. When a developer comes with a question, the product owner should treat the developer as a welcome interruption, not as an inconvenience. Product owners can also improve the relationship with the developer by engaging with the developers on social, non-work, levels. This fosters a growth in trust between product owners and developers and increases the odds that developers will come to the product owner when the potential exists to eliminate waste.