+ All Categories
Home > Technology > Rails und Scrum in großen Projekten

Rails und Scrum in großen Projekten

Date post: 14-Dec-2014
Category:
Upload: phillip-oertel
View: 1,350 times
Download: 2 times
Share this document with a friend
Description:
 
72
Rails und Scrum in großen Projekten Ein Einblick in die Praxis Phillip Oertel, betterplace.org HPI Uni Potsdam, 10. November 2009
Transcript
Page 1: Rails und Scrum in großen Projekten

Rails und Scrum in großen Projekten

Ein Einblick in die Praxis

Phillip Oertel, betterplace.orgHPI Uni Potsdam, 10. November 2009

Page 2: Rails und Scrum in großen Projekten

Überblick

• Intro

• Scrum

• ein typischer Tag ...

• Ruby, Rails

• Q&A Session

Page 3: Rails und Scrum in großen Projekten

Intro

Page 4: Rails und Scrum in großen Projekten

über mich

• seit 1999 Web-/Software-Entwickler

• Ruby on Rails seit 2005 (~4 Jahre)

• Scrum: 1½ Jahre

Page 5: Rails und Scrum in großen Projekten

über mich

• zuletzt 3 Jahre Rails bei

• jetzt: technischer Leiter bei

Page 6: Rails und Scrum in großen Projekten

großes Projekt?

Rails

Frontend

Tester

Product Owner

Scrum Master

0 10 20 30

Stan

d 09

.200

9

Page 7: Rails und Scrum in großen Projekten

• 5tes Semester

• Aufgabe: ERP-System erstellen

• 13 Wochen-Projekt (80-100 Stunden)

• 13 Teams á 4-8 Studenten

• Projekt hat gerade angefangen

über Euch

Page 8: Rails und Scrum in großen Projekten

über Euch

?

Page 9: Rails und Scrum in großen Projekten

Zahlen, Zahlen, Zahlen.

• „68% aller IT-Projekte scheitern.“

• „Konventionelle Projekte scheitern öfter.“ 59% vs. 35% Prozent.

• „92% would recommend agile to others.“

http://fuwatch.wordpress.com

http://www.silicon.de/cio/strategie/0,39038989,39200412,00/68+prozent+aller+it_projekte+scheitern.htm

http://www.computerwoche.de/mittelstand/1907184/index3.html

http://www.succeedingwithagile.com/wp-content/uploads/2009/10/Reported-Benefits-of-Agile.ppt

Page 10: Rails und Scrum in großen Projekten

agile ???

Page 11: Rails und Scrum in großen Projekten

Agile Manifesto

http://agilemanifesto.org

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

that is, why there is value in things on the right, we value the things on the left more.

Page 12: Rails und Scrum in großen Projekten

Scrum

Page 13: Rails und Scrum in großen Projekten

SCRUMTeam

ZusammenarbeitDiskussion

Priorisierung

Unsicherheit

Mut

Lernen

Big Visible Charts

Iterativ

selbst rausfinden

Anpassen

hohe Eigenverantwortung

Schlank

Vertrauen

Fokus

Transparenz

Page 14: Rails und Scrum in großen Projekten
Page 15: Rails und Scrum in großen Projekten
Page 16: Rails und Scrum in großen Projekten

Scrum-Warnung 1

„You don't see high performing Scrum teams without XP engineering practices.“― Jeff Sutherland und Ron Jeffries

http://blog.crisp.se/henrikkniberg/2007/10/13/1192249140000.html

Page 17: Rails und Scrum in großen Projekten

XP

http://www.extremeprogramming.org/rules.html

sustainable pace

move people around

simplicity

spike solutionsYAGNI: don‘t add functionality early

refactor

agreed standards

test-first

pair programming

integrateoften collective

ownership

Page 18: Rails und Scrum in großen Projekten
Page 19: Rails und Scrum in großen Projekten

Kein Prozess und kein Tool der Welt erlauben es, sich zurückzulehnen und den Kopf abzuschalten ...

Scrum-Warnung 2

Page 20: Rails und Scrum in großen Projekten

... außer nach Feierabend.

Page 21: Rails und Scrum in großen Projekten

Scrum-Warnung 3

• „The good thing about Scrum is it doesn’t claim to be right. It claims to be a flexible foundation which will get better each iteration.“

• Nutzt die Retrospektiven, und passt Euer Vorgehen an.

• Aber: „understand the rules before you break them.“ http://xprogramming.com/xpmag/jatBaseball

