SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Mity, które blokują Twoją karierę
Piotr Horzycki
PHPCon Poland 2022
Agenda
01 Zły biznes, dobry development
02 Musimy mieć Scruma!
03 Spotkania to strata czasu
04 Pseudoelitarność
05 Wymyślna architektura
06 Wielkie przepisywanie
07 100% code coverage
Skup się na tym, co daje
największe korzyści!
Zasada Pareto:
20% czynności daje 80% rezultatów
Mit #1:
Zły biznes, dobry
development
Co myśli development:
biznes nie wie, czego chce 🤦
biznes ciągle zmienia priorytety
biznes nas nie rozumie
Co często myśli biznes:
ile to wszystko kosztuje!
za rok odejdą i zostawią nas z tym
nie rozumiemy, co oni gadają
po co ten kolejny "refaktor"?
Przewidywalność:
Sposób na pogodzenie dwóch światów
Jak pogodzić biznes i development
w firmie
Jak pogodzić biznes i development
tech i non-tech w firmie
Jak pogodzić tech i non-tech LUDZI
w firmie
development częścią biznesu
wymiana informacji (priorytety, release plan)
wspólne warsztaty
usprawnienie developmentu
dobry Product Owner
Krótki dokument o każdym zespole
Cześć! Jesteśmy zespołem XYZ i odpowiadamy za...
Pracujemy w cyklach 2-tygodniowych, zaczynamy planningiem w
poniedziałki.
Opisując zadania, użyj szablonu: ...
Mit #2:
Musimy mieć Scruma!
Co deweloperzy myślą, że jest ważne
story pointy, burndown charts 📉
niezmienne sprinty
Scrum w CV
Co jest ważne?
Sprawnie działający zespół!
Wartości Scruma
scrumguides.org/scrum-guide.html#scrum-values
5 dysfunkcji pracy zespołowej
Patrick Lencioni, "The Five Dysfunctions of a Team"
Empiryzm w Scrumie
Transparencja ➡️inspekcja ➡️adaptacja
CEREMONIE SCRUMOWE REALIZUJĄ TEN CYKL!
Planning ➡️daily ➡️review ➡️retro
Kiedy estymować zadania?
Estimation is valuable when it helps you make a significant
decision.
So whenever you're thinking of asking for an estimate, you
should always clarify what decision that estimate is informing.
martinfowler.com/bliki/PurposeOfEstimation.html
Mit #3:
Spotkania to strata
czasu
Frustracja spotkaniami
"Ok, wracajmy do pracy"
"Wystarczyło napisać maila"
"Wczoraj nic nie zrobiłem, bo były spotkania"
Development to praca zespołowa
Musicie pracować razem,
ale też szanować nawzajem swój czas!
Sposoby na lepsze spotkania
agenda przed spotkaniem
czy wszyscy są potrzebni?
prawo dwóch nóg
moderacja, zmierzanie do celu
timeboxing
skupienie (np. wyłączamy Slacka)
notatki, action points
narzędzia (Google Docs, Miro, Notion itp.)
Mit #4:
Pseudoelitarność
Przeciętne ogłoszenie o pracę
Słynne "wiek 20 lat, 10 lat doświadczenia"
Dużo modnych słów kluczowych ✅
"Młody, dynamiczny zespół"
Rezultat: impostor syndrome
Jako kandydat
Nie musisz znać wszystkich fancy technologii...
...ale kształć się i rozwijaj, znajdź swoje mocne strony! 💪
Jako rekruter
Nie oczekuj od ludzi, że będą znali wszystkie fancy technologie
Zróżnicowany zespół
Potrzebujemy ludzi dobrych w:
architekturze
zarządzaniu
wydajności
bezpieczeństwie
skalowaniu
testowaniu
Co to daje, gdy szukamy pracy?
Większy wybór ofert
Nowe możliwości
Praca z lepszymi od siebie
Co to daje firmie?
Większy wybór kandydatów
Mocne, wszechstronne zespoły
Wiele punktów widzenia
Lepsze oprogramowanie
Szybszy onboarding
Niższe koszty
Mit #5:
Wymyślna architektura
Szał projektowania
https://blog.daftcode.pl/hype-driven-development-3469fc2e9b22
Problemy 😭
trudne utrzymanie
wysokie koszty 💸
brak specjalistów
porzucone frameworki
joelonsoftware.com/2001/04/21/dont-let-architecture-astronauts-scare-you
Nie od razu wielkie systemy
zbudowano
John Gall
Will Larson
A complex system that works is invariably found to have evolved from a simple
system that worked.
Most implemented systems are designed to support one to two orders
magnitude of growth from current load.
Mit #6:
Wielkie przepisywanie
Historie nieudanego rewrite'u
Martin Fowler, "Refactoring"
“The old code had worked just fine. Yes,
the design was a bit more "pure", and a bit
more "clean." But the project had to ship
code that worked, not code that would
please an academic. (…) Six months later,
the project failed.”
Strategie pracy z kodem legacy
Testy automatyczne
Refaktoring małymi krokami ♻️
Proof of Concept
Event Storming
Fasada
Strangler Pattern
Anti-Corruption Layer
Jak wybrać najkorzystniejsze
działania?
Działanie Koszt Spodziewany zysk
Przepisanie koszyka XL M
Refaktor rejestracji użytkownika L L
Optymalizacja listy produktów M L
Jak wybrać najkorzystniejsze
działania?
Działanie Koszt Spodziewany zysk
Przepisanie koszyka XL M
Refaktor rejestracji użytkownika L L
Optymalizacja listy produktów M L
Co nam to daje
spełnienie deadline'ów
ochrona istniejącego zachowania systemu
efekty małych kroków są szybciej widoczne
uniknięcie wypalenia
więcej czasu na wartościowe rzeczy
Kiedy przepisanie systemu jest
konieczne?
śmierć technologii (np. Adobe Flash)
nowy system daje kluczowe możliwości, których stary system
nie może dać
Mit #7:
100% code coverage
Wybierz dobre metryki
Line coverage to narzędzie do wyszukania kodu, który nie ma testów.
Nie wystarcza to do oceny jakości testów.
Piramida testów
E2E
API
integracyjne
jednostkowe
Jak bardzo ufamy naszym testom?
Jakość testów
Line coverage: 100% 🎉
Branch coverage: 50% 😔
public function foo(bool $flag): void
{
if ($flag) {
doThis();
}
doOtherThing();
}
public function testFoo(): void
{
foo(true);
}
Strategia testowania
unit testy są najszybsze; E2E wolniejsze i mniej stabilne
jeśli nie mamy żadnych testów, to najlepiej zacząć od E2E happy path
nie trzeba testować jednostkowo kontrolerów
domena biznesowa powinna mieć najlepsze możliwe testy
Testy mutacyjne
Mutation Score Index mówi, jak dokładne są testy / jak łatwo je oszukać
infection.github.io
Podsumowanie
Wymieniaj informacje z biznesem; buduj przewidywalność
Buduj dobre relacje w zespole
Dbaj o jakość spotkań
Twórz zróżnicowane zespoły / nie bój się rekrutacji :)
Projektuj rozsądną architekturę
Refaktoryzuj małymi krokami, jeśli to możliwe
Wprowadź jasną strategię testowania
PETERDEV.PL
TWITTER.COM/PETERDEVPL
LINKEDIN.COM/IN/PIOTR-HORZYCKI
Zapraszam do Volta i do mnie :)

