André Staltz Profile picture
Mar 28 9 tweets 2 min read
A problem that is endemic to the whole developer community is the urge to "rewrite everything". It is the one of the most harmful practices in software engineering.

Why? (thread)
Most software in production out there is complex. Some are spaghetti code nightmares, but I believe most are somewhat decently built. Sometimes developers joining a project confuse a "complex" codebase with a "spaghetti" codebase, and they feel like throwing it away.
The feeling of throwing it away comes from the fact that they don't fully understand it, and that if it's built with tools that aren't their favorite, they feel less productive in it.
The big mistake is to assume that with the "right tools" they can rebuild the whole thing in a short amount of time.

The trap is that they are optimizing for *speed* (productivity in getting things done), while they should optimize for *distance* (amount of use cases covered).
A complex codebase in production has covered a lot of *distance*, measured in how many important corner cases it covers when serving end-users. Developers underestimate the importance of this distance A LOT.
You can run faster with your own tools, but do you know how long it will take to catch up? Also, do you know the direction to take (the "map" of all corner cases to address) or are you going to end up in a different state when you're done (causing breaking changes to end users)?
It's not all the devs fault though, managers often don't understand the nature of code, and when bringing a new developer into the team, they expect them to be productive in fixing bug and making features from day one.
Instead, new developers should be given time to simply *understand* the codebase and digest all of its complexity. You don't need to build it yourself in order to understand it, you can also just study it. Give it like 2 weeks at least. That's something managers should give devs.
If a rewrite is truly required, then do it gradually and do it in production. Don't downplay complexity that is inherent to the software's use cases.

• • •

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

Keep Current with André Staltz

André Staltz 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 @andrestaltz

Sep 14, 2021
Technology needs an alternative narrative. It has had enough influence from the culturally bankrupt empire of plastic and burgers.
RE "cultural bankrupt": you can't produce culture without free time, and north westerners are overworked so they delegate culture making to specialized companies such as Disney.
But a Disney movie is just a feature-length ad for merchandise. E.g. with Frozen, they made 100x more money with merch than with the movie box office. And anyway Frozen is "stolen culture" from Hans Christian Andersen. See forbes.com/sites/natalier…
Read 6 tweets
Mar 9, 2021
What modular open source can teach us about unlocking explosive collaboration 💥

(Thread ⬇️)
It might seem that corporate work requires managers while open source does not, but that's not true. Often, open source has management in one form or another.
Classic management, like that in many large companies, can be understood as "pre-work management". The manager has a lot of setup to do such as time and task allocation, follow ups, and even creating incentives (income, stock, or others).
Read 18 tweets
Aug 7, 2020
In acquiring services, Microsoft is a different type of tech giant than Google and Facebook.

Microsoft is a meta-platform
Google and Facebook are (mere) platforms, so when they acquired competing platform startups, they wanted to either integrate them into their platforms or shut down their services.
In contrast, Microsoft is not necessarily looking to "integrate" acquisitions into their platform. Integration requires change, and poses a risk in case users dislike the change. Microsoft has so far acquired platforms but has not necessarily integrated them.
Read 7 tweets
Jun 30, 2020
DATA ACTIVISM
Open the data, either by reverse engineering closed APIs, or crowd-sourcing the collection of evidence. Then, build frontend apps and public dashboards for that data.
I'm really impressed by this 2020 trend of putting up data on GitHub which started (?) with COVID-19 github.com/CSSEGISandData… then recently spread to covering the police abuse events in the US.
github.com/2020PB/police-…
One repository can aggregate the raw data (manual updates via PRs, or automated fetches), and other independent repositories and projects can host backend API servers as an easy interface for frontend projects. See github.com/949mac/846-bac… and pb2020gallery.netlify.app
Read 6 tweets
Jun 15, 2020
On GitHub renaming "master" to "main":
Hey, I applaud the effort to make a cultural change in the tech community. I too tweeted once (went viral) to suggest renaming blacklist to blocklist ... but!

GitHub applying this globally by default misses nuance in other cultures. Thread:
In Brazil, a country that has had 8x (think about that number!) more African-originating slaves than USA, the word for "slavery master" is "senhor", which reminds us a lot the word "senior". Yet we in tech community use "senior developer" quite a lot.
Should we **globally** rename all/most job positions to avoid the term "senior" just because in Brazil it can remind people of slavery? No, not globally. Yes we should rename it for Brazilians. How would you, an American, feel?

Which brings me back to "master". It's US-centric.
Read 8 tweets
Jan 5, 2020
Since I forced myself not to share anything about iOS development while I was working on Manyverse iOS, now I can finally tweet some stuff.

TL;DR Apple is excessively picky about everything. This is a good thing and a bad thing.
When I made an Apple developer account, I received a literal PHONE CALL from an Apple employee who had some questions about my account and my intent. So weird.
During the review process, they wanted "a test username and password to login". This, along with the fact that you can't install apps without internet connectivity, speaks a lot about entrenched assumptions they make about the tech world. An off grid social net challenged that.
Read 8 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!

Follow Us on Twitter!

:(