7 Comments

Thanks for the shout out!

Expand full comment
author

Thanks for the awesome issue!

Expand full comment

The analogy I found very useful is

Don’t be a waiter. Be a doctor.

In software dev, we are paid to solve problems especially the painful ones

Not churn out features like a factory

So don’t be like a waiter taking orders. I’ve made this mistake before.

Be a doctor who needs to ask questions and learn to listen on between the lines in order to diagnose the root cause that best solved the problem.

Sometimes you have a complex situation and you need to disagree with the patient in the best course of treatment

So you have to push back with wisdom (because you diagnosed the root cause) , compassion (there’s a reason why you’re the medical expert and not them so be kind with the patient’s ignorance) and no amount of skill (no two patients are the same even when they have exact same diagnosis so need to adjust the push back accordingly)

I find this analogy to be compressed wisdom

Having said that I have not found a good one that covers the confidence Felix has shown in appearing not to fear losing his job

Expand full comment
author

That's an interesting analogy, KimSia. And thanks for your comment!

Don't underestimate waiters, though! Good waiters do much more than take orders. If I learned anything from watching Ramsay's Kitchen Nightmares it's that good waiters work hard to sell specials to help the restaurant make the most of its raw ingredients, they push for certain menu items to help manage the kitchen staff's workload, and sometimes they also have to solve problems for restaurant patrons.

But I get where you're coming from.

And you're absolutely right that we're not meant to churn out features like a factory.

Unfortunately, too many company executives have turned to managing consultants for "help" running their software businesses. And those consultants have appropriated the manufacturing "lens" and applied it to software.

Lean, Kanban, Kaizen and other facets of Agile software development originated from the Toyota Production System developed in the mid-1900s for... well... factories.

And because the underlying methodologies rely on looking at organizations as factories, it's hard to escape from that paradigm.

And people who aren't familiar with the historical aspect of software development methodologies will have no idea they're influenced to see things in a factory-like way.

I find experience helps, though.

Expand full comment

> That's an interesting analogy,

Haha, thanks, Alvin! I also learned it from other people. Dave Farley of Continuous Delivery specifically.

> Don't underestimate waiters

if you mean don't underestimate new developers, i agree with you. junior devs can add new things simply by having a fresh perspective on things.

Having said that, when i said don't be a waiter, be a doctor. I meant it as an attitude to tell oneself.

There are developers who adopt a waiter mentality and those who adopt a doctor mentality.

I just think adopting a waiter mentality is not optimal.

> Toyota Production System developed in the mid-1900s for... well... factories

yes, and that analogy works to a certain extent. Software is many times more malleable than actual factory outputs like automobiles.

Analogy, by definition, is never perfectly 1:1. else it wouldn't be an analogy.

> And because the underlying methodologies rely on looking at organizations as factories, it's hard to escape from that paradigm.

i think is possible to adopt the good and suitable parts of Lean from Toyota, etc into software dev that make sense for software dev. And still not see dev teams as a feature factory.

Code has a cost. There's a cost of development and when it's live, a cost to maintain it.

if we can solve a problem without writing any code, we should really consider it if we see ourselves as problem-solvers first, and software people second.

I get that most of us got into software dev because we are enamoured with the tools and wizardry.

But, I slightly prefer the people who went into this because they are problem-solvers first and they happen to use code as tool to solve problems. Not as an ends in itself.

This sentiment by Thiago Ghisi says it better than I could.

https://twitter.com/thiagoghisi/status/1637164901817876480

Highlight is mine => https://share.cleanshot.com/d89mYYZM

I am still thinking how best to make the Felix attitude of "i don't care if I lose my job as long as I am doing the right thing" memorable for myself.

Have you tried anything useful? Did you ask Felix for advice how to be more like that? Curious

Expand full comment
author

> I am still thinking how best to make the Felix attitude of "i don't care if I lose my job as long as I am doing the right thing" memorable for myself.

>

> Have you tried anything useful? Did you ask Felix for advice how to be more like that? Curious

So... this might sound bold and foolish... and I might live to regret saying this, but what the heck YOLO 😅... I'm not afraid of losing my job.

I used to fear that A LOT in the first few years of my career because a few years in, I felt like whatever I gained from university was becoming less relevant very quickly, but I still had too little work experience, and my on-the-job skills were still underdeveloped. So, that was a time when I was deeply afraid that if I lost my job, I wouldn't be able to get another (good?) one.

But the thing is... I've been developing software professionally for over a decade across 5 industries for companies big and small. I'm far from the best out there, but I've also been around long enough to know there are plenty of companies out there I could help. I also have a handful of industry connections who know I deliver quality work. So, if I lose my job, I'm confident I can find another. It might take some time, it might not be my ideal job, and I might have to change my lifestyle a bit, but I'm confident I can land one.

And if I can't land a job, I have some runway to try freelancing and starting my own business of some sort. That's something I've been wanting to do too. And I've met plenty of people online who could help me launch something like that.

And if I can't do that, I'm sure I can find success in another field. Software development has taught me how to learn, practice, and refine a shit-ton of skills on the job. Because I did it before, I'm confident I could do it again if I really had to do so in a different field. This is actually why I had no fears diving head-first into audio and video editing for my new YouTube videos.

It's kind of like what YOU said, if software development taught me anything, it's how to be comfortable with and solve problems with lots of unknowns. It's a mentality I talked about in Dive 24 (https://newsletter.belowthesurface.top/p/dive-24-why-you-need-to-start-before). I did a better job there than here. Sorry about that. 😜

And the way I see it is: if I lose my job, isn't that just a problem with some unknowns? Isn't that an example of something software development taught us how to deal with on a daily basis?

That's how I see it, anyway.

Expand full comment

> I've been developing software professionally for over a decade across 5 industries for companies big and small. I'm far from the best out there, but I've also been around long enough to know there are plenty of companies out there I could help. I also have a handful of industry connections who know I deliver quality work. So, if I lose my job, I'm confident I can find another

I have something similar as well. Emotionally though, while the volume of the fear fluctuates (can be loud or soft from time to time), it never goes away.

I guess this is the best that I can hope for now. Ha!

> Dive 24 (https://newsletter.belowthesurface.top/p/dive-24-why-you-need-to-start-before). I did a better job there than here. Sorry about that. 😜

Oh no worries. I actually prefer the story of Felix here for some reason 🤷🏻‍♂️

Expand full comment