Monday 3-2-1 – Pre-mortems, diagramming tools, hiring via internships💡
Edition #16
Hey, Luca here 👋 welcome to the Monday 3-2-1 ✨
Every Monday I will send you an email like this with 3 short ideas about:
🎽 Engineering Management
🔨 Technical Strategy
🎒 Hiring & Onboarding
You will also be receiving the regular long-form one on Thursday, like the last one:
To receive all the full articles and support Refactoring, consider subscribing if you haven’t already:
p.s. you can learn more about the benefits of the paid plan here.
1) 💀 Pre-mortems
Because of Refactoring, I have the privilege to get in touch with many great teams and tech leaders. When I do so, I try to recognize patterns — things they have in common that may be part of what makes them successful.
A common staple of great teams is doing pre-mortems.
A pre-mortem is an exercise that you conduct at the beginning of a project, where you list all the possible situations that would make you miss your goals.
You start by assuming your project has failed — e.g. 6 months from now — and you list all the possible ways it could have failed. This way, you can later create a plan that takes them into account.
Pre-mortems are run at all levels and they are pretty popular in Engineering, too. As you work on a tech design, you can ask questions to prevent common issues:
Project running late: what could cause us to miss our deadline?
Technical Debt: what changes to requirements would make this design obsolete in the future?
Build the wrong thing: are there any requirements missing?
Scaling and reliability issues: are we creating any bottlenecks or single points of failure?
Pre-mortems are a form of inversion 👇
2) ✏️ Diagramming Tools
A couple of days ago, Alex asked in the community which diagramming / whiteboarding tools people use the most.
The thread blew up and we got tons of recommendations. Posting here the main ones:
Excalidraw — people come to Excalidraw for the hand-drawn feel, and stay for the fantastic UX. Super fast, plenty of shortcuts, and very easy to share with others.
Miro — the most versatile and complete whiteboarding tool out there. Perfect for collaboration, you can do pretty much anything with it. Also discounted for paid Refactoring subscribers!
Whimsical — I love whimsical and I find myself using it more and more often. It strikes the right balance between being feature-rich but not overwhelming with choices. It is also quite good-looking.
Diagrams — former draw.io, it is one of the oldest and most supported diagramming tools. It works well with pretty much anything out there, from Google Docs, to OneDrive, Atlassian, and more.
Moqups — I am honest, I didn’t know it and I just discovered it via the community post. I tried it and I just loved it. Despite the name you can create full, high fidelity UI designs with it, add interaction flows, and collaborate on things with your team.
Honorable mention: GoodNotes — people ask me all the time how I make the Refactoring diagrams. I draw them by hand with GoodNotes on my iPad. No fancy tool, really, but I love the simplicity and it just works ❤️
3) 🎓 Hire via internships and theses
You can hire great people via internships and theses. If you do a good job with these, after a while talent will come naturally to you as you get sponsored by professors and former students.
You can do the same with online schools such as Bloom or Epicode.
You can beat large companies at this because either 1) they don't go for it, or 2) you can do a better job at pitching projects and internships.
Also, hiring junior devs and mixing seniority in your team is a great way to help everyone grow and to make hiring itself easier and cheaper 👇
And that’s it for today! If you liked the article, consider doing any of these:
1) ✉️ Subscribe to the newsletter — if you aren’t already, consider becoming a paid subscriber. You can learn more about the benefits of the paid plan here.
2) ❤️ Share it — Refactoring lives thanks to word of mouth. Share the article with your team or with someone to whom it might be useful!
I wish you a great week! ☀️
Luca