The Evolution of Engineering Excellence by Patrick Kua

The Evolution of Engineering Excellence by Patrick Kua

Presented at https://www.meetup.com/Agile-Singapore/events/273699770

How we build software today looks vastly different from 20 years ago. Excellence in software engineering matters more than ever. Did you ever stop to wonder why? By looking at the history of engineering practices, we can learn how engineering excellence evolved and what that implies about the future. As software engineers, you will learn why it’s important to continue to hone your craft and why it’s important for tech companies to continually invest in software excellence today.

Patrick Kua is a seasoned technology leader with almost 20 years of experience. His personal passion is accelerating the growth and success of tech organisations and technical leaders. He has had many years of hands-on experience, leading, managing and improving complex organisations and software systems as the CTO and Chief Scientist of N26 (Berlin, Germany) and as a Technical Principal Consultant at ThoughtWorks. He is a frequent keynote and conference speaker, author of three books including The Retrospective Handbook, Talking with Tech Leads and Building Evolutionary Architectures and runs the free popular newsletter for leaders in tech, “Level Up” (http://levelup.patkua.com) and the Tech Lead Academy, offering online training for technical leaders. You can find him online on twitter as @patkua or running his very popular “Shortcut to Tech Leadership” workshop.

66a1bb94b08fe5dcd07635a59681626c?s=128

Agile Singapore

October 15, 2020
Tweet

Transcript

  1. The Evolution of Engineering Excellence Agile Singapore (Oct 2020) @patkua

  2. @patkua #Architect #Developer #Coach #Leader #CTO #Life-long learner #Author #Speaker

    Patrick Kua ~20 years experience Agile Software Development Organisational Change Systems Thinking Technical Leadership Development @patkua
  3. @patkua thekua.io/twtl thekua.io/retrobook #Architect #Developer #Coach #Leader #CTO #Life-long learner

    #Author #Speaker thekua.io/evolarch @patkua
  4. @patkua Level Up A curated newsletter for leaders in tech

    http://levelup.patkua.com @patkua
  5. @patkua @patkua Shortcut to Tech Leadership Accelerate Your Journey From

    Maker to Multiplier techlead.academy 3 Nov, 2020 2:30pm SGT https://www.tickettailor.com/events/agilesingapore/434309
  6. @patkua Questions http://menti.com use code 8160282; or https://www.menti.com/qacnm9k2b2

  7. @patkua @patkua

  8. @patkua Our Journey @patkua

  9. @patkua @patkua Our Ecosystem Systems Tools Practices Organisation Products Competitors

  10. @patkua 1950s

  11. @patkua Source: https://upload.wikimedia.org/wikipedia/commons/b/bd/UNIVAC-I-BRL61-0977.jpg @patkua

  12. @patkua 0010011010011001 1101010011100101 1100010101001010 0100101101010010 1101011000101100

  13. @patkua 0010011010011001 1101010011100101 1100010101001010 0100101101010010 1101011000101100 println(“Hello World”) // PS.

    Not actual A-0 code
  14. @patkua println(“Hello World”)

  15. @patkua IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. * simple hello world program

    PROCEDURE DIVISION. DISPLAY 'Hello world!'. STOP RUN.
  16. @patkua

  17. @patkua Grace Hopper

  18. @patkua Context Heavy Calculations Computer Specific This is “Best Practice”

    @patkua
  19. @patkua “Can we improve this?”

  20. @patkua Lessons Learned Compute more accessible Too many steps Prototype

    over words @patkua
  21. @patkua 1990s

  22. @patkua Intel Inside Software on CDs 56K Modems Reused under

    the Creative Commons Licence https://www.flickr.com/photos/21987248@N00/122099189 AOL Online 1.0/1.2
  23. @patkua

  24. @patkua SFTP COM CSV FLATFILE

  25. @patkua SFTP COM EJB

  26. @patkua SERVER APPLICATION SERVER J2EE APPLICATION J2EE APPLICATION J2EE

  27. @patkua J2EE SERVER APPLICATION SERVER J2EE APPLICATION J2EE APPLICATION SERVER

    APPLICATION SERVER J2EE APPLICATION J2EE APPLICATION
  28. @patkua Idea or Task Dev-Test Cycle Write code Build package

    Start application server Deploy package Test app
  29. @patkua @patkua

  30. @patkua Key Issues Proprietary App Servers Excessively manual XML “addicted”

    @patkua
  31. @patkua “Enterprise” software Early days for open source This is

    “Best Practice” Context @patkua
  32. @patkua “Can we improve this?”

  33. @patkua

  34. @patkua Lessons Learned Faster feedback Desire for more lightweight tools

    Openness @patkua
  35. @patkua Early 2000s

  36. @patkua Waterfall “Requirement Specifications” “Build and Release Team” Release “sign

    off” “Regression” phase Release time 3+ months @patkua
  37. @patkua Waterfall “I believe in this concept, but the implementation

    described above is risky and invites failure ” - (1970) Winston Royce @patkua
  38. @patkua Agile = “Hack” Software is “Engineering” This is “Best

    Practice” Context @patkua
  39. @patkua “Can we improve this?”

  40. @patkua “What if we did good practices more often?” C

  41. @patkua C Good Practice Good Practice x 10 Manual testing

    Automated testing Integration phase Continuous Integration Planning Adaptive Planning Release to customers More frequent releases Code reviews Pair programming
  42. @patkua @patkua

  43. @patkua

  44. @patkua + +

  45. @patkua Mid 2000s

  46. @patkua 2004 2009 2MB 5MB

  47. @patkua 2001 2004 2006

  48. @patkua On Premise Cloud Computing

  49. @patkua ??? Integration Phase Continuous Integration

  50. @patkua “Can we improve this?”

  51. @patkua “The Last Mile” Problem @patkua

  52. @patkua @patkua Our Journey

  53. @patkua What can we learn?

  54. @patkua @patkua Our Ecosystem Systems Tools Practices Organisation Products Competitors

  55. @patkua Context Matters

  56. @patkua Context Matters Context Changes

  57. @patkua Constant Improvements

  58. @patkua Source: https://xkcd.com/2347/ Constant Improvements

  59. @patkua Integration Phase Continuous Integration Continuous Delivery Build Team Regression

    Testing Automated Testing Trunk Based Development Automated Deployment Process Incremental Delivery Best Practice? Constant Improvements
  60. @patkua Constant Experimentation

  61. @patkua Integration Phase Continuous Integration Continuous Delivery ??? ??? Adaptive

    over Predictive Constant Experimentation
  62. @patkua Constant Experimentation Not all ideas are great Model Driven

    Development SOAP Rational Unified Process
  63. @patkua Evolutionary Engineering

  64. @patkua Evolutionary Engineering Source Control

  65. @patkua Evolutionary Engineering RCS VSS TFSVC ClearCase darcs Bazaar SCCS

    Perforce AccuRev Source Control
  66. @patkua @patkua

  67. @patkua 4 Crafting Guidelines Stay context aware Learn principles, then

    apply with tools Use your craft where it matters Strive for incremental continuous improvement @patkua
  68. @patkua Conclusion @patkua

  69. @patkua Software Excellence Context Best practices expire Improvements Best practices

    emerge Best practice becomes standard practice Constant Evolution @patkua
  70. @patkua Software Excellence Context Best practices expire Improvements Best practices

    emerge Best practice becomes standard practice Software Craftsmanship Mindset @patkua
  71. @patkua Thank You The Evolution of Engineering Excellence

  72. @patkua Questions http://menti.com use code 8160282; or https://www.menti.com/qacnm9k2b2