Railslove Mitorganisator bei verschiedensten UserGroups Unterrichtet im Masterstudiengang „Web Science“ an der FH Köln im Bereich Lean Startup und agilem Projektmanagement
Workshops gibt es einen großen „Was interessiert euch noch“ Abschnitt Wenn im Nachhinein noch Fragen auftauchen, schreibt uns einfach per Mail oder kommt im Cowoco an der Bottmühle vorbei
der Webentwicklung schaffen Vokabular erweitern, so dass Produkt und Entwicklung besser miteinander reden können Tools und Methoden zur besseren Zusammenarbeit kennenlernen
kennenlernen Gemeinsam Ziele erarbeiten Funktionsset der Webapp bestimmen und priorisieren (MVP) Daraus entsteht… …eine Roadmap …eine erste Aufwandeinschätzung Kickoff Workshop
2013 TechMBA Startplatz 2013 Kunden haben oft viel zu umfassende Vorstellungen vom Produkt Gemeinsam mit dem Kunden priorisieren und auf die nötigsten Funktionen reduzieren schneller Feedback von Usern verringert Risiko ! ! MVP bestimmen
2013 TechMBA Startplatz 2013 Mindestens zwei Leute pro Team Backend Entwickler und Frontend Entwickler gemeinsam Enge Zusammenarbeit, viel Kommunikation Team Setup
2013 TechMBA Startplatz 2013 Mindestens zwei Leute pro Team Backend Entwickler und Frontend Entwickler gemeinsam Enge Zusammenarbeit, viel Kommunikation Team Setup
2013 Wenn möglich, Designer die das Web kennen Wie möchten wir Designs erhalten: 1) Gerenderte Layouts 2) Photoshop-Datei 3) Sliced Images (für Illustrationen usw.) - PNG (wenn nötig mit Transparenz) - Konsistente Dimensionen Externe Designer
2013 Bevor wir mit einem Freelancer remote zusammen arbeiten - mindestens 1 Treffen Je nach Erfahrung: On-Boarding vor Ort (2 Tage - mehrere Wochen) Neue Entwickler (unter Senior-Level) die für weniger als 3 Monate im Projekt bleiben sollen lohnen sich nie Die wichtigsten Skills sind Kommunikation-Skills, keine technischen Freelancer & neue Entwickler
2013 TechMBA Startplatz 2013 Während des Projekts Daily Standups Retro- spektive Sprintplanung So geht das immer weiter bis das MVP erreicht wurde ! Danach neuer Meilenstein
an das System Aus Sicht eines Benutzers beschrieben Beispiel: Als ein Kunde möchte ich mich bei der Registrierung für den Newsletter anmelden, damit ich schnell von neuen Kursen erfahre. User Stories
(im Stehen) Entwickler, Designer und Produktmanager Jeder berichtet kurz: Was er gestern gemacht hat Was er heute machen will Wo Probleme auftauchen könnten Standup
Projektzeitraum Alle 1-2 Sprints Jeder für sich: 3 Punkte, was besonders gut gelaufen ist 3 Punkte, was besonders schlecht gelaufen ist Jeder trägt seine Punkte vor Clustern Maßnahmen für die Zukunft beschließen Retrospektive
Branch Immer aktuell am Master Zu jedem Feature gehören die passenden Tests Durchschnittliche Dauer (1 bis höchstens 2 Tage) Bei größeren Featuren Pair Programming zum Start Zwischendurch Code Review ( 1. Pull Request) Immer am Ende ein Pull Request Neue Features
Bevor Code in den Master kommt Mindestens ein anderer Entwickler reviewt den Code Dinge die beachtet werden: Code Style Tests Funktionsfähigkeit Look & Feel Pull Requests
als ein Entwickler an einem Projekt arbeitet müssen sie ihre Stände abgleichen Versionierung Am weitesten verbreitet: Git -> Versionskontrollsystem Github -> Code Hosting
meiner Codebasis wird automatisch getestet Funktioniert am besten mit geringem Aufwand Wir benutzen: Travis CI: - kostenlos für Open Source - Testen und nichts anderes
verursacht früher oder später einen Fehler (500er Seite) Wichtig ist, dass ich das mitbekomme, damit ich reagieren kann. Je nach verwendetem Framework unterschiedliche Anwendungen: Wir benutzen Airbrake Suchen aber ne bessere Alternative
Staging nicht aus Neue Features „kontrolliert“ ausrollen Nur für bestimmte Admins Nur für spezielle Benutzer Für alle Beschleunigt die Zeit von der Entwicklung bis zum Livegang Feature Flipper
(Amerika, UK, Deutschland) Wie schnell muss ich reagieren können? Wie spezifisch ist der Anbieter auf meine Plattform zugeschnitten? Wieviel Kontrolle brauche ich?
Stelle für Datenspeicher Statische Dateien: z.B. PDFs Uploads von Benutzern: z.B. Profil-Bilder Backups Wir benutzen in der Regel Amazon S3 Einfach zu integrieren Relativ billig
jederzeit wiederholbare Nachweis der Korrektheit eines Softwarebausteines relativ zu vorher festgelegten Anforderungen -- Ernst Denert Unter Testen versteht man den Prozess des Planens, der Vorbereitung und der Messung, mit dem Ziel, die Eigenschaften eines IT-Systems festzustellen und den Unterschied zwischen dem tatsächlichen und dem erforderlichen Zustand aufzuzeigen. -- Pol, Koomen und Spillner
Direktes Feedback Eindeutigkeit ➞ Fehler treten in genau einem Test auf Lesbarkeit ➞ Einfach zu verstehen ! Ein Verhalten wird in einem Test verifiziert !
Testet den ganzen „Stack“ Wichtig für die business-kritischen Teile einer Anwendung Es wird Benutzerverhalten nach- gestellt Man kann hiermit nicht alle möglichen Fälle abdecken !
"Barack Obama" And a place named "Guantanamo" hosted by "Barack Obama" And a user named "Bradley Manning" And I am logged in as "Bradley Manning“ ! Scenario: see the message on host's messages page and email Given "Barack Obama" receives a place question from "Bradley Manning“ with text "nice here" for 2 guests in "Guantanamo" And I am logged in as "Barack Obama" And I am on the messages page Then I should see "Question about Guantanamo" When I go to the conversation page with "Bradley Manning" Then I should see "Guests: 2" And I should see "nice here" !
sehr kurze Entwicklungszyklen Entwickelt für Unit Testing Für eine neue Funktionalität: Schreib einen Test für das Ergebnis der Funktionalität Schreib den einfachst möglichen Code zum Erreichen des Ziels Überarbeite den Code
von TDD zu verbessern, indem eine präzisere und menschlichere Sprache verwendet wird Anstelle von kryptischen Testdefinitionen beschreibt der Entwickler den Kontext und das Verhalten des zu testenden Objekts.
Arbeitsweise) Unser Ansatz: Extrem agil Möglichst schnell 1. Version online Hohe Identifikation mit dem Projekt Keine Festpreise Dafür sind einige Sachen ungeeignet, die uns immer wieder begegnen
Leben leichter machen Wenn es eine fertige Lösung gibt: Benutzen statt selber bauen Wenn man es selber baut, braucht man einen sehr guten Grund und muss Dokumentation und Wartbarkeit sicherstellen Die Ausgaben für externe Services sind nichts gegen den Aufwand der Entwicklung/Pflege einer eigenen Lösung
App Geld fließt, wird es kompliziert :) Viele verschiedene Zahlungsoptionen: Überweisung, Kreditkarte, Paypal, Bitcoin, … Einbindung mehrerer Services nötig Wir benutzten in der Regel: Paypal Skrill
einem Account senden z.B. Newsletter, Statusemails, …. Blacklist-Problematik Wir nutzen Mailchimp für Newsletter und SendGrid/Mandril für normales Email versenden
zweite Spache anbieten User kann zwischen den Sprachen wechseln. Man brauche irgendeine Art und Weise Übersetzungen zu pflegen Standardweg: I18n Rails, aber auch andere Frameworks benutzen das mittlerweile
zweite Spache anbieten User kann zwischen den Sprachen wechseln. Ich brauche irgendeine Art und Weise Übersetzungen zu pflegen Standardweg: I18n Rails, aber auch andere Frameworks benutzen das mittlerweile
fast immer besser als Bilder Es gibt einige Services: Font Awesome, Entypo, … Wir benutzen Fontello Nur die Icons die man braucht Integriert viele andere Services Möglichkeit eigene Icons