METABYTE
Inapoi la articole

Out of the Tar Pit: cum acum 18 ani ni s-a spus că principala problemă a software-ului este complexitatea, dar n-am ascultat

Articolul cult din 2006 explică de ce proiectul tău seamănă cu o groapă de smoală și oferă o soluție – dar cine o ascultă?

15 mai 20262 min de citit
Out of the Tar Pit: cum acum 18 ani ni s-a spus că principala problemă a software-ului este complexitatea, dar n-am ascultat

În 2006, când iPhone-urile nici nu existau, iar Agile era în fașă, Ben Moseley și Peter Marks au publicat o lucrare care trebuia să fie Biblia dezvoltatorilor. „Out of the Tar Pit” nu e despre dinozauri, ci despre cum ne îngropăm singuri proiectele într-o mlaștină de complexitate.

Autorii au făcut autopsia unui proiect software tipic și au găsit cadavrul: cauza morții – „accidental complexity”, adică complexitatea pe care ne-o creăm singuri. Ați încercat vreodată să descifrați un cod scris „în grabă” acum trei ani? Exact despre asta e vorba. Moseley și Marks susțin că singura cale de a ieși din groapă e să reduci complexitatea la minimum, folosind programare funcțională și limbaje simple.

Bineînțeles, au trecut 18 ani, am primit Kubernetes, microservicii și 47 de straturi de abstractizare. Se pare că articolul a fost citit, dar s-a decis: „Hai să facem invers”. Și acum ne înecăm în fișiere YAML, ca într-o groapă de smoală.

Ce propuneau autorii?

  • Eliminarea efectelor secundare (da, fără mutații).
  • Renunțarea la gestionarea explicită a stării.
  • Folosirea specificațiilor declarative.

Sună ca un rai pentru dezvoltatori, nu? Dar în schimb am primit Redux, care e el însuși un univers de complexitate.

Comentariul echipei METABYTE: Și noi am citit articolul și am decis că complexitatea nu e normală. Proiectele noastre sunt construite astfel încât codul să fie înțeles și peste un an, nu ca o „IKEA fără instrucțiuni”. Deși uneori vrem să adăugăm câteva straturi de abstractizare – doar ca să ne simțim arhitecți.

URMATORUL PAS

Ti-a placut abordarea?

Aplicam aceleasi principii in proiectele clientilor: AI, automatizari, produse care nu se sting dupa lansare.