http://blog.brianhartsock.com/2009/11/04/an-outsiders-first-look-at-scrum/

Page 22: Rails und Scrum in großen Projekten

Rollen in Scrum

Page 23: Rails und Scrum in großen Projekten

Rolle: Product Owner

• Holt Anforderungen vom Kunden ab

• bereitet sie für die Programmierung vor

• Priorisiert und stellt dem Team die gerade wichtigsten vor

• Nimmt am Sprint-Ende Ergebnisse ab

• zentrale Rolle. Sagt Ja/Nein.

Page 24: Rails und Scrum in großen Projekten

Beispiel: Inventar-Software

1. Gegenstände erfassen (Name, Kategorie (vorgegeben), eindeutige Id, Kaufdatum, aktueller Standort)

2. Aufkleber drucken (eindeutige Id, Name der Firma)

3. Gegenstände auflisten

4. Gegenstände suchen

Page 25: Rails und Scrum in großen Projekten

Achtung: Nichtfunktionale Anforderungen?

• Bsp: „System muß 1.000 Benutzer gleichzeitig verkraften“

• werden in Besprechung mit dem Team herausgefunden (z.B. Estimation Meeting)

Page 26: Rails und Scrum in großen Projekten

TIP

• Beginnt früh mit der Anforderung, bei der die größte Unsicherheit besteht.

Page 27: Rails und Scrum in großen Projekten

TIP

• Regelmäßige Treffen der Product Owner zur Abstimmung: Product Owner Team.

• ein für alle klares Projektziel

• hat auch einen (Teilzeit-)Scrum Master.

Page 28: Rails und Scrum in großen Projekten

Rolle: Scrum Master

• Kennt Scrum und bringt es dem Team bei. Ziel: sich selbst überflüssig machen

• Beseitigt aktiv Hindernisse (Impediments)

• Schützt das Team vor Störungen

• „Führt durch Dienen“. Hilft, gleicht aus, coacht. Moderiert die Meetings, bereitet sie vor und nach.

• Hat keine Macht: entscheidet nicht mit.

Page 29: Rails und Scrum in großen Projekten

Beispiel: Planning Board

https://scrumy.com/hpi-demo-1

Page 30: Rails und Scrum in großen Projekten

Beispiel: Planning Board

FAIL!

https://scrumy.com/hpi-demo-1

Page 31: Rails und Scrum in großen Projekten

Beispiel: Planning Board

Page 32: Rails und Scrum in großen Projekten

Beispiel: Planning Board

RITE!YOU‘RE DOIN

‘ IT

Page 33: Rails und Scrum in großen Projekten

Rolle: Team (Entwickler)

• Implementieren die Anforderungen

• Planen den Sprint

• Schreiben Unit Tests

• Präsentieren am Sprint-Ende das Ergebnis

• Schätzen den Aufwand der Anforderungen (Estimation Meetings)

Page 34: Rails und Scrum in großen Projekten

Rolle: Team (Tester)

• Testet und gibt Feedback

• erstellt automatisierte Akzeptanz-Tests

• erarbeitet mit Product Owner die Akzeptanz-Kriterien für Anforderungen („Wann ist etwas fertig?“)

Page 35: Rails und Scrum in großen Projekten

# The title should describe an activityFeature: An Admin creates users# [...]# The scenario title should say what´s differentScenario: Add a user # put the system in a known state Given I am on "the add a user form" # describe the key action(s) When I enter correct user data And I click on the CREATE button # observe/test outcomes Then I should see "the user detail page“ for the new user

http://cukes.infohttp://wiki.github.com/aslakhellesoy/cucumber/given-when-then

http://dannorth.net/introducing-bdd

Anforderungen mit beschreiben

Page 36: Rails und Scrum in großen Projekten

Tip: Scrum of Scrums

• Nach dem Daily Scrum des Teams geht ein Entwickler zum „Über-Daily-Scrum“

• dort: „was hat mein Team gemacht ...“, nicht „Was habe ich ...“

Page 37: Rails und Scrum in großen Projekten

ein typischer Tag ...

Page 38: Rails und Scrum in großen Projekten
Page 39: Rails und Scrum in großen Projekten

Sprint Planning Board

Page 40: Rails und Scrum in großen Projekten

(c) http://www.flickr.com/photos/e-ality

Page 41: Rails und Scrum in großen Projekten

(c) http://www.flickr.com/photos/e-ality

