Timing is Everything for Software Development
Home / Timing is Everything for Software Development
It is often said that time flows like a river. Perhaps this image is based on the notion that time can only move forward and thus once an experience occurs, it cannot be repeated, such as standing in a river and the water (events) passes us only once. Or perhaps it is the confluence of events, which like tributaries to a river merge together to collectively build a set of experiences. Or, maybe it’s that soft, melodic tune from The Alan Parson’s Project that seems to evoke the notion that events move forward in a linear fashion until they merge together to a final event. Either way, there is a correlation to software development that in some ways mimics a river.
Timing is everything for software development and most commercial software companies in the mailing industry have very well defined processes to develop and deliver new technology to the market. While there are many different approaches to software development, such as waterfall, incremental, spiral, Rapid Application Development (RAD), and many others, they all strive to achieve the same goal – what is the market problem and how can a solution be delivered to the market in the shortest amount of time to fulfill the customer’s ultimate goal?
There are often four essential steps in software development: Concept Definition, Implementation, Validation, and Launch. Like the river analogy for time, the software evolution lifecycle also flows forward progressing through a series of locks, also known as stage gates, where progress is checked to ensure the final results match market demands.
The software evolution lifecycle for commercial mailing applications typically begins with understanding a problem in the market. This problem can be regulatory driven, such as the need to support new postage rates, customer requests, or an opportunity to leverage new technology to improve mail preparation and reduce postage or production costs. In a market driven company, Product Management is often responsible for uncovering these new opportunities during the Concept Definition phase.
Concept Definition can take weeks or months to accomplish and arguably is the most crucial step in the entire process. It is here that a market requirements document (MRD) is created, which forms the blueprint and justification of the entire release. Prospect visits, USPS posted documentation, and customer enhancement requests are just some of the sources Product Management leverages to create an effective requirements document. Unfortunately, the USPS often doesn’t post sufficiently detailed information about how rates will change or the impact a Rate Case will have on sortation algorithms early enough. It cannot be overstated how essential it is for the USPS and the PRC to provide sufficient time for software companies to understand the impact a Rate Case will have on existing software.
Once an MRD is completed, it is time to “kick off” the Implementation phase and start coding software. Again, there are many different approaches here that combine linear, iterative, and agile development methodologies. Since there are often multiple operating systems being used in the mailing industry (including mainframe, LINUX, UNIX, Windows, etc.), development teams will try to maintain one common code-base and simply port the application (often termed as compile or build) onto each supported platform. It is also during this phase that USPS certifications such as CASS and PAVE are conducted to ensure compliance with the USPS Domestic Mail Manual.
Once the software is compiled, it is ready to be tested in the Validation phase. This phase is led by the Quality Assurance Team, though they have been equally busy since the Concept Definition phase. Once the MRD is completed, the QA team begins forming test cases to evaluate the software’s efficacy. Having real-world examples and preferably actual customer data helps ensure successfully testing. For some software companies, a best test may be used to determine software efficacy; especially if it is a major release or the customer’s data is too sensitive to leave their facility.
If the Quality Assurance Team signs off on the release, it is now ready for Launch, where the solution is packaged and distributed to the market. Whereas the other steps in the overall process can vary considerably, Launch is probably the most predictable. Typical Launch times can be one to two weeks depending on the distribution method for the software (physical media versus download), installation requirements, and finalization of any printed documentation.
If we sum up all the moving parts, we find that the entire process can easily take several months or more to successfully release a software solution. With the USPS and the PRC now operating under the Postal Accountability and Enhancement Act, there may be as little as 45 days for software developers to fully implement a regulatory driven solution. Quite simply, the mailing industry needs more time if we are to ensure a mutually successful launch of essential software solutions.
This article was originally published in the August 2010 edition of Mailing Systems Technology.