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

Five Lies of Modernization

Five Lies of Modernization

Everyone wants a silver bullet! Five myths people believe about modernizing systems and how to avoid them

Marianne Bellotti

September 15, 2022
Tweet

More Decks by Marianne Bellotti

Other Decks in Technology

Transcript

  1. About Me • Author of “Kill It With Fire” •

    20+ years of software experience • Specialities: ◦ System dynamics ◦ Applied formal methods ◦ Architecture and system rescue • Engineering manager at Rebellion Defense
  2. Modernization is Wonderful • It’s difficult! ◦ 79% of them

    fail (RedHat, 2022) ◦ Average overrun budget by 27%. 1 in 6 turns into a ‘black swan’ with a cost overrun of 200% and a schedule overrun of 70% (HBR, 2022) • It’s interesting! ◦ Legacy systems are important systems. If they weren’t we’d just turn them off ◦ Legacy systems are a cultural artifact • But people always want a silver bullet and that creates space for dangerous myths to jeopardize your path to success
  3. “This technology is too old.” • Most technologists are wrong

    about the ages of things ◦ Python was invented before Java ◦ LISP is older than COBOL ◦ Many of the “new” languages of today are already 10 years old. • Age doesn’t matter as much as maintenance ◦ Is the language/framework still being developed? Are there security patches? ◦ How easy/hard is it to integrate it with modern protocols? ▪ Awful Java middle layers 🤮
  4. “This technology is too old.” • Beware Shiny Object Syndrome

    • Lot’s of awful configurations can work, what are the hidden costs? ◦ Works once != works at scale • If you decide to migrate, have a clear and specific reason why the “new” technology is the right choice.
  5. “All the COBOL programmers are dying/retiring.” • The number of

    COBOL programmers have remained stable for the last 30 years despite people dying/retiring • There are many skills that aren’t explicitly taught in college that we’re not freaking out about: ◦ SRE ◦ Frontend ◦ Mobile • COBOL systems are almost exclusively enterprise systems. It takes a lot of time to get good at running enterprise systems so it makes sense that people come to COBOL later in life.
  6. “All the COBOL programmers are dying/retiring.” As long as there

    have been computers, there have been people claiming that we will run out of programmers soon The Computer Boys Take Over, Nathan Ensmenger →
  7. “All the COBOL programmers are dying/retiring.” • It’s more a

    question of how your organization wants to invest ◦ Train incoming hires in preferred language (Google does this!) ◦ Train existing employees in new tech and figure out the migration • Up to date and well written documentation is gold • Testing, especially unit tests help engineers learn about their systems
  8. “It’s better to completely rewrite this.” • The working system

    often fuels overconfidence leading to: ◦ Poor estimations in scope ◦ Too many requirements ◦ Delays, budget overruns • Once the software is rewritten the long slow process of migrating off the old system begins • Rewriting also means retraining/onboarding engineering and operations
  9. “It’s better to completely rewrite this.” • If possible iterate

    the existing system • Rewrites spend a lot of time reproducing functionality already available. In order to be successful they need to demonstrate value without adding new functionality ◦ Noticeable (by non-engineers) increase in performance ◦ Friendlier and more intuitive user interfaces ◦ More stable and reliable • Maintain discipline around MVP: new functionality should be sprinkled in gradually
  10. “We must move everything to the cloud.” • Yes, the

    cloud is great and probably the right thing • But also full of hidden costs ◦ 10K tax bill! ◦ Data egress ◦ Different fee structures in different regions ◦ Over-scaling, poor resource utilization • Economies of scale • Specialized concerns: ◦ Foreign nationals ◦ Conflicts of interest ◦ Vendor lock in ◦ Mainframe emulation
  11. “We must move everything to the cloud.” • Don’t assume

    you have economies of scale • Do your research: different vendors have specialized environments and offerings for unique security and business concerns • Identify where assumed cost savings will come from ◦ Decrease in staff? ◦ Not investing in hardware? ◦ Increase in scale? • How much is “everything”? ◦ Can the data originate in the cloud? ◦ Can the end user of the data be moved to the cloud?
  12. “We can just replace this with Salesforce” • Or Wordpress,

    or any other COTS product (nothing against Salesforce ❤) • ….Or “no code” solutions that auto generated applications • Tools are built and optimized for specific use cases • Extensions, plugins and custom modifications introduce potential bugs and vulnerabilities • Interfaces can be unintuitive • “Junk” code diminishes operations
  13. “We can just replace this with Salesforce” • If what

    you need fits what the COTS solution was designed for from the beginning, go for it! • Can do something does not mean does well • How are these customizations tracked? (version control, supply chain security) how are they reproduced? (backups, failovers) • Is this system internal or customer facing? • Who’s going to be responsible when something breaks? Is there a support contract?
  14. Operational Excellence • We have performance goals for this system

    and we monitor its health • We have tested how the system recovers when something fails • There is someone responsible for keeping this system healthy and that person has the resources they need to be successful • System owners can make changes confidently, without fear of triggering an outage • We know where we are spending our money • We don’t look for solutions that will make all our problems go away so we don’t have to invest in our technology anymore!
  15. Why We Talk About Modernization • Organizations with existing systems

    have different challenges than startups ◦ Maintaining operations at scale is particularly bad • Modernization is a useful word because it helps us find each other and share the best advice • But modernization can also make it sound like the solution is to remove the old stuff when the problem is often neglect
  16. Why We Talk About Modernization • All of these myths

    come from effective strategies ◦ “This technology is too old.” → Upgrading to superior hardware ◦ “All the COBOL programmers are dying/retiring.” → Investing in people ◦ “It’s better to completely rewrite this.” → Realigning requirements ◦ “We must move everything to the cloud.” → Leverage managed services ◦ “We can just replace this with Salesforce” → Better security through standards • The difference is attitude: “silver bullet” vs having clear measurable goals to make a system better