Slide 1

Slide 1 text

Naren 🐦@DudeWhoCode Engineering Excellence RubyConf 2022

Slide 2

Slide 2 text

🐺 Full time adventurer with Tensoon 👨💻 Software Consultant 🛠 Engineering Lead @ Arcana.Network ☕ Chief Co ff ee O ff i cer @ La Vita Cafe 🐦 @DudeWhoCode About

Slide 3

Slide 3 text

How to make espresso ☕

Slide 4

Slide 4 text

Dose

Slide 5

Slide 5 text

Distribute

Slide 6

Slide 6 text

Tamp

Slide 7

Slide 7 text

Extract

Slide 8

Slide 8 text

Enjoy the coffee 🙈

Slide 9

Slide 9 text

• Software engineering is writing code that changes with TIME, PEOPLE and SCALE Software Engineering

Slide 10

Slide 10 text

• E ffi ciently delivering to customers and taking pride and satisfaction from the work • Non functional requirements that keep the system running • Improves the daily work and productivity of the engineers • It’s a journey, not the end goal Engineering Excellence

Slide 11

Slide 11 text

Product

Slide 12

Slide 12 text

• Ship prototypes and prove your product to gain early adopters • No early users? • Get back to the whiteboard • Pivot • Repeat until you fi nd your PMF or shut down • Until you get your early adopters, engineering excellence doesn’t matter Pre-PMF

Slide 13

Slide 13 text

Pre-PMF Product User

Slide 14

Slide 14 text

• Go from early adopters to early majority - more users in short time • Add new features from early adopters’ feedback • Fix screw ups from prototypes - product and engineering • Refactor the prototype or rewrite the prototype in rare cases • All these while catering the existing users and expanding the team PMF

Slide 15

Slide 15 text

• Gain late stage adaptors • Expand the business by building di ff erent product verticals • By this time if there is no engineering excellence, then either product will be miserable or team will be miserable Post-PMF

Slide 16

Slide 16 text

• Engineering excellence will take back seat sometimes • A long living cash cow product - a.k.a Legacy Code • Fight for survival - Product or business is at risk because of runway, funding or competitors Exceptions

Slide 17

Slide 17 text

• CHANGE - product, code and team • Nothing’s gonna change is a risky bet • Unstoppable change inducers: • Passage of time • Entropy Common factor

Slide 18

Slide 18 text

Organization

Slide 19

Slide 19 text

• “Move fast and break things” happens if you are able to undo the broken things • Change is the only option for any product • Faster the change is undoable, more con fi dent the team is to make mistakes Why engineering excellence?

Slide 20

Slide 20 text

Breakpoints

Slide 21

Slide 21 text

• Real world is messy and chaotic • 80% of the engineering problems you (will) face would be solved by fi xing 20% of the problems Minimum Viable Process

Slide 22

Slide 22 text

Handling Change

Slide 23

Slide 23 text

• You take decisions and tradeo ff s on daily basis • Should we have cake cutting for everyone’s birthday? • 10 people • 30 people • 300 people CD - Continuous Decisions

Slide 24

Slide 24 text

• Measurable • Quanti fi able inputs • Ex. CPU cycles • Measurable outputs • Direct costs • Immeasurable • Unquanti fi able inputs • Ex. Lack of tests, docs or API contracts • Immeasurable outcomes and impacts • Indirect costs Decision I/O

Slide 25

Slide 25 text

• Ways to handle change • Find the change ASAP • Undo previous change • Find change by reducing the feedback loop Detect and Undo

Slide 26

Slide 26 text

Always shift left

Slide 27

Slide 27 text

• Policy is easy, changing minds are di ff i cult • Policy = Extrinsic. Mindset = Intrinsic • Examples • Documentation - needs writing habit • Remote team - needs e ff ective communication • Change brings resistance and people develop immunity to change • Retrospect how team embraces the change Mindset over policies

Slide 28

Slide 28 text

Healthy Engineering

Slide 29

Slide 29 text

• Form writing habit. One pagers and meeting notes are good start • Deliberately refer the written docs • Helps mitigating all or nothing expertise • Internal talks helps to avoid information islands Knowledge sharing

Slide 30

Slide 30 text

• Constantly encourage to communicate • Silent team is a dangerous team • Encourage proactive learning • Eliminates parroting Proactiveness

Slide 31

Slide 31 text

• Individual productivity, prioritization, time and energy management are unlisted part of • Prioritize heavily to reduce the streams of work. So that anyone can have a mental model of the work • Create psychological safety for the team • Don’t measure lines of code or number of issues closed, evaluate the impact of the team on the product or release Productivity

Slide 32

Slide 32 text

• Let the team believe in expertise • If there is no ability to take continuous tradeo ff s, then team copies patterns without understanding them • Incentivize for long term e ff orts • A stretched team will put engineering to back seat Dynamics

Slide 33

Slide 33 text

• Time and entropy makes sure the process you put degrades • Slip ups which aren’t addressed will be propagated and it will become a norm • Leave no broken windows • Stay vigilant about slip ups Process decay

Slide 34

Slide 34 text

Keep It Simple and Stupid GREAT ADVICE… HURTS MY FEELINGS EVERY TIME. MICHAEL ALWAYS SAYS, K.I.S.S - KEEP IT SIMPLE, STUPID!

Slide 35

Slide 35 text

Engineer

Slide 36

Slide 36 text

• Helps to grow in your career. Either to get promoted inside the company or get more opportunities outside • Product mindset and collaboration > Churning code • In fl uence without authority • Natural leadership Why it’s important for engineer

Slide 37

Slide 37 text

• Few of my talks and writings for reference: • Becoming pragmatic • What’s next • Software craftmanship How to show excellence

Slide 38

Slide 38 text

You Dev who’s gonna maintain your code

Slide 39

Slide 39 text

Conclusion

Slide 40

Slide 40 text

Variables in coffee

Slide 41

Slide 41 text

Variables in engineering

Slide 42

Slide 42 text

• Catchy terms and analogies are inspired from books • “Pragmatic Engineer” Newsletter by Gergely Orosz • “Build” book by Tony Fadell • “Software Engineering at Google” book by Winters, Manshreck & Wright • “Leaders Eat Last” by Simon Sinek • “Cute pictures” from Tensoon 🐺 Reference & Credits

Slide 43

Slide 43 text

Thank you Naren, Software Consultant Twitter: @DudeWhoCode