Dieses OpenTuesday-Referat von Michael Palotas ging gezielt auf die sogenannten «Agile Engineering Practices» ein und zeigte anhand praktischer Beispiele auf, wie die Anwendung dieser Praktiken als Enabler für agile Softwareentwicklung fungieren.
Es gibt wohl kaum eine Firma, bei der agile Softwareentwicklung kein Thema ist. Viele Organisationen haben sich schon auf den Weg begeben, agil zu werden. Im ersten Schritt bedeutet dies in der Regel, die Prozesse auf eine agile Methodik wie z.B. SCRUM zu ändern.
Auf der Strecke bleiben jedoch oft die (agilen) Entwicklungs-, Test- und Liefermethoden wie Continuous Integration, Test-Automatisierung, Test Driven Development, Pair Programming etc., die eine agile Vorgehensweise erst richtig ermöglichen.
11. WAS
IST
CONTINUOUS
INTEGRATION
UND
CONTINUOUS
DELIVERY?
AutomaBsierte
Builds?
AutomaBsierte
Tests?
<AutomaBsierte
Qualität>?
AutomaBsierte
Deployments?
AutomaBsiertes
Feedback?
11 GRIDFUSION
12. WHAT
IS
CONTIUOUS
INTEGRATION?
12
Continuous integration (CI) is the practice, in software engineering,
of merging all developer working copies with a shared mainline
several times a day. It was first named and proposed as part of
extreme programming (XP). Its main aim is to prevent integration
problems, referred to as "integration hell" in early descriptions of XP.
CI can be seen as an intensification of practices of periodic
integration advocated by earlier published methods of incremental
and iterative software development, such as the Booch method. CI
isn't universally accepted as an improvement over frequent
integration, so it is important to distinguish between the two as there
is disagreement about the virtues of each.
GRIDFUSION
13. WHAT
IS
CONTINUOUS
DELIVERY?
13
Continuous Delivery (CD) is a design practice used in software
development to automate and improve the process of software
delivery. Techniques such as automated testing, continuous
integration and continuous deployment allow software to be
developed to a high standard and easily packaged and
deployed to test environments, resulting in the ability to
rapidly, reliably and repeatedly push out enhancements and
bug fixes to customers at low risk and with minimal manual
overhead. The technique was one of the assumptions of
extreme programming but at an enterprise level has
developed into a discipline of its own, with job descriptions for
roles such as "buildmaster" calling for CD skills as mandatory.
GRIDFUSION
14. WARUM
CI/CD
• Reduzieren
der
Risiken
• RedukBon
des
manuellen
repeBBven
Prozess
• Generierung
von
deploybarer
So]ware
zu
jeder
Zeit
• Bessere
Visibilität
in
das
Projekt
• Erhöhte
“Confidence”
in
das
Produkt
und
das
Team
• Häufigere
Lieferung
von
“Business
Value”
• Früheres
Finden
von
Bugs
• Bessere
Qualität
• Fast
&
frequent
feedback
14 GRIDFUSION
15. NEBENEFFEKTE
VON
CI
• Entwickler
Tests
• Befolgen
der
Coding
Standards
• Refactoring
• Kleine
Releases
• Quality
Mindset
/
CollecBve
Ownership
15 GRIDFUSION
16. CORE
PRINZIPIEN
• Häufige
Commits
• Kein
Commit
von
“broken
Code”
• Rote
Builds
müssen
sofort
gefixt
werden
• Entwickler
schreiben
(auch)
Tests
• Alle
Tests
und
InspekBonen
müssen
grün
sein
• Private
Builds
16 GRIDFUSION
17. HAUPTAUFGABEN
DES
CI
SYSTEMS
• AutomaBsierter
Build
• AutomaBsierte
Code
Qualitätsmessung
• AutomaBsiertes
Testen
• AutomaBsiertes
Deployment
17 GRIDFUSION
19. DER
MANAGEMENT
/
ORGANISATIONS
ASPEKT
• Was
ändert
sich
für
die
Teams?
• Was
sollte
in
einer
OrganisaBon
geändert
werden
um
CI/CD
einzuführen?
• Welche
Rolle
hat
das
Management
bei
der
Einführung
einer
DevOps
Kultur?
19 GRIDFUSION