In „Grüne Wiese“-Projekten besteht in der Phase der Teamfindung am Anfang das Risiko des Perfektionismus. Eine Projektidee ist geboren, das Team gecastet. Jetzt geht es los. Ganz oft werden erstmal Konzept und Architekturen diskutiert und irgendwann natürlich auch implementiert. Alles soll sauber gecodet und möglichst gut getestet sein (Clean Code). So kann die Umsetzung einfacher Funktionalitäten schon mal ein paar mehr Tage in Anspruch nehmen. Wenn sich das ein paar Mal häuft, hat man nach drei Monaten ein wirklich sauber entwickeltes Projekt, das aber leider dann abgeschaltet wird. Im Gegensatz dazu steht der Lean-Ansatz. Lean Programming und Lean Testing meint, dass ein MVP keine perfekte Architektur und keine hohe Testabdeckung braucht, um festzustellen, ob das Projekt funktioniert. Im Verlauf des Projekts ist es dann einfach möglich, die Teile besser zu machen, die oft gebraucht werden, und falls das Projekt gestoppt wird, hat man nicht viel Geld verbrannt.
9 Tipps für die Modernisierung von PHP-Anwendungen
Den falschen plan perfekt ausführen
1. Den falschen Plan perfekt ausführen.
Den falschen
Plan perfekt
ausführen.
Nils Langner & Mike Lohmann
2. Den falschen Plan perfekt ausführen.Den falschen Plan perfekt ausführen.
Webentwickler seit 18 Jahren
Gründer www.leankoala.com
Head of Quality Management
Qualitätsmanager seit 10 Jahren
Blogger www.phphatesme.com
Seepferdchen seit 31 Jahren
@leankoala
3. Den falschen Plan perfekt ausführen.
Webentwickler seit 19 Jahren
Partner www.elbstack.com
Software Architect
Software Architect seit 10 Jahren
@elbstack
4. Den falschen Plan perfekt ausführen.
Das macht keinen Sinn!
Hä?
Klappt das auch für mich?
Sehe ich ganz anders!
Wieso liegt da eigentlich Stroh?!
Bei Fragen: fragen
Raus damit
WAS machen die da vorne eigentlich?
5. Den falschen Plan perfekt ausführen.
Wer seid ihr?
IPC 2017
Entwickler?
Qualitätsmanager / Tester?
PHP?
JavaScript?
Umbau auf Micro Services?
6. Den falschen Plan perfekt ausführen.
Gut, besser, am besten?
Was ist guter Code?
7. Den falschen Plan perfekt ausführen.
Drauflos-Stil - A
IPC 2017
Idee:
Office-Anwesenheits-Trigger
Brauche einen Trigger
Brauche einen Store für einen Counter
Brauche eine Komponente die Nachrichten verschickt
Brauche statistische Auswertungen
11. Den falschen Plan perfekt ausführen.
Was ist mit Tests
Hardcoded Variablen
Gar nicht erweiterbar
Naja… Das geht doch einfach nicht!
100 Leute wurden gefragt: Was ist daran
schlecht?
Quiz
13. Den falschen Plan perfekt ausführen.
Jetzt besser machen
Was ist guter Code?
14. Den falschen Plan perfekt ausführen.
Professional-Stil - B
IPC 2017
Muss 100 Tsd Kunden verwalten können
Muss pro Kunde konfigurierbare Nachrichtenkanäle haben (Slack, SMS, you name it)
Verschiedene Nachrichten / Kunde / Location
85 % Unit-Testabdeckung
Funktionale Tests für 6 verschiedene Browser
Muss statistische Auswertung in einem Dashboard zeigen
Idee: Office-Anwesenheits-Trigger (diesmal professional!)
16. Den falschen Plan perfekt ausführen.
Jetzt perfekte Implementierung vorstellen.
Imagination.
17. Den falschen Plan perfekt ausführen.
Was ist besser? A oder B?
Raus damit
Nicht-funktionale Requirements alle beachtet
Klar B
Alles perfekt gebaut
Musterprojekt
Architektur durchdacht
20. Den falschen Plan perfekt ausführen.
A - ~ 3 Tage (eigentlich sogar nur 1 Tag, aber ein bisschen schön sollte es doch sein)
Auswertung
B - ~ 10 Wochen
22. Den falschen Plan perfekt ausführen.
Was ist besser? A oder B?
Raus damit
Klar A
Weniger Zeit investiert
Geringere Kosten
23. Den falschen Plan perfekt ausführen.
Eine kurze Geschichte der Zeit
Erfahrungsbericht
24. Den falschen Plan perfekt ausführen.
So viel verschwendete Zeit
Erfahrungsbericht
Polaris: ca. 2 Jahre amilio: 2 Jahre Freizeit
25. Den falschen Plan perfekt ausführen.
So viel verschwendete Zeit
Erfahrungsbericht
Jubii-Pages: ca. 2 Jahre abspielbar: 2 Jahre
Freizeit, 3 Jahre GmbH
bis zur Insolvenz
26. Den falschen Plan perfekt ausführen.
Fazit
Vision
Projekte schlagen fehl
Das Leben ist hart
27. Den falschen Plan perfekt ausführen.
Ein paar Fakten
100.000
Technikgründungen
pro Jahr in
Deutschland
(KFW 2016)
1 von 10
Startups überleben
das erste Jahr
80%
aller Features werden
kaum oder gar nicht
verwendet
(Chaos Report Standish
Group)
28. Den falschen Plan perfekt ausführen.
Ist Qualität unnötig?
Nein, doch, ohhh.
Qualität
29. Den falschen Plan perfekt ausführen.
Doing things right
Doing things
Doing the right thing
versus
30. Den falschen Plan perfekt ausführen.
Thoughtland
Doing the right thing
If you are not embarrassed by the first version of
your product, you’ve launched too late.
31. Den falschen Plan perfekt ausführen.
Wie baut elbstack Software?
Vision
Software muss nur den Anforderungen genügen
YAGNI - Prinzip
32. Den falschen Plan perfekt ausführen.
Anforderungen definieren
Vision
Anforderungen mit Kunde formulieren
Anforderungen in Komponenten gliedern
Features pro Komponente definieren
33. Den falschen Plan perfekt ausführen.
Anforderungen priorisieren - MVP
Vision
Welche Features müssen ins MVP*?
Tasks für Features definieren
*https://hackernoon.com/the-mvp-is-dead-long-live-the-rat-233d5d16ab02 (Riskiest Assumption Tests)
34. Den falschen Plan perfekt ausführen.
Technologie (für MVP) festlegen
Vision
Was kann das Team?
Was kann das Team schnell lernen?
Was wird noch gebraucht für MVP?
35. Den falschen Plan perfekt ausführen.
Kernkomponente(n) festlegen
Vision
Was sind Kernkomponenten?
Unit Tests für Kernkomponenten - Ist Dein Freund
36. Den falschen Plan perfekt ausführen.
MVP umsetzen
Vision
Möglichst einfach und schnell
“Dreckig” ist erlaubt! - Solange kein Core
Lean Testing - Ist Dein Freund
37. Den falschen Plan perfekt ausführen.
MVP deployen und am Markt testen
Vision
Möglichst so, dass man schnell Bugfixes einbauen kann
(Semi) automatisiertes Deployment - Ist Dein Freund
38. Den falschen Plan perfekt ausführen.
Feedback einarbeiten - Nächste Iteration
Vision
Und täglich grüßt das Murmeltier...
=> (Semi) automatisiertes Deployment - Ist Dein Freund
=> Unit Tests für Kernkomponenten - Ist Dein Freund
=> Lean Testing - Ist Dein Freund
39. Den falschen Plan perfekt ausführen.
Und wenn es doch groß wird?!
Vision
Refactorings
=> (Semi)automatisiertes Deployment - Ist Dein Freund
=> Unit Tests für Kernkomponenten - Ist Dein Freund
=> Lean Testing - Ist Dein Freund
40. Den falschen Plan perfekt ausführen.
Wie sollte ich Software testen?
Qualität
42. Den falschen Plan perfekt ausführen.
Was ist Qualität?
Qualität
„Grad, in dem ein Satz inhärenter Merkmale eines
Objekts Anforderungen erfüllt.
„Übereinstimmung von Leistungen
mit Ansprüchen.“
Norm DIN EN ISO 9000:2015-11
Gablers Wirtschaftslexikon
43. Den falschen Plan perfekt ausführen.
Was ist Risiko?
Qualität
Risiko = Eintrittswahrscheinlichkeit * Kosten
44. Den falschen Plan perfekt ausführen.
Wird mein Projekt ein Erfolg?
Qualität
90% aller Startups scheitern
80% aller Features werde nicht genutzt
NEIN, dein Projekt wird kein Erfolg
45. Den falschen Plan perfekt ausführen.
Was muss ich dann testen?
Qualität
niente
nichts
nada
nothing
Na gut, vielleicht ein wenig.
46. Den falschen Plan perfekt ausführen.
Testen muss schlank sein
Qualität
Lean Testing
Crowd Testing
Monitoring
based Testing
47. Den falschen Plan perfekt ausführen.
Lean Testing
Lean Testing
Semantischer Fehler im Controller
Datenbankprobleme
Fehler im Template
Syntaktische Fehler im Controller
Bug in Bibliothek
Fehlender Content
HTTP-Status-Code != 200
Ursachen Symptome
48. Den falschen Plan perfekt ausführen.
Nur was für Startups?
Lean Testing
49. Den falschen Plan perfekt ausführen.
Leankoala
Leankoala
www.leankoala.com
50. Den falschen Plan perfekt ausführen.
Leankoala - 4 Schritte zum Test-Setup
Leankoala
www.leankoala.com
www.bravo.de
Enter homepage url
1
Scanning for equivalency classes
2
65%
Scanning for 1.227 widgets
3
22%
Test Setup completed
we found 38 components
you are using 32 widgets
34 anomalies already found
4
Innovation // Alleinstellungsmerkmal
51. Den falschen Plan perfekt ausführen.
Fazit
Ende
Doing the right thing before doing things right
Dein Projekt wird kein Erfolg! Wahrscheinlich.
52. Den falschen Plan perfekt ausführen.
Kontaktiert uns.
Kontakt
Nils Langner
nils.langner@leankoala.com
@leankoala
Mike Lohmann
mike@elbstack.com
@elbstack