There are many languages, tools, and design methodologies in the software community that are aimed at the creation of new software. But a lot of valuable software is the product of evolution, reuse, and reengineering. Some software is too expensive to “throw away and start over.” A skilled software team will have an arsenal of techniques at their disposal for adapting, evolving, and refactoring existing code and designs.
This workshop will be an informal exploration of some old and new techniques for building on existing code, such as wrapper classes, design patterns, test-driven approaches, refactoring tools, and others. The workshop will also address management issues: what factors to consider in the decision to reengineer or to build anew.