SlideShare a Scribd company logo
Jak uchronić Twój piękny kod
przed destrukcyjnym wpływem klienta
Chris Ozog - Codesushi CTO
Agenda:
● Coś o mnie...
● Żaden kod nie jest pisany z myślą o tym, że będzie zły
● Czy leci z nami pilot? Ty tworzysz kod czy Twój klient?
● I co dalej? Czyli trochę o odpowiedniej komunikacji i
jasnym przekazie!
● Droga miękka - odpowiedni mindset
● Droga twarda - narzędzia które nam w tym pomogą
● Nie od razu Rzym zbudowano! Czas na refactoring to czas
na wagę złota
● Podsumowanie
Coś o mnie...
● Od ponad dekady twórca aplikacji
webowych
● Uzależniony od czystego kodu
● Lider techniczny w Codesushi
● CodeReviewer z zamiłowania
● Filozof i Developer w jednym…
co gorsze, jest to udokumentowane dwoma dyplomami
Żaden kod nie jest pisany
z myślą o tym, że będzie zły
● Miłe złego początki
● Zmiany
● Zmiany do zmian
● Zmiany do zmian, do zmian
Ty tworzysz kod czy Twój klient?
● To nie klient pisze kod, tylko Ty!
● W pewnym momencie popełniamy
pierwszy grzech - zaniedbanie
● I potem jest już tylko gorzej...
I co dalej? Czyli trochę o odpowiedniej
komunikacji i jasnym przekazie!
● Rozpacz i obwinianie!
● Ale czy można inaczej?
● Dwie drogi miękka i twarda?!
Droga miękka - gdy klient
ciągle zmienia zdanie…
● Programista niezłomny i PM wyklęty
○ Nie tędy droga
● Złoty środek
○ Rozmowy trójstronne : klient - PM - dev team
○ Planowanie powinno uwzględniać refactoring
● Droga na pół twardo
○ SOLID code
○ Code review - najlepiej zrobione przez człowieka spoza projektu
Droga twarda - czyli narzędzia,
które nam w tym pomogą
● PHP Code sniffer
● PHP Mess detector
Podsumowanie:
● Zły kod to zwykle nasze dzieło
● Aby solidnie zabezpieczyć się przed złym kodem należy:
○ Komunikować się odpowiednio z klientem
○ Przewidzieć czas na refactoring
○ Wprowadzić jasne zasady tworzenia oprogramowania np.
SOLID
○ Code Review robione przez osobę spoza projektu
○ Wdrożenie narzędzi PHP Mess detector i PHP Code Sniffer
Dziękuję za uwagę :)
e-mail: hello@codesushi.co
www: codesushi.coKrzysztof Ożóg
Codesushi CTO

More Related Content

Similar to Jak uchronić Twój piękny kod przed destrukcyjnym wpływem klienta | Codesushi

Kurzor - wprowadzenie firmy / Kurzor - company introduction (in polish)
Kurzor - wprowadzenie firmy / Kurzor - company introduction (in polish)Kurzor - wprowadzenie firmy / Kurzor - company introduction (in polish)
Kurzor - wprowadzenie firmy / Kurzor - company introduction (in polish)
Marek Gach
 
Redesing serwisu Morizon.pl
Redesing serwisu Morizon.plRedesing serwisu Morizon.pl
Redesing serwisu Morizon.pl
3camp
 
Równoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | CodesushiRównoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | Codesushi
Krzysztof (Chris) Ozog
 
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
PROIDEA
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząć
monterail
 
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3
Piotr Kmita
 
4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...
4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...
4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...
PROIDEA
 
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
PROIDEA
 
Gdzie diabeł nie może tam Agile pośle
Gdzie diabeł nie może tam Agile pośleGdzie diabeł nie może tam Agile pośle
Gdzie diabeł nie może tam Agile pośle
Tomasz Tomaszewski
 
Bee Talents - Jak pracujemy (2018)
Bee Talents - Jak pracujemy (2018)Bee Talents - Jak pracujemy (2018)
Bee Talents - Jak pracujemy (2018)
Marta Kamińska-Królak
 
