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. An Atomic Project: ArtPrize ‣ Progressive Web App ‣ Hosted

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

    on Vercel ‣ Written in TypeScript ‣ Built with React ‣ Backed by FaunaDB
  3. 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
  4. A Second Atomic Project: Eaton EMCB ‣ Azure Services for

    Networking, Access Policies ‣ Azure Functions written in C# ‣ Backed by client internal API
  5. 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
  6. 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
  7. 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
  8. You might think of Good Code as... ‣ Good formatting

    ‣ Comments ‣ Tabs v. spaces ‣ Unit tests?? !
  9. 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?
  10. 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????"
  11. 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!
  12. "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?
  13. "Who is gonna maintain this?" ‣ Shiny new tools v.

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

    / Monitoring ‣ Upgrade requirements ‣ Modularity and reuse
  15. "How do I get this in under budget?" ArtPrize ‣

    Tight nonprofit budget ‣ Proof of concept Leads to... ‣ Lean tests and no documentation EMCB
  16. "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
  17. "Who is going to maintain this?" ArtPrize ‣ Atomic; senior

    team ‣ No client IT Leads to... ‣ Cutting edge tools ‣ Batteries-included devops via SAAS EMCB
  18. "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
  19. "How long will it last?" ArtPrize ‣ Proof of concept

    ‣ Short event Leads to... ‣ Light, easy tests ‣ No documentation ‣ No component reuse EMCB
  20. "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
  21. 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?