, 6 tweets, 1 min read
My Authors
Read all threads
This is a thread about good software design.

— Because we need more of it, not less —

🧵👇
A fundamental characteristic of good software is its ability to change.

You can also call this "flexibility."

You want your software to be flexible, to bend under pressure.

This means that you can handle —with relative simplicity— any changes that come your way.

👇
Software is not static:

▫️Ideas evolve
▫️Complexity increases
▫️Users become more sophisticated
▫️Competitors show up
▫️Libraries get deprecated
▫️New technology becomes available
▫️Team members go. Others come

Change is the only constant you'll have to face at every step.

👇
Knowing the inevitability of change, always ask yourself:

— How long would it take to reverse this decision?

If the answer scares you, you should get back to the drawing table.

You want to ensure there's always a way to reverse course.

👇
A good design that provides the necessary flexibility is also called a "reversible design" (because you can reverse any major decision you made. Duh!)

Achieving reversibility is about abstractions, decoupling, reducing duplication, among other good practices.

👇
Finally, building flexibility into your code comes at a cost. You need to find the proper balance and decide how much you want to invest in your future.

(Hi YAGNI folks!)

As a rule of thumb, try to stay away from the extremes: neither too much nor too little flexibility.
Missing some Tweet in this thread? You can try to force a refresh.

Keep Current with Santiago

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!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

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.00/month or $30.00/year) and get exclusive features!

Become Premium

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

Donate via Paypal Become our Patreon

Thank you for your support!