User Experience w agencji
User Experience w agencjiUser Experience w agencji
User Experience w agencji
Maciej Lipiec
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędów
Michal Lukaszewski
 
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując dług
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując długRefactoring - Jak pozostać przy zdrowych zmysłach, redukując dług
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując dług
Max Małecki
 
Code Review budujące relacje w zespole
Code Review budujące relacje w zespoleCode Review budujące relacje w zespole
Code Review budujące relacje w zespole
Maciej Mortek
 
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
Fundacja Rozwoju Branży Internetowej Netcamp
 
ProductTank warsztat OKR - Objectives & Key Results
ProductTank warsztat OKR - Objectives & Key ResultsProductTank warsztat OKR - Objectives & Key Results
ProductTank warsztat OKR - Objectives & Key Results
ProductTank Warsaw
 
Mity, które blokują Twoją karierę
Mity, które blokują Twoją karieręMity, które blokują Twoją karierę
Mity, które blokują Twoją karierę
Piotr Horzycki
 
Trzy kroki do Zgodności z BIM (Odcinek 08)
Trzy kroki do Zgodności z BIM (Odcinek 08)Trzy kroki do Zgodności z BIM (Odcinek 08)
Trzy kroki do Zgodności z BIM (Odcinek 08)
Clive Jordan - fighter of Evil BIM
 
Ślepe zaułki designu, czyli jak przestałem się bać i pokochałem preprodukcję.
Ślepe zaułki designu, czyli jak przestałem się bać i pokochałem preprodukcję.Ślepe zaułki designu, czyli jak przestałem się bać i pokochałem preprodukcję.
Ślepe zaułki designu, czyli jak przestałem się bać i pokochałem preprodukcję.
Artur Ganszyniec
 
Ale o co chodzi?
Ale o co chodzi?Ale o co chodzi?
Ale o co chodzi?3camp
 

Similar to Jak uchronić Twój piękny kod przed destrukcyjnym wpływem klienta | Codesushi (20)

Kurzor - wprowadzenie firmy / Kurzor - company introduction (in polish)
Kurzor - wprowadzenie firmy / Kurzor - company introduction (in polish)Kurzor - wprowadzenie firmy / Kurzor - company introduction (in polish)
Kurzor - wprowadzenie firmy / Kurzor - company introduction (in polish)
 
Redesing serwisu Morizon.pl
Redesing serwisu Morizon.plRedesing serwisu Morizon.pl
Redesing serwisu Morizon.pl
 
Równoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | CodesushiRównoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | Codesushi
 
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząć
 
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3
Czy designerzy powinni uczyć się kodować - Dribbble Warsaw #3
 
4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...
4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...
4Developers 2015: Jak przekonać managera, że czas na refaktoring jest potrzeb...
 
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
 
Gdzie diabeł nie może tam Agile pośle
Gdzie diabeł nie może tam Agile pośleGdzie diabeł nie może tam Agile pośle
Gdzie diabeł nie może tam Agile pośle
 
Bee Talents - Jak pracujemy (2018)
Bee Talents - Jak pracujemy (2018)Bee Talents - Jak pracujemy (2018)
Bee Talents - Jak pracujemy (2018)
 
User Experience w agencji
User Experience w agencjiUser Experience w agencji
User Experience w agencji
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędów
 
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując dług
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując długRefactoring - Jak pozostać przy zdrowych zmysłach, redukując dług
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując dług
 
Code Review budujące relacje w zespole
Code Review budujące relacje w zespoleCode Review budujące relacje w zespole
Code Review budujące relacje w zespole
 
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
 
ProductTank warsztat OKR - Objectives & Key Results
ProductTank warsztat OKR - Objectives & Key ResultsProductTank warsztat OKR - Objectives & Key Results
ProductTank warsztat OKR - Objectives & Key Results
 
Mity, które blokują Twoją karierę
Mity, które blokują Twoją karieręMity, które blokują Twoją karierę
Mity, które blokują Twoją karierę
 
Trzy kroki do Zgodności z BIM (Odcinek 08)
Trzy kroki do Zgodności z BIM (Odcinek 08)Trzy kroki do Zgodności z BIM (Odcinek 08)
Trzy kroki do Zgodności z BIM (Odcinek 08)
 
