Legacy code
Development and Maintenance
● Code after deployment
● Successful
● Long-lasting software
● Meets customers’ needs
● Hard to evolve:
○ design degradati...
Lustre®
FS
parallel distributed file system
● C
● > 600 KLOC
● kernel space code
● https://github.com/Xyratex/lustre-stabl...
Development and Sustaining teams
Development Cycle unpredictable
priority
changing
estimation
rough
Planing
Development
Re...
Nature of processes
Planning
Pulling
Lost feedback from Sustaining
Retrospective
● Defects Escapes show what missed in Quality
● Feedback:
○ Process changes
○ ...
Future looks bright
Tested and works. Don’t touch.
Discovered bug and hidden one
Only not used product has no bugs
Fixing bug could uncover other
Changing code always risky
Just fixing is not enough
Bugs are never ending
Legacy Quality: Continuous Refactoring
Preventive measures
“premature optimization is the root of all evil”
Donald Knuth
● Refactoring SHOULD BE - proven, based on statistic and
met...
● Chris Lewis and Rong Ou, “Bug Prediction at Google”
● Bug Prediction, Bug Introducing Changes, BugCache,
FixCache, Predi...
Thank You
Denis_Kondratenko@xyratex.com
http://www.linkedin.com/in/kondratenko
Upcoming SlideShare
Loading in …5
×

Legacy code development and maintenance

703 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
703
On SlideShare
0
From Embeds
0
Number of Embeds
49
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

×