Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fight Code Rot Using Continuous Improvement

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

Fight Code Rot Using Continuous Improvement

Avatar for garyfleming

garyfleming

August 22, 2019
Tweet

More Decks by garyfleming

Other Decks in Programming

Transcript

  1. ▸ No source code (written in an older language) ▸

    Runs in a green screen terminal, ▸ Has to be emulated. @garyfleming
  2. SYSTEM EXPERIMENT: FISHES AND TIME ▸ 10 minutes? ▸ 10

    hours? ▸ 10 days? ▸ 10000 years? @garyfleming
  3. EXPERIMENT: DEPENDENCY UPDATE DAILY ▸ Update ▸ Build and test

    ▸ Commit/Revert ▸ Commit causes CD to happen @garyfleming
  4. OUTCOME: DEPENDENCY UPDATE DAILY Mostly success! ▸ Some Major Version

    upgrades would need intervention, ▸ Temporary exclusions are important, @garyfleming
  5. DEPENDENCY UPDATES: OTHER LANGUAGES ▸ Ranges and Lock files: gem/bundler,

    most JS frameworks. >=5.4.1 3.* [3.7.1) @garyfleming
  6. DEPENDENCY UPDATES: OTHER LANGUAGES ▸ Possibly open: pip, some JS

    frameworks, gem some-dep a-different-dep @garyfleming
  7. INTERMEDIARY TOOLING ▸ Java -> Jabba ▸ Ruby -> RVM

    ▸ Node -> NVM ▸ Python -> Virtualenv (to some degree) @garyfleming
  8. AVOID SNOWFLAKE SERVERS ▸ Hard to Reproduce ▸ Hard to

    Modify ▸ Require manual processes, auditing, and docs. @garyfleming
  9. AVOIDING OBSOLESCENCE ▸ Move to new versions, ▸ Cautiously embrace

    new languages, ▸ Design language agnostic APIs @garyfleming