If you work in high tech, then chances are you follow some sort of product life cycle process — it’s the structure imposed on the development of a software product from the moment the idea materializes until the product must be retired. The question is: how good is the product life cycle process that your company uses? Should you optimize your product life cycle process to be more effective?
If you answered ‘Yes’ to any of those questions, it sounds like your product lifecycle could use an update.
A product life cycle’s (or PLC for short) main goal is to ensure that the right people are working on the right projects at the right time. It identifies what tasks need to be completed in order to bring a product to market, as well as who is accountable for each task, who is responsible for approving each task/deliverable, at what point in the cycle each tasks needs to be completed, and so on. You can think of each product as having a point of conception (defining the idea of the product), then moving through an elaboration period (defining the specifics of the product) before going through the actual construction of the product (development), and then being released. And it doesn’t end there — a good product life cycle also accounts for the maintenance of that product (refining and adding additional features), measuring its success or failure, and eventually determining an “end of life” plan for it when it becomes technologically unsustainable, or irrelevant to the market or business.
While there are a plethora of process styles to choose from (each with their own varied approaches and timelines to essentially the same set of tasks or activities that need to take place), the two basic frameworks are Waterfall and Iterative (most commonly referred to as “Agile”).
According to Wikipedia, “the waterfall model is a sequential design process, often used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation, and Maintenance.” I couldn’t have said it better myself :). Basically, the Waterfall model’s aim is to plan a product 100% before handing over a “how to” guide of fully completed functional specifications to Development to build it. The spirit of this concept is to crystalize each team member’s efforts within a phase — the Business folk huddle up from Conception to Analysis, then hand it over to the Design team who create the mockups per their requirements, then they hand everything over the fence to Development for Construction, Testing, and Implementation. Waterfall models generally work best for cultures that demand order and structure.
“Agile projects are paintings, not photographs.” – Unknown
“Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change,” (thanks again, Wikipedia!). Basically, Agile methodologies are all about focusing on getting features out into the wild as quickly as possible, and then learning from metrics and customer feedback. It encourages internal feedback from all departments, embraces speed and change, and eschews thorough documentation. Agile methodologies work best in cultures that respond well to change.
Which product life cycle process is “the best”? The question really should be, which product life cycle process is best for your company. My next post will address why a company should invest in implementing a tailor-made product lifecycle process; and future posts will detail how to determine which product life cycle process is right for your company (SPOILER ALERT: it’ll most likely be a mix of the frameworks above), and how to properly roll it out to the company.