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

People leave the company, software stays

People leave the company, software stays

André Neubauer

November 09, 2021
Tweet

More Decks by André Neubauer

Other Decks in Storyboards

Transcript

  1. People leave the company, software stays Wenn das Wissen die

    Firma verlässt und die Software bleibt
  2. • Bill Hinshaw • CEO and Founder of Cobol Cowboys,

    LLC • Worked the age of 75 for different financial institutions to maintain their Cobol based applications Source: https://www.manager-magazin.de/unternehmen/artikel/us-banken-brauchen-it-kraefte -manager-holen-cobol-veteranen-zurueck-a-1143632.html #1: Who knows this guy?
  3. This Is The Future! • More digitalisation → More stuff

    to maintain • Shorter product cycles → More stuff to maintain • Faster change of technologies (on all levels → programming languages, frameworks, infrastructure, ...) • Less loyalty of employees
  4. Strive For Transparency • Non-Tech people don’t understand the complexity

    of technology • Make it tangible (e.g. what’s impact) • Use KPI (churn, service maturity, ...) • Repeat! Redundancy drives relevance!
  5. Maintain A “Tech Improvement List” • Get the full picture,

    involve everyone • Prioritize and consider step-fixed costs • Use as input for roadmap planning • As a tech leader: Support overall prioritization
  6. Offer Different Software Development Modes And Apply The Right Mode

    To Your Project Ideas • • Will result in a prototype/ MVP Emerging Products • Time to market matters • Iterative approach (solution will be changed/ enhanced/ replaced in the future) Core Services/ Products • Needs to scale • May stays “forever” • Allows fast development but will no care about every detail • Will result in slow development but a robust solution
  7. Optimize For Maintainability Onboarding • Have some up-to-date overall documentation

    in place (system architecture, domain, ...) • Documentation of core decisions (e.g. ADR) • Pay attention to readability • Favor automation (every manual process will break sooner or later) • Simplicity is king, make it a habit/ principle
  8. Separation helps • Modularisation on code level (e.g. Micro-Service, Lambda

    Functions) • Isolation and clear responsibility on system level
  9. Don’t Fall in Love With The Shiny New Technology Syndrome

    Be aware: There is always a technology which is handling one aspect better than the technologies you already have in use. Focus on the big things rather than the details: • Maturity of technology • Available ecosystem (e.g. support) • Organisational impact Credits to: Boring Technology Club
  10. Aim for a small “Tech-Zoo” • Choose your technologies wisely

    • Organise them in a Tech Portfolio/ Tech Radar • Apply Standards where individual solutions don’t add value • Most importantly: Remove technologies! • Apply a threshold (“For every new technology, another one has to leave”)
  11. How To Introduce New Technologies Asses Trial Adopt On hold

    • Research & Prototyping of promising technologies • No use in production • Deepen experience • Limited usage in production for side application • Allow usage technology in large scale across all systems • No usage for new projects • Constant review to define End-of-Lifetime • Only purpose statement required • Requires a consent decision (absence of objections) based on assessment • Requires consensus decision (two-thirds majority) • Decision criteria Developer experience, Costs of change, ... • Requires consensus decision (two-thirds majority)
  12. Minimize Bus Factor 1. Have an overview of (key) knowledge

    areas 2. Identify gaps → Use skill management (for technologies as well as domain knowledge) 3. Close them (Pair programming, trainings, brown bag sessions) Def: “[...] minimum number of team members that have to suddenly disappear from a project before the project stalls due to lack of knowledgeable or competent personnel.” Source: Bus Factor
  13. Implement Service Maturity Model Goal: What’s the state of a

    service? • Define the base line based and make it measurable → fully automated KPI • Offer standard solutions to meet criteria • Iterate from status quo
  14. Run Software Development as Craftsmanship • Focus on well-crafted software

    and strive for mastery • Not only responding to change, but also steadily adding value • Make use of the pull system • Apply Scout Principle (“Always leave the code better than you found it.”)
  15. Set The Course Early Source::THE PRODUCT PORTFOLIO MATRIX Investments Investments

    change over product lifecycle but decrease earlier compared to benefits
  16. Force Company Into Zero-Legacy-Policy • Legacy software is unlike wine,

    aging doesn’t help* ◦ Knowledge, commitment and motivation will decrease over time → It’s just gets more expensive. • Give freedom & responsibility to where it needs to be handled • Introduce Zero-Issue-Policy like for bugs to keep legacy software manageable • How to handle existing stuff? Just start, use status quo as threshold and constantly reduce it * actually also not true for most wines
  17. Local Global Internal External Run Software Development as Craftsmanship Strive

    For Transparency Minimize Bus Factor Set The Course Early Small “Tech-Zoo” Zero-Legacy-Policy Implement Service Maturity Model Set The Course Early Separation helps Optimize For Onboarding Offer Different Software Development Modes
  18. People leave the company, software stays Wenn das Wissen die

    Firma verlässt und die Software bleibt