Ślepe zaułki designu, czyli jak przestałem się bać i pokochałem preprodukcję.
Ślepe zaułki designu, czyli jak przestałem się bać i pokochałem preprodukcję.Ślepe zaułki designu, czyli jak przestałem się bać i pokochałem preprodukcję.
Ślepe zaułki designu, czyli jak przestałem się bać i pokochałem preprodukcję.
 
Ale o co chodzi?
Ale o co chodzi?Ale o co chodzi?
Ale o co chodzi?
 

More from Krzysztof (Chris) Ozog

Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Krzysztof (Chris) Ozog
 
21st century problem… the cost of it department!
21st century problem… the cost of it department!21st century problem… the cost of it department!
21st century problem… the cost of it department!
Krzysztof (Chris) Ozog
 
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
Krzysztof (Chris) Ozog
 
Parallel development of Web Apps | Codesushi - Gliwice 2017
Parallel development of Web Apps | Codesushi - Gliwice  2017Parallel development of Web Apps | Codesushi - Gliwice  2017
Parallel development of Web Apps | Codesushi - Gliwice 2017
Krzysztof (Chris) Ozog
 
How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...
Krzysztof (Chris) Ozog
 
Asynchronous PHP | Codesushi - Warsaw 2017
Asynchronous PHP | Codesushi - Warsaw 2017Asynchronous PHP | Codesushi - Warsaw 2017
Asynchronous PHP | Codesushi - Warsaw 2017
Krzysztof (Chris) Ozog
 
The automation of the process of caring for the quality of the code in PHP an...
The automation of the process of caring for the quality of the code in PHP an...The automation of the process of caring for the quality of the code in PHP an...
The automation of the process of caring for the quality of the code in PHP an...
Krzysztof (Chris) Ozog
 
How to protect your code against a destructive influence of client | Codesush...
How to protect your code against a destructive influence of client | Codesush...How to protect your code against a destructive influence of client | Codesush...
How to protect your code against a destructive influence of client | Codesush...
Krzysztof (Chris) Ozog
 
Migration from drupal 7 to drupal 8
Migration from drupal 7 to drupal 8Migration from drupal 7 to drupal 8
Migration from drupal 7 to drupal 8
Krzysztof (Chris) Ozog
 
Headless approach and acquia - case study | Codesushi
Headless approach and acquia  - case study | CodesushiHeadless approach and acquia  - case study | Codesushi
Headless approach and acquia - case study | Codesushi
Krzysztof (Chris) Ozog
 
Asynchroniczny PHP | Codesushi
Asynchroniczny PHP | CodesushiAsynchroniczny PHP | Codesushi
Asynchroniczny PHP | Codesushi
Krzysztof (Chris) Ozog
 
Why I stopped worrying and LOVED PHP | Codesushi
Why I stopped  worrying and  LOVED PHP | CodesushiWhy I stopped  worrying and  LOVED PHP | Codesushi
Why I stopped worrying and LOVED PHP | Codesushi
Krzysztof (Chris) Ozog
 
Inner Symfony’s Daemons
 Inner Symfony’s Daemons Inner Symfony’s Daemons
Inner Symfony’s Daemons
Krzysztof (Chris) Ozog
 
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Krzysztof (Chris) Ozog
 

More from Krzysztof (Chris) Ozog (14)

Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
 
21st century problem… the cost of it department!
21st century problem… the cost of it department!21st century problem… the cost of it department!
21st century problem… the cost of it department!
 
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
 
Parallel development of Web Apps | Codesushi - Gliwice 2017
Parallel development of Web Apps | Codesushi - Gliwice  2017Parallel development of Web Apps | Codesushi - Gliwice  2017
Parallel development of Web Apps | Codesushi - Gliwice 2017
 
How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...
 
Asynchronous PHP | Codesushi - Warsaw 2017
Asynchronous PHP | Codesushi - Warsaw 2017Asynchronous PHP | Codesushi - Warsaw 2017
Asynchronous PHP | Codesushi - Warsaw 2017
 
The automation of the process of caring for the quality of the code in PHP an...
The automation of the process of caring for the quality of the code in PHP an...The automation of the process of caring for the quality of the code in PHP an...
The automation of the process of caring for the quality of the code in PHP an...
 
