agile entwicklungsumgebung mit dvcs, jenkins und trello - agile bodensee konferenz 2013
DESCRIPTION
Vortrag über eine günstige agile Entwicklungsumgebung mit DVCS, Jenkins und Trello auf der Agile Bodensee Konferenz 2013TRANSCRIPT
Agile Entwicklungsumge
bungmit DVCS, Jenkins und Trello
Jürgen Gutsch
• Software Developer, Trainer und Berater bei der YooApplications AG in Basel www.yooapps.com• Freier Trainer und Berater• Blogger aspnetzone.de/blogs/juergengutsch• Fachautor • Speaker• Community Lead des .NET-Stammtisch Konstanz-
Kreuzlingen: dotnetkk.de • .NET-begeisterter Developer seit 2001
Motivation
• Ehem. Gründer eines Software Startups• Das Startup erforderte günstige Tools• Das Startup erforderte flexible Tools• (Prozessunabhängig)
• Das Startup erforderte flexible Techniken• Das Project Setup musste minimal sein• Kunden sollten die Tools verstehen können
Themen
• Distributed Version Control Systems• Git und Mercurial
• Continous Integration• Build-, Test- und Delivery Automation mit Jenkins-CI
• Planning & Collaboration• Trello
DVCS
• Git und Mercurial (Hg) sind gängige Systeme• Für allen Plattformen• Große Communities• Kostenfreies Hosting bei • Bitbucket • Github• Codeplex• Team Foudation Services (ja, wirklich!!)
• Einfache Installation auf eigenen Servern
Warum DVCS
• Offline arbeiten• Schnelleres Arbeiten mit DVCS• Lokale Repositories• Leichteres Branching and Merging• Leichteres Feature Branching• Weniger Platz auf der Festplatte benötigt
Git vs. Mercurial
• Die Unterschiede sind im Detail, und meist in der Praxis nicht relevant• https://www.atlassian.com/dvcs/overview/dvcs-options-g
it-or-mercurial
• Pro Git• Staging• Änderbare Historie• Größere Community, Quasi Standard
• Pro Mercurial• Einfacher zu lernen• Nicht änderbare Historie• Bessere GUI Unterstützung (Windows)
Agil arbeiten mit DVCS
• „Deliver a working inkrement of the Software“• Features in Branches isolieren („Feature Branching“)• Nur fertige Features in den Haupt-Branch mergen
Bildquelle: http://martinfowler.com/bliki/FeatureBranch.html
Continous Integration
• Jede Code Änderung automatisch • Bauen• Testen• ggf. Ausliefern
• Frühes Feedback für die Entwickler • Frühes Feedback für das gesamte Team, inkl. dem
Kunden
CI mit Jenkins
• Open Source• Kostenfrei• Plattformunabhängig• Flexibel, Erweiterbar, über 600 Plug-Ins• Ressourcenschonend• Große Community• Selbsthostende Applikation, unter Windows als
Dienst
Agil Arbeiten mit Jenkins
• Frühes Feedback bei Code-Änderungen• Jede Code-Änderung löst Build aus
• Der erfolgreiche Build erzeugt eine • lauffähige Software• getestete Software
• Kunden über erfolgreiche Builds Benachrichtigen• Kunden erfolgreiche Builds direkt ausliefern• Oder gleich Installieren
• Kunden Build anstoßen lassen
Planning & Collaboration
• Gemeinsames Arbeiten von Kunde und Team• Frühes Kundenfeedback• Feature-Priorisierung durch den Kunden• Whiteboard erfordert Physikalische anwensenheit• Elektronisches Board ist intuitiv Bedienbar
Trello
• Kostenfrei mit vielen Features• Interaktives Board mit flexibler Anzahl an Spalten• Mehrere Prozesse sind möglich• Stories/Features werden als Kärtchen dargestellt• Drag&Drop der Kärtchen• Websocket für UI-Aktualisierung• Web UI, Cross-Browser und Cross-Plattform fähig
Agil Arbeiten mit Trello
• Scrum-Planning mit mehreren Boards möglich• Kanban Planing mit mehreren Spalten möglich• Kunde kann Zugang zum System bekommen• Sofortiges Feedback bei Änderungen auf der UI• Planungen über Entfernungen mit Trello Ideal• Verschieben von Kärtchen über Boards möglich
Fazit
• Eine Flexible IDE muss nicht viel kosten• Kostenfreie Tools können die Anforderungen kleiner
Unternehmen und Startups voll decken• Große Communities sorgen für den Support der
Tools
Vielen Dank
Fragen sie mich…
• Im Anschluss persönlich hier auf der Konferenz• Per E-Mail: [email protected]• Per Twitter: @sharpcms• Per Facebook: facebook.com/juergen.gutsch• Skype: juergen.gutsch