Title: Hot topics in Evolutionary Software Development
1Hot topics in Evolutionary Software Development
National Research Council Canada Institute
for Information Technology
Conseil national de recherches Canada Institut
de technologie de linformation
- W. Morven Gentleman
- Institute for Information Technology
- Ottawa, ON
- Morven.Gentleman_at_NRC.CA
2What is Evolutionary Software Development?
- Successful software must evolve
- To address new requirements
- To take advantage of new technology
- To meet new expectations.
- Conventionally each update is treated as an
isolated project with fixed specifications
3What is Evolutionary Software Development?
- Evolutionary software development recognizes that
planning for the whole lifetime, with all its
changes, can reduce life cycle costs and
accelerate delivery of new functionality
41. Choices for Process Software Architecture
- What architectures preserve investment?
- What architectures facilitate evolution?
- What architectures inhibit evolution?
- What processes avoid redundancy?
- What processes facilitate evolution?
- What processes inhibit evolution?
- How would you substantiate these claims?
52. Incremental Delivery
- Is the time scale nightly build?
- Is the time scale product release?
- How do you decide what to defer?
- How does deferred functionality appear?
- What provision is made for upgrades?
63. Concurrent Development of Successive Releases
- When to initiate development on new release?
- Same team or different teams?
- How to (retro)fit changes to multiple releases?
- How to represent ideas for future releases?
74. Coping with Platform Evolution
- Both hardware and software platforms?
- Anticipated and unexpected evolution?
- Exploit generated code and other indirection?
- Other tools?
85. Coping withProcess Change
- Change to mandated process for use?
- If process changes, how must history change?
- Can history with old process aid new process?
96. Data Structure Format Evolution
- Changes in
- Input?
- Output?
- Database?
- Control actions?
- Conversion tools?
107. Interoperability
- Interoperability supported at all levels
- coexistence with other software?
- backward and forward compatibility?
- explicit complementary competitive products?
- Recognize that software used in conjunction with
this software evolves too?
118. Scaffolding
- (Ancillary software used to build products)
- What scaffolding is unique to a specific release?
- What scaffolding need be reused for each release?
- Implications for building scaffolding?
129. Configuration Management
- Developers geographically distributed?
- Developers organizationally distributed?
- Product families?
- Nontextual entities?
- Configuration management at customer sites?
1310. Automated Upgrading
- Improve registry concept and implementation?
- Better configuration probing?
- Identifying and updating saved data?
- Verification of successful installation?
- Uninstall and other failure handling?
- Generating feedback to developers?
1411. Testing
- What regression testing is appropriate?
- Can integration testing be simplified?
- What inter-release consistency testing is needed?
- How to do installation testing?
- Changes induce how much integrity testing?
1512. Incremental Quality Assurance
- How to reuse walkthroughs?
- How to reuse reviews?
- How to beta-test successive releases?
- How to achieve incrementality?
1613. Field Support for Several Releases
Simultaneously
- Detection of which release automatic?
- Automatically identify relevant data and snapshot
it? - Choice of updates automatically?
- Adequate recording in registry?
1714. Aids for Retraining Users
- Semi-automation for design and production of
training tutorials? - Semi-automation for design and production of
interactive exercises? - Semi-automation for design and production of
integrated wizards?
1815. Project Metric Tracking
- Product metrics
- What metrics are required?
- How to collect data?
- How to interpret results?
- Process metrics
- What metrics are required?
- How to collect data?
- How to interpret results?
1916. Implications for Procurement
- Balancing long-term relationships
- Cost of maintaining team?
- Challenge of sustaining interest?
- Commitment to continued activity?
- Opportunities for reassessment?
- Support for long-term Prime/Sub relationships?
- Alternatives for progress payments?
- How to change the culture Change to what?
20Conclusions
- Plentiful opportunities for research
- Gaining acceptance is the principal challenge
- Technical problems must be solved, but ultimate
issues are not technical