Software Product Lifecycle Management
By C. Chadwick on Mar 11, 2013
Marc Charmetant - Principal Consultant, Enterprise PLM Solutions EMEA
Why Software Product Lifecycle Management?
When talking about Software management, it is often said that it is a high risk scheduling activity. Why? Well, software management combines several specifics making it difficult:
- The release plans are at the program level but execution is at the feature or at the sprint level.
- Software is often embedded into hardware and the maturity of the hardware obviously impacts the embedded software.
- Changes are constant and overlapping. Scope changes, content changes, schedule changes generate unplanned and iterative processes that can overlap one another.
Is Software Management the Same as Source Code Control?
Very often software management is reduced to source code control. Most companies have very good code source code control and test management tools, but this is not enough as software management requires more than source code control and test.
These tools leave very important questions open such as "Is everyone aware of the scope, content and schedule changes?", "Are the programmers working on the right specifications?", "Are the system test cases in alignment with the programmer’s code and requirements?", and "It is all about the alignment of product content, schedule and quality."
Managing the Software Product Lifecycle in PLM
We can consider two main cases in the software development lifecycle:
- Software that is developed independent of hardware
- Software as an integral part of a hardware
In the two cases, the software is driven by a release date defined by market and customer requirements. Software can be managed in PLM as PLM can support the BOM beyond only the hardware BOM, providing a full information repository for the hardware and software. Enterprise PLM also provides a global security model and supports the following four important processes for software development:
- Schedule Management
- Content Management
- Change Management
- Quality Management
A good PLM system includes a schedule management system managing the complex schedule of multiple interdependent projects. It will be used to manage the release scoping and execution, the feature /sprint process execution, the build process/test execution, the approval and gate management and last but not least, the customer commitments. It could also manage the alignment with the hardware schedule for the embedded software case
Content definition should be done with the use of a source code control system. Source code control is an authoring tool like an ECAD or MCAD system, a highly specialized tool with integration to build tools and automated test systems.
A PLM tool is a software IP management system providing enterprise visibility and compatibility to software. It provides software configuration control as well as software IP tracking and audit.
Change management is the core of SPLM. It will allow detailed control of :
- Specification changes
- Schedule changes
- Test plan changes
- Scope plan changes
- Requirements changes
- Resources changes
A PLM system includes a closed loop quality system allowing integrated product testing and issue tracking, with full visibility given to stakeholders of the process. It allows full content revision and version alignment on requirements, test plans, scope and specifications. Driven by deliverables the formal gate review and approvals will guarantee completeness. Audits can also be managed directly in the PLM tool for customer certifications or regulatory audits.