Developing a software product differs significantly from developing an IT project-based application. Although many software vendors know this, only a few consciously nurture and look for specific skill-sets and tailor processes to develop software products.
When building products, some of the issues that need to be addressed range from whether the product being designed reflects market requirements and is robust, maintainable and future-proof. Engineers also need to verify if the product is of industrial-strength and quality and meets market demands.
Object orientation, use of frameworks and product lines with significant component re-use are engineering principles adapted by all disciplines of software engineering. However, when developing products, adhering to and adopting these principles become of vital importance and are needed at their highest degree of application. Hence, product engineers have to be conscious of this fact and geared to deliver accordingly.
Processes for product development also vary vastly from generic application development. Dealing with product roadmaps, which includes devoting time for maintenance of older product versions; catering to frequently changing new product requirements based on market needs; and managing scope without compromising time-to-market or budgeted costs mean that while the development process needs to be meticulous, it must also have enough flexibility built in to cater to changing needs.
Essentially, Product engineering goes beyond application development and requires solid engineering expertise to get a well-architected, high quality and robust product with sufficiently flexible processes to accommodate evolving requirements.
Recognizing that the various aspects of engineering a product differ greatly from traditional software engineering, Aspire Systems has coined the term “Producteering” to refer to the discipline of “Product engineering”.