Agile Methoden & Test-getriebene Entwicklung

Thomas Eisenbarth

makandra GmbH

makandra.com
www.makandra.de

Agenda

makandra

Wer ist heute da?

Ruby on Rails

Ruby on Rails

makandra (2)

Agile Softwareentwicklung

Warum?

Agile SE: Warum?

Weil Softwareprojekte scheitern

Agile SE: Warum?

Weil Softwareprojekte scheitern

Weil BB-Releases scheitern

Agile SE: Weil...

Agile SE: Prinzipien

Agiles Manifest: Prinzipien

Agiles Manifest: Prinzipien (2)

Agile Softwareentwicklung setzt einiges voraus

Agile Softwareentwicklung: Wie?

Choose as many as possible...

Agile Softwareentwicklung: Wie?

Choose as many as possible...

Agile Softwareentwicklung: Arbeitspakete / "Stories"

Eine Story...

Agile Softwareentwicklung: Schätzungen

Agile SE bei makandra

Agile Entwicklung bei makandra

Herausforderungen

Agile Entwicklung bei makandra

Agile Entwicklung bei makandra

"Das beste aus allem"

Typischer Projektablauf

  1. Definition der Anforderungen (Stories)
  2. Projektsetup & Start
  3. Entwicklung, Test, Deployment der Stories
  4. Projektabschluss

Typischer Projektablauf

  1. Definition der Anforderungen (Stories) 25%
  2. Projektsetup & Start 5%
  3. Entwicklung der Stories (Test+Code) 65%
  4. Deployments auf Staging & Produktiv-Systeme 5%

Tools

Testgetriebene Entwicklung

Warum?

Testgetriebene Entwicklung

Weil Software kaputt geht

Warum geht Software kaputt?

Automatisierte Tests bieten wirtschaftliche Vorteile

Testgetriebene Entwicklung

Tests sind Beispiele, wie sich eine Anwendung verhalten soll.

„Auf der Homepage sollen die beliebtesten Produkte erscheinen.“
Scenario: add an item to the shopping cart

Given an article with the name "Nintendo Wii"
When I am on the homepage
And I follow "Nintendo Wii"
And I press "Add to cart"
Then I should see "Item was added to cart"
Scenario: add an item to the shopping cart

Given an article with the name "Nintendo Wii"
When I am on the homepage
And I follow "Nintendo Wii"
And I press "Add to cart"
Then I should see "Item was added to cart"

Unknown class "Article"
1 scenario (1 failed)
Scenario: add an item to the shopping cart

Given an article with the name "Nintendo Wii"
When I am on the homepage
And I follow "Nintendo Wii"
And I press "Add to cart"
Then I should see "Item was added to cart"

Error retrieving page (404 not found)
1 scenario (1 failed)
Scenario: add an item to the shopping cart

Given an article with the name "Nintendo Wii"
When I am on the homepage
And I follow "Nintendo Wii"
And I press "Add to cart"
Then I should see "Item was added to cart"

No such link "Nintendo Wii"
1 scenario (1 failed)
Scenario: add an item to the shopping cart

Given an article with the name "Nintendo Wii"
When I am on the homepage
And I follow "Nintendo Wii"
And I press "Add to cart"
Then I should see "Item was added to cart"

No such button "Add to cart"
1 scenario (1 failed)
Scenario: add an item to the shopping cart

Given an article with the name "Nintendo Wii"
When I am on the homepage
And I follow "Nintendo Wii"
And I press "Add to cart"
Then I should see "Item was added to cart"

Excepted to see "Item was added to cart"
1 scenario (1 failed)
Scenario: add an item to the shopping cart

Given an article with the name "Nintendo Wii"
When I am on the homepage
And I follow "Nintendo Wii"
And I press "Add to cart"
Then I should see "Item was added to cart"

1 scenario (1 passed)

Praxis

Wrap up


Weiterführende Links

Vielen Dank!

http://makandra.com/talks/

Credits

Icons

Images

Backup

Technische Schuld

„Man soll auch ohne Anmeldung und Login bestellen können“

„Man soll auch ohne Anmeldung und Login bestellen können“

Technische Schuld steigt im Laufe von Projekten

Technischer Schuldenabbau

Technischer Schuldenabbau

Releasezyklen

Time to market: Releaseszyklen

Planbarkeit: Velocity

Planbarkeit: Velocity

Planbarkeit: Velocity

Manuelle Test-Phasen funktionieren nicht

„If your team is not able to test everything as soon as it is ready, they soon will ask you to introduce one or two week long test cycles. They tell you that in that time they can do all the testing and that you’ll have a stable release afterwards.
Unfortunately, nothing could be further from the truth. The later you test, the more effort you’ve got to spend fixing bugs introduced weeks ago. And as the code is changing during the testing weeks, every test cycle you do has to be repeated. In the end, your software is no more stable then it was before the test cycle.“

Matthias Marschall

Agile Softwareentwicklung: Scrum

Scrum bietet institutionalisierte Rollen, Abläufe, Zyklen

Scrum

Weitere Alternativen

makandra best practises

makandra best practises

makandra best practises (2)