On a recent trip to Europe, I experienced something unique on my flights. For the first time, I can remember, the flight crew called out a specific product during their announcement… make sure you stow your bags, put your seat in the upright position and completely turn off your Samsung Galaxy Note 7 phone – in multiple languages!
It would be easy to chalk this up to bad luck. Some might even say the product was rushed to market too quickly in order to remain competitive.
It is understandable that products can become complicated over time. But, there are ways to minimize the potential for things to go wrong.
Ordering the Product Plan
Too many plans these days are more concerned with hitting targets than delivering on quality. Agile tries to address this by allowing the business to prioritize the backlog of features. If the deadline is not moveable, then the least important features (as seen through the eyes of the business) will fall out of the project.
The old way of planning put the most difficult and complex elements first to allow time to mitigate unforeseen challenges. Although this seems logical, the product’s most favorable and visual features are rarely related to the complicated parts. Thus, problems have a way of showing up at the end of projects.
When considering priorities, it is critical to have the engineers or technicians at the table. There needs to be a balance in addressing both marketable features for the users and big challenges.
Always Production Ready
Too often the heavy lifting of testing a product happens in the final stages before delivery. Milestones or iterations should break down a project. At the end of each iteration should be a deliverable worthy of the final production product. This is possible even if some features seem irrelevant or of little use in their current form.
Each iteration should include a thorough testing of the deliverable. The priorities list should include any issues discovered during testing instead of holding them off to the side until the end. It is easiest to address issues while they are fresh in everybody’s minds.
And, use automation for testing as much as possible. With each successive iteration, it is important to perform the previous tests again to make sure nothing previously released broke. Without automation, this process becomes onerous as the amount of testing grows with each cycle.
It is not possible to prepare for every contingency. But, when something does go wrong it is important to respond quickly. If the plan is created correctly and automated testing is available, it is possible to make changes, test the changes, and redistribute a product update.
People can be somewhat forgiving of mistakes and small inconveniences. But nothing will kill a company’s ability to recover from an incident like a slow resolution.
Avoid being the next product made famous (or infamous) by a flight crew – in any language!