Contenu connexe

Similaire à Mity, które blokują Twoją karierę

Aula polska - Psychologia i Code Review
Aula polska -  Psychologia i Code ReviewAula polska -  Psychologia i Code Review
Aula polska - Psychologia i Code ReviewTomasz Grzemski
 
Poznaj Lead Response Time | Prezentacja z Webinaru.
Poznaj Lead Response Time | Prezentacja z Webinaru.Poznaj Lead Response Time | Prezentacja z Webinaru.
Poznaj Lead Response Time | Prezentacja z Webinaru.CallPage
 
Growth Hacking czyli o zarządzaniu wzrostem
Growth Hacking czyli o zarządzaniu wzrostemGrowth Hacking czyli o zarządzaniu wzrostem
Growth Hacking czyli o zarządzaniu wzrostemAdam Wesolowski
 
Sztuczna inteligencja – kiedy i jak bardzo zmieni naszą rzeczywistość?
Sztuczna inteligencja – kiedy i jak bardzo zmieni naszą rzeczywistość?Sztuczna inteligencja – kiedy i jak bardzo zmieni naszą rzeczywistość?
Sztuczna inteligencja – kiedy i jak bardzo zmieni naszą rzeczywistość?Andrzej Sobczak
 
Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1
Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1
Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1Mateusz Muryjas
 
Leadership Center - prezentacja firmy Pecha Kucha
Leadership Center - prezentacja firmy Pecha KuchaLeadership Center - prezentacja firmy Pecha Kucha
Leadership Center - prezentacja firmy Pecha KuchaLeadershipCenter
 
