This document discusses legacy and long-running projects. It defines a legacy system as an old technology that continues to be used because it still meets user needs, even though newer technologies are available. It notes that long-running projects of over 2 years duration can be considered legacy. The document provides advice on when and how to rewrite legacy systems, including ensuring the new technology is mature and the team is ready. It also discusses challenges of maintaining motivation for teams on legacy projects and paying off the accumulated technical debt over time.
2. def
"A legacy system is an old method, technology,
computer system, or application program that
continues to be used, typically because it still
functions for the users' needs, even though
newer technology or more efficient methods of
performing a task are now available." (Wikipedia)
10. technology: rewrite
50% rule
clear legacy system requirements
new technology mature enough & team ready
benefits/costs ratio
customer understands what's going on (...)
13. technology: rewrite
integration tests
prioritize!
be ready to support legacy system
simplify
migrate data early
rewrite piece-by-piece
usually takes longer than expected
14. technology: technical debt
"Like a financial debt, the technical
debt incurs interest payments,
which come in the form of the extra
effort that we have to do in future
development because of the quick and
[1]
dirty design choice."
[1] http://martinfowler.com/bliki/TechnicalDebt.html
19. team: motivation
lack of "hot" tech stuff
high level of sh*t (everything needs to be
fixed!..)
lack of challenge in well known field
routine, routine, routine
27. team: motivation
if a product has some fans
(hopefully),
forward/communicate love
letters to the team
28. return
1. technology matters as much as it matters to
the TEAM
2. changes are and must be inevitable
3. way of recharging the batteries must be
developed to get rid of long run exhaustion
4. ...
5. profit!