Blog edited by Tarun Malaviya, CEO and Co-Founder, Mithi Software
Live interaction in our company between the Product Manager and the Engg head
Product Manager: I gather that the release has slipped by about 3 weeks.
Engg Head: Yes, we are facing some challenges ensuring scalability of the connectors in the new chat component
Product Manager: So whats the approach your team is taking to resolve this
Engg Head: We are working on fine tuning the component to deliver better performance…but also we are looking for a more scalable connector components to blast this bottleneck.
Product Manager: Good. So by when do you think this will get resolved?
Engg Head: We have already evaluated a replacement for the chat connector component…but we still need to test its scalability by putting it through our load and stress testing system. I believe we might still be a couple of weeks from code closure.
Product Manager: Hmm…so I guess we have some time to squeeze in a few more minor improvements into the web client. Some of these improvements are simple and wouldn’t take too long. In any case, the teams are separate, so I guess it shouldn’t matter…
Engg Head: It matters. During a release, I need to consolidate the entire teams effort towards reviews, testing, documentation and overall closure. Even though the release is held up due a open issue in the chat backend, we need to start freezing the code on all the other modules and applications and free up those teams to assist in the wrap up. Any change at this stage, no matter how small it appears, would re-open that module/component and would mean another round of regressions and reviews to close it. So can we please close the webclient release now!!! ….
During every product release as we near the schedule dates for closure, debates such as these become more frequent. The Product Management team, whose job is to produce highly usable products that break new grounds in delivering value to customers and the Engineering Team, whose job it is to ensure quality in all aspects of the product like reliability, scalability, usability, serviceability and functionality, seem to be pulling in opposite directions with even greater intensity. We see this a normal ‘healthy’ stress between the teams. But we see this as the necessary to ensure that we deliver both on the value and quality of the product.
Each team is endeavoring to do its job well.
The product management team is more aligned to the market needs and competition landscape and is aware of the impact of delays in bringing certain features to the market. Its job is to squeeze in the most it can within a release cycle and gain a head start in the market.
The Engg team is tasked with ensuring that quality, performance, scalability and maintainability of the system is continuously improving with every release. It’s worst nightmare is a slippage in quality below the benchmarks established by previous releases.
While the product management team wants the kite to soar higher, the engg team wants to ensures that the thread holding the kite is secured firmly.
To ensure the we keep close to the customers needs, Mithi follows an evolutionary delivery model for software development. But this development comes with its own challenges – on one hand it runs the risks of features drifts and on the other a degeneration of the system architecture.
After years of working with this model, we have found that what works best is to keep tight schedules. Schedule constraints not only help to reign in feature drifts but also force you to innovate on the design, engineering and technology choices. Also to ensure that the tighter schedules are met (without compromise on quality) you need to keep the architecture as clean and malleable as possible.
CLOSING a release at a fixed schedule, is like clearing up the table to make space to take up the work for the next release. It creates the space into which new ideas, design and innovation can easily flow in. Freeing up resources to move to where it is most needed. Closing a release ensures that resources and ideas do not stagnate and a continuous flow of innovation and improvements is maintained.
A solid product release, has an “additive” effect on the product capability and moves the company one notch higher and locks it there.
It becomes a new normal.