Page 42: Rails und Scrum in großen Projekten

Red,Green,

Refactor!

Page 43: Rails und Scrum in großen Projekten
Page 44: Rails und Scrum in großen Projekten

TIP

• frühzeitig automatisieren (eigenes Team?)

• Ein Build pro Produkt

• Ein Integrations-Build mit allem

Page 45: Rails und Scrum in großen Projekten

Meeten (=Reden)

Page 46: Rails und Scrum in großen Projekten
Page 47: Rails und Scrum in großen Projekten

Ruby

Page 48: Rails und Scrum in großen Projekten

Ruby

Page 49: Rails und Scrum in großen Projekten
Page 50: Rails und Scrum in großen Projekten

offene Klassen# Inventar-Team programmiert:class Item def current_value 42 endend

# Finanzen-Team programmiert:class Item def current_value 47.11 endend

Page 51: Rails und Scrum in großen Projekten

offene Klassen

# Lösung module Inventory class Item def current_value 42 end endend

module Finance class Item def current_value 47.11 end endend

assert_equal 42, @item.current_value

Page 52: Rails und Scrum in großen Projekten

Ruby on Rails

Page 53: Rails und Scrum in großen Projekten

Architektur 1:Namespaces

Page 54: Rails und Scrum in großen Projekten

Archi-Variante 2: Engines

Page 55: Rails und Scrum in großen Projekten

Architektur 3:ActiveResource

• „SOA Light“ mit REST-Architektur.

• Jede Anwendung/Dienst (Inventar, BenutzerAuth) ist ein eigener Prozess

• zusätzlicher Komplexitätgrad

Page 56: Rails und Scrum in großen Projekten

Architektur 3:ActiveResource

Page 57: Rails und Scrum in großen Projekten

MVC

• „fat model, skinny controller“Geschäftslogik ins Modell

• Controller ist Mediator

• View ist schlank und dumm

Page 58: Rails und Scrum in großen Projekten

Eine kleine Geschichte

http://www.spiegel.de/spiegel/0,1518,634334,00.html

Der Release-Termin von Windows 7 wurde zweimal verschoben.

Page 59: Rails und Scrum in großen Projekten

Eine kleine Geschichte

er wurde zweimal vorverlegt!

http://www.spiegel.de/spiegel/0,1518,634334,00.html

Page 60: Rails und Scrum in großen Projekten

Eine kleine Geschichte

Microsoft arbeitet seit 3 Jahren mit XP,einem agilen Prozess.

http://www.spiegel.de/spiegel/0,1518,634334,00.html

Page 61: Rails und Scrum in großen Projekten

diese Seite wurde absichtlich freigelassen.

Page 62: Rails und Scrum in großen Projekten

Zusammenfassung

• Scrum-Grundregeln umsetzen, dann das Vorgehen regelmäßig anpassen

• Rubys Stärken und Schwächen kennen und entsprechend arbeiten

• habt nicht die Erwartung, das in eurem kurzen Projekt alles auf Anhieb klappt!

Page 64: Rails und Scrum in großen Projekten

Buchtips

Page 65: Rails und Scrum in großen Projekten

Scrum-Basicskurz, gut, alles Wesentliche drin

http://tinyurl.com/2p5fqq

Page 66: Rails und Scrum in großen Projekten

Scrum-Basics und kundenorientiertes

Anforderungs-Management

http://tinyurl.com/yfuruxt

Page 67: Rails und Scrum in großen Projekten

gutes deutschsprachiges Rails-Buch

http://tinyurl.com/yh6x9jg

Page 69: Rails und Scrum in großen Projekten

Extras

Page 70: Rails und Scrum in großen Projekten

Merkmale guter Anforderungen

• Unabhängig

• Verhandelbar

• Nützlich

• Schätzbar

• Klein

• Testbar

„Scrum“ - Roman Pichler, Seite 44-46

Page 71: Rails und Scrum in großen Projekten

„Why the Waterfall model doesn‘t work“

„the requirements are reasonably well defined“

• „changes during development will be small“

• „system integration is predictable & plannable“

• „software innovation and R&D are predictable“

„Scaling Software Agility“, Dean Leffingwell, Seite 17-27

WRONG

ASSUMPTIO

NS

Page 72: Rails und Scrum in großen Projekten

„Campus Management“

http://is.gd/4Rco7

Erstes Release ca. 2001; Einführung hier WS 2005.Die Bewertung ist aus dem Sommersemester 2006.


Recommended