Automate everything is a scam

Definicja

  • https://pl.wikipedia.org/wiki/Automatyzacja
    • znaczne ograniczenie lub zastąpienie (proces zastępowania) ludzkiej pracy fizycznej i umysłowej przez pracę maszyn działających na zasadzie samoregulacji i wykonujących określone czynności bez udziału człowieka (czyli samoczynnych)
  • https://pl.wikipedia.org/wiki/Automatyzacja_marketingu
    • prowadzenie działań marketingowych z zastosowaniem specjalnego oprogramowania oraz narzędzi służących do usprawnienia procesów sprzedażowych

Przykłady

  • dockeryzacja aplikacji
  • deploy przez git push (heroku)
  • skrypt wywołujący trzy komendy w bashu
  • w projekcie - automatyczne wydawanie faktur
  • testy automatyczne
  • task od Wernera - "zróbcie mi taką aplikację że wrzucam Excela i mi się tu wszystko liczy"

Koszt

Koszt - przykład

Nowa appka expressowa vs ta sama appka w dockerze

  • dla mnie, na początku - lekka przewaga "gołej" appki
  • dla mnie, jak dodaję zależność - remis
  • dla buildów - remis (mamy CI)
  • dla nowego deva - 10 minut dla dockera
  • czasem stary dev to nowy dev
  • total: 10 minut / "nowy" dev

 

  • załóżmy 1 "nowego" deva na miesiąc
  • projekt trwa pół roku
  • docker zaoszczędził godzinę
  • ile kosztuje ten docker?

Przykład cd.

  • Liczby z dupy - to prawda, ale
    • dość szczere
    • oddają nowe odczucia
    • przynajmniej jakieś są

 

  • Odwracając sytuację - nigdy nie dostałem liczb na ryj, gdy mówimy o automatyzacji

Winowajca

Brak metryk

Brak metryk = automatyzacja zła?

  • nie
  • przykłady:
    • testy automatyczne
    • budowanie na CI

Problem 1

It ain't gonna automate itself

Koszt 2

 

Leaky abstractions

  • The Law of Leaky Abstractions
    • All non-trivial abstractions, to some degree, are leaky
  • The Law of Leaky Automation?
    • tylko happy path - "dlaczego CI zdechł?"
    • error messages
    • etc.

Leaky abstractions

  • even as we have higher and higher level programming tools with better and better abstractions, becoming a proficient programmer is getting harder and harder
  • Automation adds to tech stack.
    • TAM first sprint
    • Docker, Semaphore, Airbrake, testy (mutation, unitm, acceptance), linter, TypeScript, express
    • W pierwszym sprincie bardzo mało kodu
      • Jestę DevOpsę?

Leaky abstractions

  • The abstractions save us time working, but they don’t save us time learning
  • Automatyzujmy tylko to, co znamy
  • Widoczność > automatyzacja
 

Problem 2

The cost of maintenance is pain

Podsumowanie

Automatyzacja kosztuje:

  1. Koszt automatyzacji rzadko uzasadnia jej sens
    • Rozwiązanie: metryki
  2. Często pomijany i duży koszt automatyzacji to koszt "over time"
    • Rozwiązanie: widoczność w projekcie
 
Made with Slides.com