JUL-SEP 2007 Vol 3 Issue14

Brainwave                                                 

 

Product Development life Cycle

By Rohit Bansal
Software Engineer, RadiantInfo, Banglore

Introduction

World is moving towards products as they offers win-win advantages to all stake-holders. A major consideration is the availability of this product that suits the requirements.

Product cost on distribution over large number of end-users offers more functionality at less cost. End users do not require investing upfront money and time to see the results. According to Gartner survey, only 32% projects get completed successfully within cost and time with desired quality. Other advantages of a product are lower cost of acquisition, improved quality, increased innovation, faster time to adopt, better after sales support system, scalability, interoperability and openness, lesser risk and definitive ROI calculations.

Refined thought process that builds up the product and distilled over customer feedback experiences offers value to new acquiring customers. Risk is mitigated and variable costs become fixed. Gap analysis is the key to risk management. Instead of re-inventing the wheel every time, best practices come with the products. Learning curve is sharp upwards without much research efforts.

This article is intended to address the gap that business companies may be looking for an appropriate development partner who understands product development life cycle (PDLC), provides sustainable support for a long term period and evolve it with market reaction. Needless to say PDLC has some inherent differentiations from that of SDLC and these are further highlighted in this article.

Challenges

How PDLC is different to SDLC lifecycle?

Inherent difference lies in development cycle with extra commitment from enlarged set of teams.

Can the same team manage both the life cycle management?

Yes and No. Yes as two phases of the development cycle have some commonality i.e. Development and testing. This is also sometimes the issue that causes confusion for not having any differences. Definitely if differentiates due to innumerable number of reasons mentioned below.

Should we choose a development company that has no PDLC management experience?

Certainly not! This is to invite more trouble than solving some. In-tune mindset with long term commitment and acquired domain knowledge and technology process understanding are the key.

Why commitment from the development partner is expected more in PDLC?

In the iterative approach project has very long end date with more frequent and major milestones. Changing partner in between is to invite uncertainly in uniform approach, increased cost of training and additional cost budgeting.

Product development life cycle (PDLC) Vs Software Development Life Cycle (SDLC)

Product Visualization

Exploring function, design and technology aspects of the product ideas to develop product definitions and prototypes

In PDLC, this phase is of utmost importance with innovation, research, market survey, gap analysis, business feasibility to be validated before visualization can concretize. Scope of work is more fluid and flexible. Necessity governs the scope and comes in iterations based on usage, experience and expectations out of the product which has been validated few many times. Any error in hypothesis is costly and any corrective actions subsequently may not provide the fillip needed for the product marketing. Approach is generally visualizing a broad whole to take up a focused small part at a time in each of the iterations. It has high risk of failure over SDLC and thus is the returns on high acceptance. SDLC scope of work comes largely fixed.

Very nature of a product requires it to be of somewhat different than others and offers solution to an identified gap. Proof of concept mitigates the risk of developing a new technology even before fully functional product is ready. Necessary corrections can be made to the product design based on the feedback. This process can be called child-iteration which flows within a process but has an overall impact on the product design.

Product Design

Creating Functional specifications, architecture and design based on product definitions

It is imperative to have detailed documentation for the product design without which future teams on subsequent iterations shall have to invest heavily without being sure of the direction. SDLC do require documentation but extant and quality of documentation has larger risk in PDLC.

Interface teams in a PDLC can be many with opportunity group, market forces, architecture design, development, and marketing & research teams while SDLC can live with the middle two. Collaboration and communication are critical to driving competitive advantage. Creating efficient product development teams facilitate faster decisions.

A pattern is generally seen, though not corroborated, most product design concept originates from one /two persons and that becomes the basis of product development.

IT Companies made product selection either by identifying a need and acquiring one/two person company or by instituting a SBU to look after that need.

Product Development

Software development plan & execution of software coding, integration, testing and product releases derived from a product design

Basic engineering principles of development are same in both these modes. Product development after initial development is more re-engineering than development. Initial code, dependency, linkages, impact analysis requires evaluation before making any changes. Proper documented code, best coding conventions, adhering to technologies standards are more felt in a product development on a re-visit.

Product design code requires more object oriented so as to be re-used within the same project / product or in another. Making changes in the logic at a later stage becomes easy when modules have been made for specialist works. Repetitive changes for the same change could be costly and un-reliable. Web services, class libraries, usage of fast languages are preferred over fast paced development tools. Language e.g. visual basic is less used in product environment and preference is generally given to C++, Core Java and assembly.

Development model is spiral to that of waterfall in project development.

Testing and Quality Assurance

Comprehensive testing and quality assurance of software products based on test cases derived from product specification and design

Mostly it is recursive testing on product components. Integration testing is carried out when its impact is likely to be felt. Performance tuning is of paramount importance on products usage or rejection. Testing for a product is usually automated so that re-usability of the same test conditions can be simulated in future without much efforts and costs. Testing conditions are more exhaustive and considers neo-geographic ranges with multi-lingual and multi-functional cross section of people. Beta test runs across dedicated and volunteered group helps reducing testing costs without compromising on the quality.

Integration testing has wider and complex environmental issues to test as well. Multiple environments involve handshaking complexity, access authentications, security holes and alike.

Utmost importance is on regression testing where introduction of a small change should not cause a defect to appear. Impact analysis and Change Management process has to be strong.

Product Deployment

Planning and preparing deployment at client location includes environment preparation, user training, setup, deployment testing and monitoring

Client locations are more heterogeneous than in a project scenario, where we know for sure what connectivity and compatibility options are. Project can afford one time installation by the development team. Product needs simpler installation and replication. Implemented at one location should subsequently be automated without redoing the steps involved manually. Documentation of involved steps is of immense importance without which it is difficult to emulate.

Product Lifecycle Management

Ongoing support enhancements, testing and maintenance of software products after deployment

For a project, deployment may be the last stage. This extended stage for a product provides for extra features that go in making users more receptive to the product. Field sample feedback helps in correcting the bugs. Market acceptance (or otherwise) puts pressure on including alterations in product design and thus iteration of another round of product development and validation.

Any changes along the way may require returning to previous steps. This is why the first few steps are the most critical. Changes in later steps may require extensive redesign and testing, basically throwing away work already done.

Last but not the least , product development iteration has to go hand in hand with multi customer situation where customization is going on parallel  and significant changes has to feed back in future release of the product.

Pitfalls

One of the pitfalls of a product development is the loose grip on the time lines. Time pressure from client group is often less and constant seeping of scope changes de-rails the project management. A strong and disciplined project management with large mandate from all the stake holder and clear vision of the delivery requirements is a must. Introduction of later corrections (features) into advanced project stages can be fatal for cost and quality.

Disclaimer : The views expressed in the articles are author’s own. B’Cognizance or IIITA is not liable for any objections arising out of the same. The matter here is solely for academic use only.

Google
WWW www.mba.iiita.ac.in