Monday, July 7, 2008

Is Your Software Ready for Release?

Determining when software is ready for release is one of the hardest parts of product development. Everyone involved has different criteria for “good enough”:
Product management wants the product to satisfy minimum market expectations in a timely manner.
Program management wants the product to meet minimum design specifications.
Developers want the product to compile and run with as few bugs as possible.
Frequently, when we think about software testing, we stop at what the Developers want. If it compiles, runs, and the bug database is empty, then we ship it. However, the reality of product development is that the bug database is rarely empty and product management must make choices about what features live, die, and must be fixed in version 2.0.
Developing good release specifications is always a challenge, but here are a few recommendations:

1. Define release success and goals in market terms.
Identify what the market actually wants and codify all release specifications and project goals in those terms. Everyone will be working from the same playbook, so this makes it easy to make choices at a later date.
2. Communicate your goals to the entire development team.
Whether you are using agile, waterfall, or something in between, everyone should have line of sight to what the market wants. Even the most junior developer should understand why their code matters to the customer.
3. Prioritize development based on market expectations.
Do the most important parts first. Everyone wants to jump to the interesting parts of the project, but the customer’s idea of interesting may be something else entirely. Making sure valuable work gets done earlier means that the valuable parts can be tested and validated longer and better. If the project hits a snag, it may be possible to release a smaller version that still satisfies some market needs.
4. Make sure QA is on board
Don’t leave your QA team in the dark. They need to test according to the same goals as everyone else, and their bug reports should be prioritized according to the same expectations as everyone else.

Validating with Good Criteria
When validation is on-board with good criteria, then it’s possible for everyone else in the product development team to decide when a product is ready and when it’s not. Test results are clearly aligned with product expectations which are clearly aligned with market demand. The outcome is a product that ships on time with the features and stability the market wants.
The uTest platform features a Maturity Indicator that, when combined with good market based specifications, can readily help product development teams know when a product is really ready for release. Because our community is so large and varied, it’s possible to quickly gather a very informed consensus on the readiness of a product; something that is more difficult to gain in a traditional testing organization. Based on the test cases and user guide, the community constantly evaluates the readiness of a product, allowing a testing manager to tell at a glance how close their release is to good enough.
Having good market driven goals is the first step to successful QA, and any software company can benefit from that alone. Bringing those goals to a testing community like uTest can make assessing release readiness even easier, and that’s good for everyone

No comments: