Drakon flowcharts, changing jobs, and boring tech 💡
Monday Ideas — Edition #62
Hey, Luca here! Welcome to the Monday Ideas 💡
Every Monday I will send you an email like this with 3 short ideas about making great software, working with humans, and personal growth.
You will also receive a long-form, original article 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.
This week I am promoting Typo — an intelligent engineering management platform that enables modern software teams with visibility, insights & tools to code better, deploy faster & stay aligned with business goals.
By seamlessly integrating with your dev tool stack (Git, Issue Tracker, CI/CD, Incident Management, Slack), Typo connects the dots between engineering signals & developer experience, to deliver the following:
👑 For Leaders — align engineering with business goals & support teams to deliver their best with developer wellbeing insights
🎽 For Managers — identify delivery bottlenecks, predict release delays & drive continuous improvement with customized team goals & weekly progress reports
🔨 For Developers — measure the impact of their work on team goals & ship code faster with automated dev workflows in Slack
1) ⚔️ Boring vs exciting tech
I have a bias for choosing boring technology.
My definition of boring tech is: good tech that has almost everything figured out:
✅ Many known wins — it is widely adopted and supported.
❌ Many known fails — limitations are well known and documented.
❓ Few unknown fails — we know it inside out because so many things have already been tried.
Exciting tech, instead, is good tech that is still discovering things about itself:
✅ Many known wins — new paradigm!
❌ Few known fails — it will solve all my problems!
❓ Many unknown fails — because we just haven't discovered them yet.
In tech, new things are generally better than old ones, and the former eventually replace the latter. However, new stuff has also the unfair advantage that some downsides just haven't been figured out yet.
An old adage says that new tech solves old problems and creates new ones. But since new problems only surface a while after the old ones have been solved, you have a window of time in which new tech looks disproportionately better than it actually is.
In conclusion you can say that:
Boring tech is safer — because of fewer unknowns.
Exciting tech looks better — and maybe it is, but you will also discover more downsides over time.
I wrote more advice about choosing tech in this past Refactoring article:
2) 💼 Changing jobs often — or not?
I am a fan of using your early years for broad learning — that is, you build the horizontal leg of the T-shape first.
For this reason you will probably benefit from changing jobs often, early in your career.
This might be divisive, but it is just common sense to me: if you want to see different things—from a technical, product, and organizational point of view—you just need different companies.
How long you should stay depends on how much you can learn. A couple of years is usually a good amount of time to have a good impact and learn new tricks. In healthy, high-growth contexts, you can benefit from staying more, while you can stay less when things are not going the right way.
As a hard and fast rule, I would always stay at least 18 months in any position that is not extremely pointless or toxic. Less than that, the onboarding tax you pay is just too high and cuts into the value you can create for the company and for yourself. Also, a long string of short experiences doesn’t make for a good impression with future employers.
More advice on when to quit your job 👇
Later in your career, when you get into senior positions, I would look instead for environments where you can stay longer and have a long term impact. Leadership and upper management positions, in fact:
⏳ Need more time to create value — initiatives are bigger, planning cycles are longer, and you just need more time to accomplish anything.
🤝 Are built on strong trust — every time you change jobs you lose all the trust you built in your previous experience, which is crucial to advance to leadership roles. In that respect, changing jobs too often can even slow down your career.
More advice about growing your career in this past edition 👇
3) 📊 Drakon Flowcharts
I have struggled to draw good flowcharts for years and I just found out that there is a better way called DRAKON.
DRAKON is a visual language, created in the aerospace industry, that defines a few simple rules on top of regular flowcharts:
Line intersections are forbidden
Only straight lines and right angles are allowed
Arrows are replaced with plain lines
Time in the diagram flows downwards and branching goes to the right
...and, magically, flowcharts look 10x better!
And that’s it for today! If you are finding this newsletter valuable, 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! ☀️