Pierwsze kroki w IT jako programista - Fundacja MOŻESZ ITy!
Pierwsze kroki w IT jako programista - Fundacja MOŻESZ ITy!Pierwsze kroki w IT jako programista - Fundacja MOŻESZ ITy!
Pierwsze kroki w IT jako programista - Fundacja MOŻESZ ITy!Wojciech Jureczka
 
Strefa PMI nr 8, marzec 2015
Strefa PMI nr 8, marzec 2015Strefa PMI nr 8, marzec 2015
Strefa PMI nr 8, marzec 2015Strefa PMI
 
Value Stream Mapping - dowiedz się gdzie marnowane są pieniądze
Value Stream Mapping - dowiedz się gdzie marnowane są pieniądzeValue Stream Mapping - dowiedz się gdzie marnowane są pieniądze
Value Stream Mapping - dowiedz się gdzie marnowane są pieniądzeDeloitte Polska
 
BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)
BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)
BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)Katarzyna Javaheri-Szpak
 
Spokojnie, to tylko startapowiec
Spokojnie, to tylko startapowiecSpokojnie, to tylko startapowiec
Spokojnie, to tylko startapowiecinter-AKCJE
 
ProductTank Warsaw - Mariusz Kuźniewicz "Productive Product Team"
ProductTank Warsaw - Mariusz Kuźniewicz "Productive Product Team"ProductTank Warsaw - Mariusz Kuźniewicz "Productive Product Team"
ProductTank Warsaw - Mariusz Kuźniewicz "Productive Product Team"ProductTank Warsaw
 
Prezentacja firmy XSolve - programowanie, e-commerce, bodyleasing
Prezentacja firmy XSolve - programowanie, e-commerce, bodyleasingPrezentacja firmy XSolve - programowanie, e-commerce, bodyleasing
Prezentacja firmy XSolve - programowanie, e-commerce, bodyleasingXSolve
 
Zwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek PotiukZwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek PotiukMamStartup
 
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...Michał Bartyzel
 

Similaire à Mity, które blokują Twoją karierę (20)

Aula polska - Psychologia i Code Review
Aula polska -  Psychologia i Code ReviewAula polska -  Psychologia i Code Review
Aula polska - Psychologia i Code Review
 
Poznaj Lead Response Time | Prezentacja z Webinaru.
Poznaj Lead Response Time | Prezentacja z Webinaru.Poznaj Lead Response Time | Prezentacja z Webinaru.
Poznaj Lead Response Time | Prezentacja z Webinaru.
 
Growth Hacking czyli o zarządzaniu wzrostem
Growth Hacking czyli o zarządzaniu wzrostemGrowth Hacking czyli o zarządzaniu wzrostem
Growth Hacking czyli o zarządzaniu wzrostem
 
Outsource
OutsourceOutsource
Outsource
 
Sztuczna inteligencja – kiedy i jak bardzo zmieni naszą rzeczywistość?
Sztuczna inteligencja – kiedy i jak bardzo zmieni naszą rzeczywistość?Sztuczna inteligencja – kiedy i jak bardzo zmieni naszą rzeczywistość?
Sztuczna inteligencja – kiedy i jak bardzo zmieni naszą rzeczywistość?
 
[TestWarez 2017] QA z perspektywy biznesu – jak zarabiać na testowaniu
[TestWarez 2017] QA z perspektywy biznesu – jak zarabiać na testowaniu[TestWarez 2017] QA z perspektywy biznesu – jak zarabiać na testowaniu
[TestWarez 2017] QA z perspektywy biznesu – jak zarabiać na testowaniu
 
Jak bardzo techniczny musi być tester?
Jak bardzo techniczny musi być tester?Jak bardzo techniczny musi być tester?
Jak bardzo techniczny musi być tester?
 
Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1
Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1
Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1
 
Leadership Center - prezentacja firmy Pecha Kucha
Leadership Center - prezentacja firmy Pecha KuchaLeadership Center - prezentacja firmy Pecha Kucha
Leadership Center - prezentacja firmy Pecha Kucha
 
Pierwsze kroki w IT jako programista - Fundacja MOŻESZ ITy!
Pierwsze kroki w IT jako programista - Fundacja MOŻESZ ITy!Pierwsze kroki w IT jako programista - Fundacja MOŻESZ ITy!
Pierwsze kroki w IT jako programista - Fundacja MOŻESZ ITy!
 
Strefa PMI nr 8, marzec 2015
Strefa PMI nr 8, marzec 2015Strefa PMI nr 8, marzec 2015
Strefa PMI nr 8, marzec 2015
 
