We communicate our progress honestly and openly with our customers.
We do not conceal or embellish. —from the 8th Light Principles of Productive Partnerships
My first customer engagement at 8th Light was different than any previous consulting relationship in which I had participated. We were determined to take our fair share of the risk of software development. We did this with a pay-per-story arrangement.
If we did not deliver a story that we had committed to complete within an iteration, we did not charge the client for that story. Despite the financial ramifications, I occasionally had to stand up in front of the product owner during the demo portion of our weekly iteration meeting, and declare that we could not ask them to accept a story as complete. For a small company just starting out, the financial impact of doing this could have been severe. We considered the alternative to be worse.
Trust is the cornerstone of great relationships. At 8th Light, we strive to maintain great relationships with our clients. As software consultants, building and maintaining trust is vitally important. Deception can be either deliberate untruths or omitting a known truth. Both are harmful. The intent of a deception does not matter. If anyone were to realize they were being deceived, we would lose their trust. By being consistently open and honest, we avoid the trap of deception.
By working in short, week-long iterations, we enable frequent and consistent communication. It only takes about 15 minutes per day to get on the same page with the rest of the development team and our client. We strongly encourage the project stakeholder to be present for this short amount of time everyday. This is when we bring up potential issues with stories that are in progress. Nobody likes being surprised. At the first sign of a story being in danger of being missed within an iteration, we communicate this to the whole team, including our client. Oftentimes, together we can find a creative solution to the problem. If that does not happen, the client can decide on mitigation strategies to minimize the consequences of a delayed story. Whether or not we can find a solution, it is important that this process happens in the open.
Every week, we demo the progress of the system to our client. We rehearse and polish the demo since this is our chance to show off what we accomplished the previous week. However, if a story is not finished, we do not ask our client to accept it. Many of our projects only bill for completed stories. Not finishing a story impacts our company financially. Despite that impact, we recognize that the most important thing is to maintain the trust that we have with our clients. If we were to risk losing that trust for a short-term revenue gain, it would be against our best interests as a company. Building and maintaining the trust of a client is more important than getting paid for a story that is not yet complete.
Technical Debt Report
Sometimes we need a higher-level view of either a project or a mature system that may be unhealthy. In these situations, we provide a weekly or a bi-weekly report to assess their current state. We identify risks, we take measurements, and we report overall progress. The path of developing software is almost never a straight line. This type of feedback provides transparency into that development path. We may find that an initial design was wrong, so we propose and implement a better design. We want to provide our client with an accurate picture of the current state of the work we provide to them.
In each of these avenues, we are clear and honest. It is only through mutual trust that we can build truly great software with our clients.