Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Projektmanagement und Entwicklung

Projektmanagement und Entwicklung

Folien des Workshops im Startplatz vom 18.03.2014

stephanpavlovic

March 18, 2014
Tweet

More Decks by stephanpavlovic

Other Decks in Technology

Transcript

  1. Stephan Pavlovic ! Master in Medieninformatik Frontend-Entwicklung und Konzepte bei

    Railslove Mitorganisator bei verschiedensten UserGroups Unterrichtet im Masterstudiengang „Web Science“ an der FH Köln im Bereich Lean Startup und agilem Projektmanagement
  2. Railslove - das Unternehmen Agile Ruby-on-Rails-Entwicklung aus Köln Betreuen und

    „Bootstrappen“ von Startups Zusammenarbeit mit einigen etablierten Unternehmen
  3. Railslove - mehr als ein Unternehmen Betreiber des 1. Coworking

    Spaces in Köln Veranstalter vieler Kölner User Groups Organisator von größeren Events ( Interactive Cologne, Railscamp, … ) Regelmäßige Schulungen ( Rails, Testing, … )
  4. Generelles Vorgehen Wir geben euch einen Überblick über verschiedene Themen

    Wenig theoretisches Wissen, mehr „Best Practice“ Wir setzen auf eure Mitarbeit und Fragen
  5. Generelles Vorgehen Wenn Sachen unklar sind, fragen! Am Ende des

    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
  6. Ziel des Ganzen Ein grobes Verständnis für die Abläufe in

    der Webentwicklung schaffen Vokabular erweitern, so dass Produkt und Entwicklung besser miteinander reden können Tools und Methoden zur besseren Zusammenarbeit kennenlernen
  7. Feedback Wir machen den Workshop so zum ersten Mal Ungenaue

    Vorstellung der Erwartungen Wir wollen lernen Deshalb: Zu schnell oder zu langweilig-> Kurzer Hinweis
  8. TechMBA Startplatz 2013 TechMBA Startplatz 2013 TechMBA Startplatz 2013 Kunden

    kennenlernen Gemeinsam Ziele erarbeiten Funktionsset der Webapp bestimmen und priorisieren (MVP) Daraus entsteht… …eine Roadmap …eine erste Aufwandeinschätzung Kickoff Workshop
  9. Projektmanagement & Entwicklung März 2014 TechMBA Startplatz 2013 TechMBA Startplatz

    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
  10. Projektmanagement & Entwicklung März 2014 TechMBA Startplatz 2013 TechMBA Startplatz

    2013 TechMBA Startplatz 2013 Mindestens zwei Leute pro Team Backend Entwickler und Frontend Entwickler gemeinsam Enge Zusammenarbeit, viel Kommunikation Team Setup
  11. Projektmanagement & Entwicklung März 2014 TechMBA Startplatz 2013 TechMBA Startplatz

    2013 TechMBA Startplatz 2013 Mindestens zwei Leute pro Team Backend Entwickler und Frontend Entwickler gemeinsam Enge Zusammenarbeit, viel Kommunikation Team Setup
  12. Idee Konzept MockUps Prototyping Sprint Planning Screendesign Iterative Implementierung Produktmanagement

    Projektmanagement & Entwicklung März 2014 TechMBA Startplatz 2013 TechMBA Startplatz 2013 TechMBA Startplatz 2013
  13. Projektmanagement & Entwicklung März 2014 TechMBA Startplatz 2013 TechMBA Startplatz

    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
  14. Projektmanagement & Entwicklung März 2014 TechMBA Startplatz 2013 TechMBA Startplatz

    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
  15. Zusammenarbeit mit Kunden Keine Pflichtenhefte Wir rechnen nach Aufwand (Stunden)

    ab Enge Zusammenarbeit Schnelles Feedback Häufige Businessupdates
  16. Projektmanagement & Entwicklung März 2014 TechMBA Startplatz 2013 TechMBA Startplatz

    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
  17. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Kurze, feste Zeitabschnitte (1-2

    Wochen) Definiertes Ziel für das Ende dieser Zeit Klare Priorisierung der User Stories für diese Zeit Am Ende: Bewertung des definierten Ziels Sprints
  18. TechMBA Startplatz 2013 TechMBA Startplatz 2013 TechMBA Startplatz 2013 Anforderungen

    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
  19. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Übersicht über die Stories

    der einzelnen Sprints Wer arbeitet an was? Grundregel (nicht mehr als 2 Stories gleichzeitig) Abnahme durch das Produktmanagement Storyboard
  20. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Inhalt Feature: User Story,

    zwischen 1 und 8 Punkten Bug: kritische Bugs ganz oben Chore: notwendige Aufgabe, aber keine direkte Verbesserung für den User Storyboard
  21. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Kurzes Meeting am Morgen

    (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
  22. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Rückblick auf den letzten

    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
  23. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Angelehnt an den „Github

    Workflow“ Das bedeutet: 3 wichtige Branches Master Master Green Production Unser Workflow
  24. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Neues Feature -> Neuer

    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
  25. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Bei uns: Zwei Entwickler

    coden und konzipieren zusammen Oft Frontend + Backend Pairprogramming
  26. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Das 4 Augen Prinzip

    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
  27. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Code Repository Sobald mehr

    als ein Entwickler an einem Projekt arbeitet müssen sie ihre Stände abgleichen Versionierung Am weitesten verbreitet: Git -> Versionskontrollsystem Github -> Code Hosting
  28. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Continuous Integration Jeder Zustand

    meiner Codebasis wird automatisch getestet Funktioniert am besten mit geringem Aufwand Wir benutzen: Travis CI: - kostenlos für Open Source - Testen und nichts anderes
  29. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Exception Tracking Jede Anwendung

    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
  30. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Für manche Features reicht

    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
  31. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Hosting Generell drei verschiedene

    Möglichkeiten Public Cloud Heroku, Amazon, … Private Cloud BrightBox Private: Überall wo man eigene Server mieten kann
  32. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Hosting Wichtige Kriterien: Sicherheit

    (Amerika, UK, Deutschland) Wie schnell muss ich reagieren können? Wie spezifisch ist der Anbieter auf meine Plattform zugeschnitten? Wieviel Kontrolle brauche ich?
  33. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Storage Provider Eine zentrale

    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
  34. Was ist eigentlich ein Test? Test […] der überprüfbare und

    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
  35. Warum sollte man das machen? Manuelles Durchklicken skaliert nicht Ausnahmefälle

    werden berücksichtigt Entwickler können Änderungen mit viel größerer Sicherheit machen In vielen Fällen ersparen Tests einen Teil der Dokumentation
  36. Was testen man alles? ! ! ! ! ! 70-80%

    Unit ! ! ! 15-20% Functional ! 5-10% Acceptance
  37. Was ist ein Unit Test? Fein granularer Test einer Komponente

    Isoliert von allen anderen Komponenten Jeder mögliche Fall sollte abgedeckt sein !
  38. Was macht einen guten Unit Test aus? ! Geschwindigkeit ➞

    Direktes Feedback Eindeutigkeit ➞ Fehler treten in genau einem Test auf Lesbarkeit ➞ Einfach zu verstehen ! Ein Verhalten wird in einem Test verifiziert !
  39. Was ist ein Acceptance Test? Repräsentiert eine Anforderung des Kunden

    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 !
  40. Acceptance Test - Ein Beispiel Background: Given a user named

    "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" !
  41. Zusammenfassung Eine Webanwendung ohne automatisierte Tests ist zum Scheitern verurteilt

    Man testet mindestens auf 2 Ebenen Feingranular mit allen möglichen Fällen (Unit) Die wichtigsten Workflows (Acceptance)
  42. Test Driven Development „Software Development Process“ (Kent Beck in 2002)

    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
  43. Test Driven Development Vorteile: Tests sind fester Teil des Prozesses

    Bessere Codestrukturierung Schneller & sicheres Refactoring
  44. Behaviour Driven Development BDD versucht den Zugang und das Verständnis

    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.
  45. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Häufige Fehler (für unsere

    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
  46. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Services die einem das

    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
  47. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Asset Provider Je nach

    Art des „Assets“ Video: YouTube, Vimeo, Bilder: Flickr Unterschiedliches: Dropbox Wichtige Kriterien: Entwickler: Gute API Business: Preis
  48. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Zahlungsanbieter Sobald in einer

    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
  49. TechMBA Startplatz 2013 TechMBA Startplatz 2013 PDFs / Rechnungen Schöne,

    individuelle PDFs im Web generieren ist immer noch ein Problem Einsatzgebiete: Rechnungen, Gutscheine, … Für PDFs: HappyPDF Für Rechnungen: SalesKing
  50. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Tracking Analyse von Benutzerverhalten

    Grundlage für Konzept/Designentscheidungen Basis-Tracking: Google Analytics A/B Tests: Visual Website Optimizer / Optimizely
  51. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Mails Massenhaft Mails aus

    einem Account senden z.B. Newsletter, Statusemails, …. Blacklist-Problematik Wir nutzen Mailchimp für Newsletter und SendGrid/Mandril für normales Email versenden
  52. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Internationalisierung Man will eine

    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
  53. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Internationalisierung Ich will eine

    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
  54. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Internationalisierung Wie managed man

    die ganzen Übersetzung Für kleine Teams: Github Für größere Teams: Localeapp WebTranslateIt
  55. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Internationalisierung Wie managed man

    die ganzen Übersetzung Für kleine Teams: Github Für größere Teams: Localeapp WebTranslateIt
  56. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Icons Icon Fonts sind

    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
  57. TechMBA Startplatz 2013 TechMBA Startplatz 2013 Icons Icon Fonts sind

    fast immer besser als Bilder Es gibt einige Services: Font Awesome, Entypo, … Wir benutzen Fontello