Value Stream Mapping - dowiedz się gdzie marnowane są pieniądze
Value Stream Mapping - dowiedz się gdzie marnowane są pieniądzeValue Stream Mapping - dowiedz się gdzie marnowane są pieniądze
Value Stream Mapping - dowiedz się gdzie marnowane są pieniądze
 
BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)
BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)
BugHuntFest2024 - Mity o pracy testera (Katarzyna Javaheri)
 
Lean Startup - Kaizen Consulting
Lean Startup  - Kaizen ConsultingLean Startup  - Kaizen Consulting
Lean Startup - Kaizen Consulting
 
Spokojnie, to tylko startapowiec
Spokojnie, to tylko startapowiecSpokojnie, to tylko startapowiec
Spokojnie, to tylko startapowiec
 
ProductTank Warsaw - Mariusz Kuźniewicz "Productive Product Team"
ProductTank Warsaw - Mariusz Kuźniewicz "Productive Product Team"ProductTank Warsaw - Mariusz Kuźniewicz "Productive Product Team"
ProductTank Warsaw - Mariusz Kuźniewicz "Productive Product Team"
 
Prezentacja firmy XSolve - programowanie, e-commerce, bodyleasing
Prezentacja firmy XSolve - programowanie, e-commerce, bodyleasingPrezentacja firmy XSolve - programowanie, e-commerce, bodyleasing
Prezentacja firmy XSolve - programowanie, e-commerce, bodyleasing
 
8 jaromir dzialo
8 jaromir dzialo8 jaromir dzialo
8 jaromir dzialo
 
Zwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek PotiukZwinność w praktyce, Jarek Potiuk
Zwinność w praktyce, Jarek Potiuk
 
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
Szybko czy dobrze. jak współpracować z biznesem i nie dać się zwieść pozornym...
 

Plus de Piotr Horzycki

Serial(ize) killers, czyli jak popsuliśmy API
Serial(ize) killers, czyli jak popsuliśmy APISerial(ize) killers, czyli jak popsuliśmy API
Serial(ize) killers, czyli jak popsuliśmy APIPiotr Horzycki
 
Architecture tests: Setting a common standard
Architecture tests: Setting a common standardArchitecture tests: Setting a common standard
Architecture tests: Setting a common standardPiotr Horzycki
 
Software development myths that block your career
Software development myths that block your careerSoftware development myths that block your career
Software development myths that block your careerPiotr Horzycki
 
Software Composition Analysis in PHP
Software Composition Analysis in PHP Software Composition Analysis in PHP
Software Composition Analysis in PHP Piotr Horzycki
 
How to count money with Java and not lose it
How to count money with Java and not lose itHow to count money with Java and not lose it
How to count money with Java and not lose itPiotr Horzycki
 
How to count money using PHP and not lose money
How to count money using PHP and not lose moneyHow to count money using PHP and not lose money
How to count money using PHP and not lose moneyPiotr Horzycki
 
New kids on the block: Conducting technical onboarding
New kids on the block: Conducting technical onboardingNew kids on the block: Conducting technical onboarding
New kids on the block: Conducting technical onboardingPiotr Horzycki
 
Time-driven applications
Time-driven applicationsTime-driven applications
Time-driven applicationsPiotr Horzycki
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPPiotr Horzycki
 

Plus de Piotr Horzycki (9)

Serial(ize) killers, czyli jak popsuliśmy API
Serial(ize) killers, czyli jak popsuliśmy APISerial(ize) killers, czyli jak popsuliśmy API
Serial(ize) killers, czyli jak popsuliśmy API
 
Architecture tests: Setting a common standard
Architecture tests: Setting a common standardArchitecture tests: Setting a common standard
Architecture tests: Setting a common standard
 
Software development myths that block your career
Software development myths that block your careerSoftware development myths that block your career
Software development myths that block your career
 
Software Composition Analysis in PHP
Software Composition Analysis in PHP Software Composition Analysis in PHP
Software Composition Analysis in PHP
 
How to count money with Java and not lose it
How to count money with Java and not lose itHow to count money with Java and not lose it
How to count money with Java and not lose it
 
How to count money using PHP and not lose money
How to count money using PHP and not lose moneyHow to count money using PHP and not lose money
How to count money using PHP and not lose money
 
New kids on the block: Conducting technical onboarding
New kids on the block: Conducting technical onboardingNew kids on the block: Conducting technical onboarding
New kids on the block: Conducting technical onboarding
 
Time-driven applications
Time-driven applicationsTime-driven applications
Time-driven applications
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
 

Mity, które blokują Twoją karierę