Czy programowanie można porównać do ugniatania ciasta?

Tworzenie kodu w javascript może trwać krótko jak czas przygotowania ciastka i kawy?

Czy proces ‘wypiekania’ (programowania) może trwać 10 Minut?

Rodzi się wiele pytań, czy odpowiedzi mogą być proste?

Produkcja

Contents

Piece, mieszalniki, formy, pozwalają na skrócenie czasu tworzenia, pozwalając na kontrolę jakości.

Czy jednak dotyczy to każdego projektu?

  • Czy każda automatyzacja produktu pozwala na taki sam rezultat jak smak ręcznie wyrabianego ciasto?
  • Czy ktoś kto konsumuje taki program w ogole tego oczekuje?
  • Czy jakość dostarczenia i podania nie jest często ważniejsza, niż sama jakość wyrobu?

Być może to smutne, bo okazuje się, że kelner bywa istotniejszy niż sam produkt!

Kucharz vs Kelner

  • Jednak czy to nie od kelnera zależy jakość?
  • Co jest ważniejsze, od czy wystarczającym wskaźnikiem jest wysokość napiwku?
  • Czy wystarczające jest to by o czasie podać potrawy o jakiejkolwiek jakości?

Przykładem może być jedna z sieci barów lub restauracji, któa niskim kosztem wykonuje towary o takiej samej jakości, czyli to czego oczekują klienci.

Ten przykład pokazuje, że klienci godzą się na tę sam, znany produkt, mimo, że nie jest on najlepszy.

Dlatego Kucharz schodzi na dalszy plan, okazuje się, że kelner też może być (przy okazji) ‘kucharzem’.

Ponieważ sam proces przygotowania jest sprowadzony do pobierania i dodawania składników, resztę wykonuje maszyna.

Backend

Czasem mam wrażenie, że backend to strona, której nie rozumieją i nie chcą poznać użytkownicy i klienci.

Podobnie jest ze sprawami w restauracji, mało kogo interesują sposoby wypiekania, akcesoria i cały osprzęt konieczny do wytworzenia potrawy, najczęściej liczy się sam wygląd, efekt.

Jakość

To jak te ryby czy inne skladniki były wcześniej patroszone może mieć wpływ na smak, jednak często sam proces/smak nie jest tak istotny, gdyż liczy się czas dostarczenia w pierwszej kolejności.

Wielu narzeka na jakość, gdy jest zbyt niska.

Miliony są zadowolone z tej samej, znanej im jakości.

Dlaczego?

Gdyż służy tylko karmieniu żołądków a nie cieszeniem podniebienia.

To dość podstawowa, niewyszukana rola, ale pożądana tam, gdzie potrzeby są proste.

Mając dostęp do klientów, którzy wiedzą czego chcą, można bardzo szybko rozwinąć biznes.

Proces

Może warto spojrzec na sam proces wytwarzania jako wyzwanie, by implementować szybciej, testując skuteczniej.

Tak by zawsze otrzymac ten sam, niezbyt wyszukany, ale i prosty w naprawie kod, ktory można podać każdemu.

Na pewno życzylibyśmy sobie wyzwań, ale gdy nie ma chleba, to nie myślimy o ciastach i wykwintnych daniach, bo umieramy z głodu!

Wypieki

Gdy myślę o programowaniu jak o ugniataniu ciasta, nie mam na mysli ani ciasteczek, ani CakePHP, myślę o tym jako o procesie w ktorym potrzebne sa skladniki i rezultatem może być równie dobry efekt jak wyborne ciasto.

Być może robienie za kazdym razem tego samego ciasta nie jest receptą na kariere jako programista jeśli mowa o tym samym efekcie to lepszym przykładem byłaby jakość wzorca a nie sam kod.

W przypadku procesu pieczenie kontrolowaneego przez piekarza, powtarzalność może oddać ten sam smak, jakość produktu, wyglą zewnętrzny.

Czy smakiem programu można nazwać tę samą zrozumiałą konsystencję, architekturę?

Ta sama architektura, ten sam sposób implementacji, gdzie oczekiwany efekt zostaje osiagnięty tym samym sposobem implementacji?

Formy

Być moze warto wykorzystywac formy = frameworki

Tutaj przydatne sa frameworki jak wspomniany cake php, laravel, czy symfony.

Prototypowanie

Ugniatanie to też pewna część procesu wytwarzania, z jednej strony podobna do prototypowania masy.

Jednak nie do prototypowania ciasta, gdyż ją definiują składniki.

W programowanie,  zwłaszcza na poczatku cyklu wytwarzania, gdzie jest wiele zmiennych a nie do końca jasny jest oczekiwany efekt, stąd prototypowanie to część procesu wytwarzania koncepcji.

Proces ugniatania/prototypowania nie może trwać zbyt długo, czasem lepiej zamiast smacznego tortu robionego latami, lepiej skupić się na upieczeniu zwykłego ale udanego wypieku.

Lepszy chleb dziś, niż ciasto jutro

Cchleb, ktory pozwoli przetrwac do czasu aż pyszne ciasto powstanie.

Być moze warto czasem spojrzec z perspektywy znanej, jak wypiekanie, gdzie wszystko już zostało określone.

Wnioski

W powyższym artykule chciałem przedstawić inną perspektywę, gdyż w procesie programowania abstrakcyjność powinna dotyczyć tylko pewnych części kodu a nie całego procesu.

Gdy proces wytwarzania ma wpływ na jakość i czas wytwarzania.

Na realne a nie abstrakcyjne wartośći jak czas i pieniądz.

Warto patrzeć trzeźwo na poza-kodowe dane, które powstają przy okazji realizacji projektu, tak by tylko część powstającego kodu pozostała abstrakcyjna, a nie termin realizacji.

 

Tom Sapletta
Facebooktwitterredditpinterestlinkedinmail

Author: Tom Sapletta

Łączę doświadczenie z nowymi technologiami. Od 10 roku życia jestem pasjonatem komputerów i programowania. Moim pierwszym (mikro)komputerem był ZX-Spectrum a językiem programowania: Basic. Od 2010 roku programuję zawodowo, objektowo i funkcjonalnie w architekturach monolitycznych i mikro-usługowych. Obecnie tworzę architekturę ekosystemów dla liderów rynku w firmie Softreck.