Charity Majors Profile picture
Feb 6 12 tweets 3 min read
Close! "If you're considering replacing $(working tool) with $(different tool for same function), don't do it unless you expect a 10x productivity improvement"

cvs to git? ✅
mysql to postgres? ❌
puppet to chef? ❌
redhat to ubuntu? ❌
The costs of ripping and replacing, training humans, updating references and docs, the overhead of managing two systems in the meantime, etc -- are so high that otherwise you are likely better off investing that time in making the existing solution work for you.
Of course, every situation is unique. And the interesting conversations are usually around where that 10x break-even point will be.

The big one of the past half-decade has been when to move from virtualization to containerization.
You'd think it would have been driven by technical reasons -- build times, security, quality and range of available tooling.

But no; from where I sit, it seems to have been driven by circular human reasons. K8s is the cool thing to work on, the cool people want to work on k8s...
We are only just about now reaching the point where I would have argued that a new startup should start on k8s on the technical merits, but the staffing and skill distribution is way out in front.

A similar thing happened with golang a little bit earlier.
This often comes up in the context of observability. Does a company need true observability, with high cardinality, high dimensionality and explorability, or can they stumble along fine with prometheus, metrics and logging and the like?
It's definitely true that the more "modern" your infra stack is (multiple services, storage systems, code running on third parties, etc) the more non negotiable observability becomes.

There is a point past which you literally cannot do your job without it.
Whereas if you run on a basic LAMP stack, with a low degree of infra dynamism, you can handle things quite well with metrics and logs.

And you SHOULD try to keep things as simple as possible, for as long as possible.
But making these decisions wisely is never about how many machines you have or what software they are running. Those are just heuristics that help us estimate complexity.

In the end, it always comes down to where your people are spending time and energy and getting frustrated.
If your team is running a massive fleet of microservices that are well understood using only metrics and logs -- if they can ship changes swiftly, onboard new team members, and spend little time debugging, reproducing or recovering from errors -- you don't need observability.
Conversely, if they are spending their time staring at code and trying to extrapolate behavior, adding and deleting bursts of print statements, or if your customers are suffering, then you need instrumentation and o11y. Even if you're running the world's simplest architecture,
This reminds me of one of my favorite tool replacement stories that broke all the rules -- when FB moved from git to mercurial, back in 2014.

You rarely want to move from a well-known, well-supported tool to one with a much smaller community. They did. engineering.fb.com/2014/01/07/cor…

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Charity Majors

Charity Majors Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @mipsytipsy

Feb 3
Maybe not "full transparency", but I think *lots* of engineers chafe at the level of detail they have access to, and wish they were looped in to decision-making processes much earlier.
One of the most common reasons people become managers is they want to know EVERYTHING. They are tired of feeling left out, or like information is being kept from them (true or no).

All they want is to be "in the room where it happens", every time it happens.
I mean, that's why I got in to management. 🙃👋 And it works! It scratches the itch. Everything routes through you. It feels great...for you.

But you still have a team where people feel like they have to become managers in order to be included and heard.
Read 10 tweets
Jan 30
i'm only just seeing this now, but @copyconstruct knocks it out of the fucking park in this post. copyconstruct.medium.com/know-how-your-…

cindy and i have talked many times about the kind of blowback one gets for posting these kinds of things; writing it anyway takes guts, and nerves of steel.
@copyconstruct there's no shame in wanting power and influence to advance your agenda, if you're trying to fix things or improve complex situations. in fact, i think it's a moral imperative for people who care to not cede the space to those who ONLY want power and influence.
twitter is full of critics who have never written a line of production code or managed more than a pet rabbit. and that's fine.

but if you care about enacting real change more than being Right On The Internet, that means working through the vehicle of imperfect organizations.
Read 9 tweets
Jan 29
i completely agree. the more a company tends to talk about their diversity, transparency, etc, the more suspicious i get about how much they doth protest.

especially when they start conducting marketing campaigns around pay-to-play lists for "best employer" awards. 🙄
the best thing about real diversity (and real transparency) is that you don't have to THINK about it all the fucking time. it's not ✨broken✨ and in your face infuriating you with its brokenness all the time.
the most insidious thing about teams that aren't diverse is the constant cognitive and emotional load borne by those who happen to be different.

on a diverse team, people are relieved of most of that tax, and can just focus on being who they are doing what they do.
Read 4 tweets
Jan 29
by request: a long list of tell-tale symptoms and questions to help you sort out the companies who are earnestly trying (but imperfect) from the ones that are shiny on the outside, shitholes on the inside.

charity.wtf/2022/01/29/how… (add yours below)
most importantly, remember no sorting system is perfect, and you're going to take a bad swing or two at some point.

you'll know when you're a week or two in and it just doesn't feel right. trust your gut. leave the job, take another swing. you don't owe them a year of your life.
also, it doesn't have to mean the company itself is toxic or terrible or unredeemable. it might just not be a great fit for you.

it's like any other relationship. you need compatibility to be happy, but that's a deeply personal thing. what works for others may not work for you.
Read 4 tweets
Jan 27
i have a blog post pending on how to tease out the companies who are earnestly trying from those saying all the right things but rotten inside,

but i'll tackle their second question 👇 here. how do you know when it's a lost cause, or when you should persevere? 🧵
First: if it's sapping your essence over an extended period of time, just leave. You're no good to us dead.
It's worth persevering through some difficult times when you:

* believe in the mission, that the world is a better place if it succeeds
* have real power to effect change, formally or informally
* can see green shoots, or the wheels beginning to turn, however slowly
Read 9 tweets
Jan 26
*earn* is the operative word there. you can't just tell your reports it's safe; they're just going to assume you're setting traps for them.

you have to earn it by building trust and creating safety over time. they're paying attention to your actions, not your words.
and part of that means consistently giving them feedback, constructive as well as praise.

*ask* how they prefer to receive feedback. give it gently, give it timely, give with a true spirit of "trying to help each other become better". don't let things snowball into badness...
and *solicit* their feedback for you with equal vigor. solicit often, receive it gracefully, show that you heard it and are making changes.

trust is built in part by being willing to say awkward things, by showing up to discuss the hard things with care and sensitivity.
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

:(