Legacy code development and maintenance

577 views
438 views

Published on

Long-lasting SW is goal of all SW development, it indicates that product is successful and probably widely used. But long life brings it own problems and has dramatic influence on developing process. This presentation will provide you some highlights on how to deal with legacy code and what should be remembered starting new SW product that is targeted for long life.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
577
On SlideShare
0
From Embeds
0
Number of Embeds
41
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Legacy code development and maintenance

  1. 1. Legacy code Development and Maintenance
  2. 2. ● Code after deployment ● Successful ● Long-lasting software ● Meets customers’ needs ● Hard to evolve: ○ design degradations ○ too many use cases ○ many different customers What is the Legacy code?
  3. 3. Lustre® FS parallel distributed file system ● C ● > 600 KLOC ● kernel space code ● https://github.com/Xyratex/lustre-stable/
  4. 4. Development and Sustaining teams Development Cycle unpredictable priority changing estimation rough Planing Development Retrospective
  5. 5. Nature of processes Planning Pulling
  6. 6. Lost feedback from Sustaining Retrospective ● Defects Escapes show what missed in Quality ● Feedback: ○ Process changes ○ Design ○ Review Checklists ○ Test coverage ○ Feature/Refactoring planning
  7. 7. Future looks bright Tested and works. Don’t touch.
  8. 8. Discovered bug and hidden one Only not used product has no bugs
  9. 9. Fixing bug could uncover other Changing code always risky
  10. 10. Just fixing is not enough Bugs are never ending
  11. 11. Legacy Quality: Continuous Refactoring Preventive measures
  12. 12. “premature optimization is the root of all evil” Donald Knuth ● Refactoring SHOULD BE - proven, based on statistic and metrics ○ Metrics and stat from Defects Escapes ○ Code metrics (Complexity, LOC based stat, Function points, etc) ○ SCM: ■ churn (added + changed) ■ age of changes (freshness) ■ distance ■ etc Legacy Quality: Continuous Refactoring
  13. 13. ● Chris Lewis and Rong Ou, “Bug Prediction at Google” ● Bug Prediction, Bug Introducing Changes, BugCache, FixCache, Predicting faults and etc. Key phrases to search in web Readings
  14. 14. Thank You Denis_Kondratenko@xyratex.com http://www.linkedin.com/in/kondratenko

×