Re-use through component-based development is a prudent way of managing complex software development activities, especially when there are significant software inter-dependencies – such as in the embedded systems, firmware markets, or in the financial services realm where there is a growing reliance on web services. The main benefits of component-based development are:
- Lower cost of development and shorter delivery schedules
- Better reliability and reduced maintenance costs
- Heightened developer productivity gives staff more efficient use of their time as they are not constantly resolving the same technical problems
However, re-use initiatives are not without their management challenges. Some common questions arise:
- How do you identify the components and versions of components for a given release?
- Who owns the software component? Who owns the testing of that component?
- How do you effectively share and use different instances of a component across several development projects while maintaining the original component?
- How do you ensure that changes made to a component do not inadvertently affect other teams who reference it?
- How do you apply a change across all instances of a component?
With the rise in software re-use practices and continued adoption of Web Services technologies, development and testing organizations need reliable ways to manage the development, assembly and ongoing use of software components.
Properly managed, re-use initiatives can lead to:
- More rapid delivery of functionality
- Reduced development and testing costs which contribute to shorter project cycles
- Better software reliability and reduced maintenance costs resulting in enhanced customer and end-user satisfaction.
PTC's enterprise application lifecycle management solution offers an innovative, sophisticated and logical approach for managing software re-use through a combined set of functionality, including project sharing, checkpointing and process control.