How to protect your code against a destructive influence of client | Codesush...
How to protect your code against a destructive influence of client | Codesush...How to protect your code against a destructive influence of client | Codesush...
How to protect your code against a destructive influence of client | Codesush...
 
Migration from drupal 7 to drupal 8
Migration from drupal 7 to drupal 8Migration from drupal 7 to drupal 8
Migration from drupal 7 to drupal 8
 
Headless approach and acquia - case study | Codesushi
Headless approach and acquia  - case study | CodesushiHeadless approach and acquia  - case study | Codesushi
Headless approach and acquia - case study | Codesushi
 
Asynchroniczny PHP | Codesushi
Asynchroniczny PHP | CodesushiAsynchroniczny PHP | Codesushi
Asynchroniczny PHP | Codesushi
 
Why I stopped worrying and LOVED PHP | Codesushi
Why I stopped  worrying and  LOVED PHP | CodesushiWhy I stopped  worrying and  LOVED PHP | Codesushi
Why I stopped worrying and LOVED PHP | Codesushi
 
Inner Symfony’s Daemons
 Inner Symfony’s Daemons Inner Symfony’s Daemons
Inner Symfony’s Daemons
 
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
 

Jak uchronić Twój piękny kod przed destrukcyjnym wpływem klienta | Codesushi

  • 1. Jak uchronić Twój piękny kod przed destrukcyjnym wpływem klienta Chris Ozog - Codesushi CTO
  • 2. Agenda: ● Coś o mnie... ● Żaden kod nie jest pisany z myślą o tym, że będzie zły ● Czy leci z nami pilot? Ty tworzysz kod czy Twój klient? ● I co dalej? Czyli trochę o odpowiedniej komunikacji i jasnym przekazie! ● Droga miękka - odpowiedni mindset ● Droga twarda - narzędzia które nam w tym pomogą ● Nie od razu Rzym zbudowano! Czas na refactoring to czas na wagę złota ● Podsumowanie
  • 3. Coś o mnie... ● Od ponad dekady twórca aplikacji webowych ● Uzależniony od czystego kodu ● Lider techniczny w Codesushi ● CodeReviewer z zamiłowania ● Filozof i Developer w jednym… co gorsze, jest to udokumentowane dwoma dyplomami
  • 4. Żaden kod nie jest pisany z myślą o tym, że będzie zły ● Miłe złego początki ● Zmiany ● Zmiany do zmian ● Zmiany do zmian, do zmian
  • 5. Ty tworzysz kod czy Twój klient? ● To nie klient pisze kod, tylko Ty! ● W pewnym momencie popełniamy pierwszy grzech - zaniedbanie ● I potem jest już tylko gorzej...
  • 6. I co dalej? Czyli trochę o odpowiedniej komunikacji i jasnym przekazie! ● Rozpacz i obwinianie! ● Ale czy można inaczej? ● Dwie drogi miękka i twarda?!
  • 7. Droga miękka - gdy klient ciągle zmienia zdanie… ● Programista niezłomny i PM wyklęty ○ Nie tędy droga ● Złoty środek ○ Rozmowy trójstronne : klient - PM - dev team ○ Planowanie powinno uwzględniać refactoring ● Droga na pół twardo ○ SOLID code ○ Code review - najlepiej zrobione przez człowieka spoza projektu
  • 8. Droga twarda - czyli narzędzia, które nam w tym pomogą ● PHP Code sniffer ● PHP Mess detector
  • 9. Podsumowanie: ● Zły kod to zwykle nasze dzieło ● Aby solidnie zabezpieczyć się przed złym kodem należy: ○ Komunikować się odpowiednio z klientem ○ Przewidzieć czas na refactoring ○ Wprowadzić jasne zasady tworzenia oprogramowania np. SOLID ○ Code Review robione przez osobę spoza projektu ○ Wdrożenie narzędzi PHP Mess detector i PHP Code Sniffer
  • 10. Dziękuję za uwagę :) e-mail: hello@codesushi.co www: codesushi.coKrzysztof Ożóg Codesushi CTO