CodeGym /Kursy /Python SELF PL /Tworzenie produktów

Tworzenie produktów

Python SELF PL
Poziom 64 , Lekcja 0
Dostępny

1.1 „Ludzie już się nie rodzą, są hodowani”

No cóż, skoro wciąż tu jesteście, kontynuujmy. „I pokażę ci, jak głęboka jest królicza nora” ©

Pozwólcie, że opowiem wam, jak przebiega proces tworzenia produktu - przejdziemy przez kolejne etapy od samego wierzchołka globalnego poziomu do najniższego - pisania kodu. Myślę, że czeka was kilka interesujących odkryć...

Nowoczesne produkty IT już się nie pisze, są tworzone. Składa się je z części bibliotek, frameworków, zewnętrznych programów i produktów lub w ogóle używa się zdalnych płatnych lub darmowych serwisów internetowych.

Współczesny produkt to prawdziwe zoo technologii, serwisów, rozwiązań i procesów. Część pracy wykonują ludzie, część jest zautomatyzowana, a całe 90% wykonywane jest przez chmurowe serwisy w data-centrach. Świat nie jest już taki, jak dawniej.

Ale pierwsze, co zauważycie - to ciągłe zmiany. Już nie piszecie programów, wnosicie w nie zmiany.

1.2 Ciągłe zmiany

Przyjdziecie do pracy i dołączycie do zespołu 20 osób, który już 5 lat pracuje nad produktem. Teraz użytkownikom jest dostępna jego 7 wersja, a waszym zadaniem będzie wprowadzać do tego produktu zmiany. Małe, żeby nie odstraszyć obecnych aktywnych użytkowników.

I to nie będzie łatwe, bo produkt już działa. Ma klientów, a oni płacą pieniądze. Dlatego niczego nie można zepsuć. Wprowadzanie zmian do już działającego produktu jest kilkakrotnie trudniejsze niż do nowego. Są do tego specjalne standardy, protokoły migracyjne i narzędzia. Przypomina mi się od razu anegdota:

Spotykają się dwaj starzy przyjaciele: jeden został mechanikiem, drugi - chirurgiem... Każdy ma swoje życie, troski, radości... Opowiadają sobie o wszystkim, i wtedy rozmowa schodzi na temat zarobków. Mechanik mówi: "No, trzydzieści tysięcy na miesiąc zarabiam i jestem zadowolony, a ty ile?". Kardiochirurg mówi: "No, mniej więcej sto tysięcy za operację...". Wtedy mechanik się zainteresował: "Ciekawe, dlaczego taka wielka różnica? Przecież robimy podobne rzeczy - części zamieniamy". A chirurg mu mówi: "No to chodźmy do samochodu, uruchom...". Mechanik uruchamia auto, chirurg otwiera maskę i mówi do mechanika: "Widzisz, silnik działa? Wymień! :)"

Nawet jeśli zdarzyło się cud, i wasz zespół cały rok pisał produkt od zera i dopiero po tym go wypuścił, wiecie, co stanie się potem?

Jeśli wasz produkt odniesie sukces, właściciel produktu będzie chciał go rozwijać. Wypuścić nową wersję, dodać jakąś funkcjonalność. Albo chociaż przeprowadzić kilka eksperymentów. I wiecie, co potem nastąpi? Zmiany.

1.3 Wartość produktu

Z punktu widzenia nowoczesnego rozwoju, wartość ma tylko ten kod, który już został wypuszczony, i ta funkcja, z której korzystają użytkownicy. Jeśli napisaliście kod, on gdzieś jest przechowywany, działa, ale nie jest używany przez ludzi, to jego wartość jest bliska zeru. Dlatego cały kod powinien jak najszybciej trafić na production.

Wasz kod powinien przejść przez takie etapy:

  • Napisaliście go i upewniliście się, że działa.
  • Wasz TeamLead go przejrzał i dodał do głównej gałęzi w Git.
  • Testy podczas kompilacji wykazały, że nic ważnego nie zepsuliście.
  • Testy integracyjne pokazały, że produkt działa, jak należy.
  • Tester sprawdził ten kod i dał zielone światło na release.
  • Następnie trzeba zbudować nową wersję produktu i wypuścić ją na serwerze.
  • Nową wersję produktu trzeba zapakować w Docker Images i wypuścić.
  • Być może trzeba będzie uruchomić skrypty migracyjne i wprowadzić zmiany w bazie danych i/lub innym oprogramowaniu.
  • Następnie trzeba zbierać logi na serwerze, żeby upewnić się, że wszystko działa poprawnie.
  • W przypadku sytuacji awaryjnej, jeśli coś zepsuliście, trzeba wycofać kompilację, przywrócić poprzedni stan bazy danych i nie stracić tych działań, które zrobili użytkownicy, korzystając z niestabilnej wersji produktu.

W większości firm te zadania są teraz rozwiązane: wprowadzone są nowe procesy, zatrudnieni są specjalni ludzie, wprowadzone są specjalne protokoły bezpieczeństwa i standardy kontroli jakości.

Im większa firma, tym mniej czasu mija od napisania kodu do momentu, jak trafi on na production i stanie się wartością - zacznie przynosić korzyść ludziom.

W większości firm kod przechodzi przez ten proces w ciągu dwóch tygodni. Jednak są firmy, które robią release co tydzień lub nawet codziennie. Szczególne perełki - kilka razy dziennie.

Napisany kod nic nie jest wart. Wartość przynosi tylko kod, który działa na production.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION