Alessandro Ruzzon retweetledi
Alessandro Ruzzon
1.9K posts

Alessandro Ruzzon
@aleruz
Agile Software Engineer @dynatrace #agile #java #groovy #spring #testing #refactoring
Katılım Mart 2009
618 Takip Edilen131 Takipçiler
Alessandro Ruzzon retweetledi

Engineering teams are often faced with competing paths forward and they can’t choose one.
Multiple discussions may have already happened, and they have analysis paralysis. It’s important then for a leader to help them choose by breaking the tie.
Here’s how I’ve done it:
1/ When faced with two roughly equivalent decisions, just pick one and go with it
Most* decisions are reversible. You waste more time debating it than just saying “we are going to go with XYZ.”
This is my decision making framework in a nutshell, and it’s not engineering specific.
2/ When you make a call like that though, you have to justify your decision
In a healthy team, it’s as simple as “Both options are very compelling. In the interest of moving forward, I’ve chosen XYZ. Let’s try this approach and we can work to mitigate any concerns that arise.”
3/ Make sure that you have actually heard from everyone, and that everyone feels heard
People are completely okay with their choice not getting picked IF they feel heard.
If you dismiss them without hearing their ideas / concerns, you’re building an unhealthy culture.
4/ Mildly controversial, but sometimes it’s more important to have a healthy happy team than to be right
When some people face a long string of what they perceive as losses, their performance / mental health will suffer.
You may find that this a factor in how you break the tie.
5/ Healthy teams can disagree and commit
Individuals are allowed to disagree while a decision is being made, but that once a decision has been made, everybody must commit to it.
It’s important that your team is capable of this. If not, work on that first.
6/ Most decisions are either unimportant in the grand scheme of things, or reversible, or iterable so you start at A & eventually get to B
It’s more important to get started in a general direction & make adjustments, than to have every decision nailed down before getting started.
7/ In summary:
- just pick one
- justify the decision
- make sure everyone feels heard
- more important to be cohesive than right
- work on disagree and commit
- more important to get started then iterate, than to get everything right in the first go
- caveats apply
English
Alessandro Ruzzon retweetledi

How to improve statement caching efficiency with IN clause parameter padding
vladmihalcea.com/improve-statem…

English
Alessandro Ruzzon retweetledi

An excellent article from @clare_liguori.
Dive into the CI/CD architecture we use at Amazon.
Many good lessons to learn about git branch management and staged deployments to multiple Regions.
A good read for the upcoming week-end!
#Trunk-based_development" target="_blank" rel="nofollow noopener">aws.amazon.com/builders-libra…

English

@GergelyOrosz Biased suggestion: I would have a look at @Dynatrace : metrics with traces, casual correlation, real user monitoring and a game changing log processing with Grail, with a new very transparent and flexible pricing model.
English
Alessandro Ruzzon retweetledi

I first visited Google’s offices in San Francisco way back in 2016.
It was strange that tens of thousands of engineers were just hanging out doing nothing for a large chunk of their day.
Software engineers were biking and going to the gym. They had swimming pools. They had multiple kitchens to eat from and cuisines from all over the world. There were even kitchens that specialized in desserts.
One of the top people at Double Click had to stop our meeting to point something out to us.
He said, “Look outside; you will see the most Google thing you will ever see in your life. These people are out here running every day for a few hours.”
I thought it was strange that everything was designed to waste time, not for work.
But then it hit me.
Google hired and handcuffed all these brilliant people just so no one else could have them.
It didn’t matter that they didn’t have enough work for them. All that mattered is no one else could have them. It was their way of not being disrupted.
And it worked for a little while. But that’s over. And now everyone is worse off for it.
Even the people that got the free lunches and the midday runs are worse off for it. It can’t feel good to have accomplished very little for years. And it certainly does not feel good to be less competitive now in a very competitive job market.
And it wasn’t good for Google's shareholders. And it wasn’t any good for Google because now they are in a tough spot competitively.
But this wasn’t limited to just Google. This is the unspoken secret of all of Big Tech for the last decade.

English
Alessandro Ruzzon retweetledi
Alessandro Ruzzon retweetledi

10x engineer is a myth. 100x AI-powered engineer is more real than ever. As OpenAI winds down Codex, Microsoft announces GitHub Copilot X. I think it's almost as exciting as GPT-4 itself:
- Copilot Chat: any piece of text database will be "chattable", and codebase is no different. Don't read your code, talk to it.
- Copilot for Pull Request: improves *human collaboration*. Now GPT will accelerate not just a single dev, but entire OSS communities.
- Copilot CLI: bash is so unintuitive and awkward sometimes. No more bash, just English.
- Copilot doc: thanks to GPT-4's much longer context (32K tokens), you can fit entire docs in one go. No need to memorize any doc - simply retrieve from the prompt.
It's a bit annoying that there is a separate waitlist for each item ... I'll link them in 🧵:

English

When I talked w ~70 companies about what vendor costs they are reducing, the two most frequently mentioned was AWS/GCP and Datadog. Simply because they were usually by far the biggest spend.
Given DDG is usage based, reducing it is usually easier.
More: newsletter.pragmaticengineer.com/p/vendor-spend…
James Cowling@jamesacowling
Real monthly bills at an early-stage startup: @datadoghq: $11,386 @getsentry: $134
English
Alessandro Ruzzon retweetledi
Alessandro Ruzzon retweetledi
Alessandro Ruzzon retweetledi
Alessandro Ruzzon retweetledi
Alessandro Ruzzon retweetledi

I've seen this #antipattern working in practice pretty well:
Groundhog Day antipattern: When people don’t know why an architectural decision was made, so it keeps getting discussed over and over and over.
One solution is to use ADRs
(from Fundamentals of Software Architecture)

English
Alessandro Ruzzon retweetledi

'"Make the code as flexible as possible" up front is the opposite of the #Agile approach.' (Jason Yip).
Future-proofing is waste. You'll never need most of that "flexibility." Instead, make the code easy to refactor by making it as simple as possible.
English
Alessandro Ruzzon retweetledi

BioHome3D a 3D printed house made from 100% bio-based recyclable material (wood chips and sawdust) fastcompany.com/90829686/3d-pr…
English
Alessandro Ruzzon retweetledi
Alessandro Ruzzon retweetledi
Alessandro Ruzzon retweetledi

Why @basecamp are leaving the cloud
world.hey.com/dhh/why-we-re-…
English
Alessandro Ruzzon retweetledi









