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

Beyond 'Good Code'

Beyond 'Good Code'

There's more to technical decision-making and leadership than code comments and semicolon placement. Rachael McQuater and Anjali Munasinghe from Atomic Object will be sharing what makes a great software project and how you can bring more to your teams than just "good code." We'll talk about the factors that go into the decisions that technical leads make every day, and how to apply them throughout your career. Let's unlock some more interesting technical debate topics than tabs vs. spaces.

Rachael McQuater

November 09, 2021
Tweet

More Decks by Rachael McQuater

Other Decks in Programming

Transcript

  1. None
  2. None
  3. An Atomic Project: ArtPrize

  4. An Atomic Project: ArtPrize ‣ Progressive Web App ‣ Hosted

    on Vercel
  5. An Atomic Project: ArtPrize ‣ Progressive Web App ‣ Hosted

    on Vercel ‣ Written in TypeScript
  6. An Atomic Project: ArtPrize ‣ Progressive Web App ‣ Hosted

    on Vercel ‣ Written in TypeScript ‣ Built with React
  7. An Atomic Project: ArtPrize ‣ Progressive Web App ‣ Hosted

    on Vercel ‣ Written in TypeScript ‣ Built with React ‣ Backed by FaunaDB
  8. An Atomic Project: ArtPrize ‣ Progressive Web App ‣ Hosted

    on Vercel ‣ Written in TypeScript ‣ Built with React ‣ Backed by FaunaDB ‣ Serverless ‣ Lean tests, no documentation ‣ Cutting edge tools
  9. A Second Atomic Project: Eaton EMCB

  10. A Second Atomic Project: Eaton EMCB ‣ Azure Services for

    Networking, Access Policies ‣ Azure Functions written in C# ‣ Backed by client internal API
  11. A Second Atomic Project: Eaton EMCB ‣ Azure Services for

    Networking, Access Policies ‣ Azure Functions written in C# ‣ Backed by client internal API ‣ Device Firmware Code: Squirrel
  12. A Second Atomic Project: Eaton EMCB ‣ Azure Services for

    Networking, Access Policies ‣ Azure Functions written in C# ‣ Backed by client internal API ‣ Device Firmware Code: Squirrel ‣ Major investment in dev ergonomics ‣ Lots and lots of tests ‣ Extremely well documented
  13. Tell us about the last thing you built for class.

  14. Tell us about the last thing you built for class.

    Would you call it good code?
  15. Which of these two projects is better code? ArtPrize ‣

    Serverless ‣ Lean tests, no documentation ‣ Cutting edge tools EMCB ‣ Major investment in dev ergonomics ‣ Lots and lots of tests ‣ Extremely well documented
  16. What does that even mean?

  17. You might think of Good Code as... ‣ Good formatting

    ‣ Comments ‣ Tabs v. spaces ‣ Unit tests?? !
  18. But IRL we think a lot more about tradeoffs.

  19. Tradeoffs you might be familiar with... ‣ Memory vs. performance

    optimization vs. code space ‣ Data structures and their various access patterns ‣ Horizontal vs. vertical scaling ‣ What else?
  20. What about... ‣ Time ‣ Quality ! ‣ Correctness ‣

    Brittleness
  21. Questions you might have asked yourself ‣ "How do I

    get this turned in before midnight?" ‣ "How do I get in under the runtime cap?" ‣ "How do I do this????"
  22. Questions you might have asked yourself ‣ "How do I

    get this turned in before midnight?" ‣ "How do I get in under the runtime cap?" ‣ "How do I do this????" That's what the circumstances demanded of you!
  23. Questions we ask ourselves every day

  24. "How do I get this in under budget?" ‣ This

    is mostly just a variant on the time thing ‣ This might look like: ‣ Buying time with money ‣ Compromising on tools ‣ Permitting known issues ‣ Where can I pay money instead of spending time? ‣ What can I compromise on toolwise?
  25. "Who is gonna maintain this?" ‣ Shiny new tools v.

    industry standard ‣ Approachability & learning curve ‣ Investment in tests, automation
  26. "How long is this gonna last?" ‣ Documentation ‣ Logging

    / Monitoring ‣ Upgrade requirements ‣ Modularity and reuse
  27. Let's take a look at those two projects again.

  28. "How do I get this in under budget?" ArtPrize ‣

    Tight nonprofit budget ‣ Proof of concept Leads to... ‣ Lean tests and no documentation EMCB
  29. "How do I get this in under budget?" ArtPrize ‣

    Tight nonprofit budget ‣ Proof of concept Leads to... ‣ Lean tests and no documentation EMCB ‣ Budget? What budget? Leads to... ‣ Major investment in dev ergonomics
  30. "Who is going to maintain this?" ArtPrize ‣ Atomic; senior

    team ‣ No client IT Leads to... ‣ Cutting edge tools ‣ Batteries-included devops via SAAS EMCB
  31. "Who is going to maintain this?" ArtPrize ‣ Atomic; senior

    team ‣ No client IT Leads to... ‣ Cutting edge tools ‣ Batteries-included devops via SAAS EMCB ‣ Internal Eaton developers Leads to... ‣ C#, because that's what they use there ‣ Azure, because that's what they use there
  32. "How long will it last?" ArtPrize ‣ Proof of concept

    ‣ Short event Leads to... ‣ Light, easy tests ‣ No documentation ‣ No component reuse EMCB
  33. "How long will it last?" ArtPrize ‣ Proof of concept

    ‣ Short event Leads to... ‣ Light, easy tests ‣ No documentation ‣ No component reuse EMCB ‣ Indefinitely! ! ‣ Needs predictability Leads to... ‣ Most documented project ever ‣ Major investment in support tooling
  34. This skill takes time. But you've always been doing it.

  35. There's more to Good Code than comments and spaces.

  36. You can start thinking like a lead... ...long before being

    crowned with a title. Ask yourself and your teammates: ‣ Is this the right time to refactor this code? ‣ Should I try to use an off-the-shelf component for this story? ‣ Should I spend the time on making this an abstract component?
  37. None