agile Softwareentwicklung Diskussionspapier

Transcription

agile Softwareentwicklung Diskussionspapier
agile Software - Entwicklung
Diskussionspapier
agile Softwareentwicklung
Diskussionspapier
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 1 von 18
agile Software - Entwicklung
Diskussionspapier
Dokumentinformation
Eckdaten
Verantwortlicher
Autoren : Steffen Müller , Erhard Karger
Version
2
CVS-ID
Dokumentstatus
im Review
Erstellt am
14022008
Zuletzt geändert am
5032008
Dateiname
AgileSoftwareEntwicklung0.3.doc
Mögliche Ausprägungen des Dokumentstatus: „in Arbeit“, „vorgelegt zum Review“, „freigegeben“
Standard für die Versionsnummernvergabe:
0.X für Arbeitsstände, 1.0 für abgeschlossene Dokumente vor Review, 1.X für abgeschlossene Dokumente nach Review
Änderungsnachweis
Nr. Version
CVS-ID
Datum
Änderung
Datum
Inhalte des Reviews
Mitarbeiter
1
2
3
4
5
Reviewnachweis
Nr.
Version
CVS-ID
Teilnehmer
2
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 2 von 18
agile Software - Entwicklung
Diskussionspapier
Inhaltsverzeichnis
Das Inhaltsverzeichnis ist leer, da keiner der Absatzstile, die in den Informationen „Dokument“
ausgewählt sind, im Dokument verwendet wird.
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 3 von 18
agile Software - Entwicklung
Diskussionspapier
1Einleitung
Ausgelöst durch die schnelle Entwicklung der VVG - Konvertierungsinfrastruktur, stellt sich die
Frage, ob das in diesem Prozess angewandte Entwicklungsverfahren und Techniken weiter genutzt werden sollen.
Dieses Dokument trägt Informationen zusammen und soll der Diskussion über dieses Thema
eine erste Basis liefern, um dann eine Entscheidung darüber zu fällen, welche Entwicklungsverfahren bzw. Techniken eingesetzt werden oder auch verworfen werden. Es sei gleich zu Anfang
klar gestellt, dass agile Softwareentwicklung nicht die Lösung aller Probleme ohne hart zu arbeiten ist. Nein – agile Entwicklung fördert Selbständigkeit und fordert harte Arbeit der Einzelnen im Projekt und an sich selbst.
Betrachtet man den Entstehungsprozess der Konverterinfrastruktur, so fällt auf dass :
1. es sich um ein „überschaubares“ Vorhaben handelt,
2. keine Konzepte erstellt wurden, sondern sofort mit der Realisierung angefangen wurde,
3. ein Framework benutzt wurde, das schnelles unkompliziertes entwickeln auf der „grünen
Wiese“ erlaubt,
4. das gewünschte Ergebnis klar war,
5. eine hohe Kooperationsbereitschaft auf Kundenseite vorhanden war,
6. bestehende und gekaufte Komponenten (Konverter) miteinander verbunden, sowie deren Workflow abgebildet werden musste.
1.1Der Begriff Softwareentwicklung
Unter Softwareentwicklung bzw. software engineering wird in Wikipedia eine Definition von
Helmut Balzert angeboten. Sie beschreibt die Softwareentwicklung als die Herstellung eines
Produktes (Software) wie folgt:
„zielorientierte Bereitstellung und systematische Verwendung von Prinzipien, Methoden
und Werkzeugen für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung
von umfangreichen Softwaresystemen.“
Dies bedeutet also, dass in einem Unternehmen die betrieblichen und vertrieblichen Prozesse
durch ein neues Softwareprodukt erweitert bzw. ergänzt werden sollen. Hierfür wenden ausgebildete Experten (Softwareentwickler) Prinzipien, Methoden und Werkzeuge an, um gemeinsam ein Produkt (als Anforderung definiert) zu erzeugen, das die Systemlandschaft des jeweiligen Unternehmens entsprechend ergänzen soll.
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 4 von 18
agile Software - Entwicklung
Diskussionspapier
1.2Agile Softwareentwicklung
Das Ziel Agiler Softwareentwicklung ist es, den Softwareentwicklungsprozess flexibler und
schlanker zu machen, als das bei den klassischen Vorgehensmodellen der Fall ist. Man möchte
sich mehr auf die zu erreichenden Ziele fokussieren und auf technische und soziale Probleme
bei der Softwareentwicklung eingehen. Die Agile Softwareentwicklung ist eine Gegenbewegung
gegenüber den oft als schwergewichtig und bürokratisch angesehenen Softwareentwicklungsprozessen wie dem Rational Unified Process oder dem V-Modell.
Agile Methoden kennzeichnen eine an Agilität (lat. agilis 'flink, beweglich) ausgerichtete Methode zur Softwareentwicklung, also ein konkretes einzelnes Teilvorgehensverfahren.
Ziel dieser Methoden ist die Aufwandskurve möglichst flach zu halten was dem Leitsatz gilt: „Je
mehr Du nach Plan arbeitest, um so mehr bekommst Du das, was Du geplant hast, aber nicht
das, was Du brauchst.“
Beispiele für Agile Methoden:
•
Paarprogrammierung
•
Testgetriebene Entwicklung
•
ständige Refaktorisierungen
•
Story-Cards
•
schnelle Codereviews
Ergänzt werden diese Methoden durch Prinzipien wie folgende:
•
Vorhandene Ressourcen mehrfach verwenden
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 5 von 18
agile Software - Entwicklung
Diskussionspapier
•
einfach
•
zweckmäßig
•
kundennah
•
Gemeinsamer Code-Besitz (Collective Code Ownership)
•
Stetige Qualitätssicherung durch Unittests pro Iteration
Der Übergang zwischen Prinzipien und Methoden ist fließend.
1.3Softwareprozesstrends
Untersucht man die Techniken und Methoden, die in der Softwaretechnik in den letzten 50 Jahren angewandt wurden, so kann man gewisse Tendenzen ablesen. Nach Roman Pichler ist folgender Softwareentwicklungstrend zu erkennen:
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 6 von 18
agile Software - Entwicklung
Diskussionspapier
2Scrum
Scrum ist ein agiles Projektmanagementframework, das sich auf alle Arten der Softwareentwicklung anwenden lässt. Richtig eingesetzt hilft Scrum, Kundenzufriedenheit und Wertschöpfung nachhaltig zu steigern mit folgenden Charakteristika:
-
einfache Regeln
-
wenige Rollen
-
mehrere Arten von Meetings mit bestimmten Zwecken
-
einige Schlüssel-Artefakte, deren Pflege Overhead vermeidet und die maximale Transparenz auf einfache Weise bietet
-
Pragmatismus statt Dogmatik
-
iteratives Vorgehen
-
Selbstorganisation und Eigenverantwortung in interdisziplinären Teams
-
Konzentration auf hochqualitative Arbeit anstatt auf eine Papierflut bei der Spezifikation
-
Änderungen der Kundenanforderungen während des Projekts gelten als normal, nicht
als Störfaktor (es gibt keine „fertige“ Spezifikation)
-
speziell geeignet für hochkomplexe Projekte mit unklaren Anforderungen
-
Alle zwei Wochen bis zu einem Monat kann jeder echt lauffähige Software sehen und
entscheiden, diese so auszuliefern oder in einem weiteren Abschnitt zu ergänzen
-
Erlaubt es, sich auf die Auslieferung der wichtigsten Geschäfts-Anforderungen innerhalb
kürzester Zeit zu fokussieren.
2.1Der Scrumprozess
Scrum kennt drei Rollen für direkt am Prozeß Beteiligte: Product Owner (stellt fachliche Anforderungen und priorisiert sie), ScrumMaster (managt den Prozess und beseitigt Hindernisse) und
Team (entwickelt das Produkt). Daneben gibt es als Beobachter und Ratgeber noch die Stakeholders.
Die Anforderungen (Requirements) werden in einer Liste (Product Backlog) gepflegt, erweitert
und priorisiert. Empfehlenswert ist es die Anforderungen mit sogenannten Story Points zu bewerten. Story Points sind eine Einheit für Komplexität (ausschliesslich). Sie dienen der Schätzung von Aufwand für die Erledigung einer Aufgabe.
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 7 von 18
agile Software - Entwicklung
Diskussionspapier
Das Product Backlog ist ständig im Fluß. Um ein sinnvolles Arbeiten zu ermöglichen, wird monatlich vom Team in Kooperation mit dem Product Owner ein definiertes Arbeitspaket dem oberen, höher priorisierten Ende des Product Backlogs entnommen und komplett in Funktionalität
umgesetzt (inkl. Test und notwendiger Dokumentation). Dieses Arbeitspaket, das Increment,
wird während der laufenden Iteration, des sog. Sprints, nicht durch Zusatzanforderungen modifiziert, um seine Fertigstellung nicht zu gefährden. Alle anderen Teile des Product Backlogs
können vom Product Owner in Vorbereitung für den nachfolgenden Sprint verändert bzw. neu
priorisiert werden.
Das Arbeitspaket wird in kleinere Arbeitspakete (Tasks) heruntergebrochen und mit jeweils
zuständigem Bearbeiter und täglich aktualisiertem Restaufwand in einer weiteren Liste, dem
Sprint Backlog, festgehalten. Während des Sprints arbeitet das Team konzentriert und ohne
Störungen von außen daran, die Tasks aus dem Sprint Backlog in ein Increment of Potentially
Shippable Functionality, also einen vollständig fertigen und potentiell produktiv einsetzbaren
Anwendungsteil, umzusetzen. Das Team gleicht sich in einem täglichen, streng auf 15 Minuten
begrenzten Informations-Meeting, dem Daily Scrum Meeting, ab, damit jeder weiß, woran der
andere zuletzt gearbeitet hat, was er als nächstes vor hat und welche Probleme es evtl. gibt.
Am Ende des Sprints präsentiert das Team dem Product Owner, den Stakeholders u.a. interessierten Teilnehmern in einem sog. Sprint Review Meeting live am System die implementierte
Funktionalität. Halbfertiges oder gar Powerpoint-Folien sind während des Reviews verboten.
Das Feedback der Zuseher und die neuen Anforderungen des Product Owners für den kommenden Sprint fließen dann wieder in das nächste Sprint Planning Meeting ein, und der Prozess beginnt von neuem.
Der ScrumMaster sorgt während des gesamten Prozesses dafür, dass Regeln eingehalten werden und der Status aller Tasks im Sprint Backlog von den jeweils zuständigen Team-Mitgliedern
täglich aktualisiert wird. Er macht den Projektfortschritt transparent durch einen geeigneten Reporting-Mechanismus: die Veröffentlichung sog. Burndown Charts, welche den Fortschritt für
den aktuellen Sprint bzw. für das gesamte Projekt jeweils in Form einer Kurve visualisieren.
Eingezeichnete Trendlinien erlauben es, mögliche Probleme und Verzögerungen einfach (und
rechtzeitig!) zu erkennen.
Im Kern basiert Scrum also auf einer inkrementellen Vorgehensweise, der Organisation von
Entwicklungsabschnitten und Meetings in vordefinierten Zeitabschnitten (Time-Boxes) und der
Erkenntnis, dass ein funktionierendes Produkt wichtiger ist als eine dreihundertseitige Spezifikation.
Die Sprint Retrospective soll reflektieren, wie ein Sprint gelaufen ist. Sie wird meistens im Anschluss an den Sprint Review durchgeführt.
Das gesamte Team wird eingeladen, der Product Owner ist anwesend, der Scrum Master moVersion: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 8 von 18
agile Software - Entwicklung
Diskussionspapier
deriert. Andere Stakeholder sind willkommen, allerdings nur als Zuschauer.
Während der Sprint Retrospective sollte das Team:
•
Das Product-Burndown Chart auswerten. Wie ist es gelaufen?
•
Die Team Velocity auswerten. Zur Ermittlung der Velocity (Geschwindigkeit) summiert
man alle Story Points des Sprints, die mit DONE abgearbeitet wurden und setzt sie in
Relation zu dem Total aller geschätzten Story Points im Product Backlog. Das kann man
graphisch darstellen und erhält über mehrere Sprints einen Trend. Dieser Trend ist sehr
wichtig für das Sprint Planning. Die Velocity ist ein Anhaltspunkt für die Arbeit, die ein
Team für einen Sprint annehmen kann. Das Team sollte auch hier Schwankungen in der
Kurve hinterfragen, Überstunden berücksichtigen und den totalen Aufwand errechnen:
Wie viel Stunden wurden effektiv aufgewendet? Was wurde geliefert?
•
Diskutieren, was gut gelaufen ist.
•
Diskutieren, was nicht so gut gelaufen ist.
•
Entscheiden, was im nächsten Sprint verändert wird.
Das ist ein kontinuierlicher Lernprozess.
Die Sprint Retrospective ist kein auferlegtes Muss vom Management. Hier ist das Team auf
sich gestellt - selbstorganisierend und selbstregulierend. Gerade aber die Anpassung der
Team Velocity ist ein sinnvolles Planungsinstrument und hilft weitere Releasezyklen realistischer zu planen.
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 9 von 18
agile Software - Entwicklung
Diskussionspapier
3Die Rolle dynamischer Sprachen
Theoretisch kann ein agiler Softwareentwicklungsprozess mit jeder Sprache realisiert werden.
Allerdings haben dynamische Sprachen Vorteile der kurzen Entwicklungszyklen, wie sie in agilen Projekten notwendig sind.
•
schnelle Erlernbarkeit
neue Teammitglieder sind sehr schnell produktiv. Die Ausbildung der Mitarbeit ist schnell
und hart an der Praxis möglich.
•
Klare, pragmatische Sprachstruktur
Man beschäftigt sich mit dem Geschäftsproblem und nicht damit, die Sprache oder Frameworks oder IDEs zu verstehen (Framework als Mittel zum Zweck)
•
pragmatische Handhabbarkeit
Änderungen sind sofort sichtbar. Technologien sind auf Teamwork ausgelegt.
Die Komplexität der Fachlichkeit wirkt sich auf die technische Abbildung aus, diese wiederum fordert von den Mitarbeitern die Skills diese zu ermöglichen. Hat man sofortiges Feedback dessen, was man programmiert hat, kann in iterativen Zyklen auf die Fachlichkeit eingegangen werden und so Fachlickeit, Skills und Abbildung zusammengeführt werden.
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 10 von 18
agile Software - Entwicklung
Diskussionspapier
4Eigenschaften verschiedener Sprachen bzw. Frameworks
In diesem Kapitel werden verschiedene Sprachen, die sich für Scrum eignen, kurz charakterisiert.
4.1Groovy
Hierzu kann derzeit von den Autoren keine Aussage getroffen werden. Eventuell kann hierzu
7IT Architektur einen Beitrag liefern.
4.2Smalltalk
Smalltalk ist eine rein objektorientierte Programmiersprache, eine große Klassenbibliothek und
eine interaktive Programmierumgebung in einem.
Smalltalk ist die erste konsequent objektorientierte Sprache (und die zweite Sprache mit OO-Elementen nach Simula, für das die OO-Konzepte erfunden wurden). Smalltalk ist heute eine eher elitäre Sprache, in der ein ausgewählter Anwenderkreis die objektorientierten Konzepte
vollständig nutzen und in der nach wie vor revolutionäre Frameworks, wie Seaside, entstehen.
Die Programmiersprache Smalltalk ist rein objektorientiert, reflexiv, implizit getypt und besitzt
Schnittstellen zu allen gängigen Systeme wie CICS, SAP, Notes, MQ, Office....
Rein objektorientiert bedeutet, dass jeder Wert und jede Datenstruktur ein Objekt ist.
Reflexiv bedeutet, dass Smalltalk in Smalltalk implementiert ist. Die Objekte, die die Sprache
Smalltalk definieren, sind selber mit den Mitteln der Sprache beschrieben. Daher sind Klassen
und Methoden selber wieder Smalltalk-Objekte und gehen bei der Übersetzung einer Klasse
nicht einfach in dem erzeugten Programm auf. Die Verwendung von Smalltalk Objekten zur Definition des Smalltalk-Systems erlaubt dem Programmierer sowohl die Sprache selbst als auch
die Programmierumgebung zu erweitern.
Eine implizit getypte Sprache besitzt zwar Typen -- in Smalltalk sind dies die Klassen der Objekte -- aber die Zuordnung der Typen zu Objekten erfolgt zur Laufzeit und muss nicht als Typdeklaration zur Programmierzeit angegeben werden. Damit ist Smalltalk typsicher: es ist unmöglich, ein Programm durch Verwendung einer unverstandenen Nachricht zum Absturz zu
bringen.
Die Reflexivität von Smalltalk erlaubt es, eine solche illegale Situation zu erkennen und innerhalb von Smalltalk zu behandeln. Auch die Klassenbibliothek und die Entwicklungsumgebung
sind komplett in Smalltalk realisiert. Compiler, Debugger und das Browsersystem sind SmalltalkProgramme und liegen in der Regel in Quelltexten vor. Der Browser ist gleichzeitig ein integrierter Editor, Sourcecode-Analysator und Refaktorisierungswerkzeug.
Die Schwierigkeit beim Erlernen von Smalltalk besteht nicht im Erlernen der Syntax, denn diese
besteht aus nur 5 Schlüsselworten, sondern eher in der konsequenten Denkweise in einer objektorientierten Welt.
4.2.1Die Stärken von Smalltalk
Die bisher beschriebenen Eigenschaften von Smalltalk als Programmiersprache und -umgebung ergeben in der Praxis einige wichtige Stärken:
•
Smalltalk erlaubt die einfache und flexible Modellierung von Konzepthierarchien, die dem
klassischen Muster der schrittweisen Verfeinerung vom Allgemeinen zum Speziellen folgt.
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 11 von 18
agile Software - Entwicklung
Diskussionspapier
Damit bietet sich Smalltalk geradezu prototypisch für die Modellierung von Geschäftswissen
an.
•
Smalltalk ist ein ausgereiftes, hoch-performantes und skalierbares System, das "write-oncerun-everywhere" Ausführung erlaubt und das seit Anfang der 80er Jahre. Die Auswahl der
verfügbaren Plattformen hängt vom Anbieter ab und deckt bei VisualWorks von Cincom alle
aktuellen Workstations von PC, Mac bis hin zu den diversen Unix/Linux-Varianten ab.
•
Im Kontext von Smalltalk ist eXtreme Programming entwickelt
•
Smalltalk kann seine Stärken besonders in einem Umfeld mit hoher Änderungshäufigkeit
ausspielen. Die integrierte inkrementelle Entwicklungsumgebung zusammen mit der Flexibilität, die sich aus der Reflexivität und der impliziten Typisierung ergibt, erlauben schnelle
und jederzeit verifizierbare Modifikationen und schnelle Entwicklungszyklen.
In der Summe aller seiner Eigenschaften, empfiehlt sich Smalltalk für die Entwicklung komplexer und vielschichtiger Systeme, die fortwährend an eine sich ändernde Welt angepasst werden
müssen.
4.2.2Seaside
Seaside ist ein Framework das agile Webapplikationentwicklung unterstützt. Es basiert auf dem
Ajax-Modell zur Erstellung von Webapplikationen und ist durch folgende Merkmale gekennzeichnet:
•
Die Session ist direkter Teil des Codes
•
HTML/CSS wird unterstützt
•
Callbackbasiertes Modell
•
Unterstützt Wiederverwendung durch Komposition von Komponenten
•
Debugging und Entwicklungstools sind direkt im Browser nutzbar
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 12 von 18
agile Software - Entwicklung
Diskussionspapier
4.3Ruby
Ruby ist eine Scriptsprache, man kann sich Ruby als einen rein objektorientierten vereinfachten
Zusammenschluss vorstellen.
Aufgabe
Potential
Integration
Ruby kann auf den Plattformen Windows und
Unix mit der gleichen Syntax als Batchsteuerung eingesetzt werden. Es verbindet Datenbank, Officeprogramme und ExeDateien von
Drittanbietern.
über Schnittstellen zur Officewelt können Word
und Excel gesteuert werden. Es können VB
Kommandos ausgeführt werden.
Wie in Perl können allgemeine Scripts zur
Problemlösung geschrieben werden.
Ruby läuft auf Windows und Unix sowie auf allen Plattformen die Java unterstützen,
In Ruby kann Java eingebunden werden. Hierdurch besteht Zugriff auf die Java-Codebasis.
Ruby Programme können in Java eingebunden
werden. (JRUBY siehe[3]) und Ruby kann auch
Java aufrufen.
Officesteuerung
Programmierung von Scripts
plattformübergreifend
Interoperabilität
4.3.1Ruby on Rails
•
Effiziente Entwicklung durch DRY – Prinzip (DRY=Don’t repeat Yourself)
•
Homogenes Framework
•
Konventionen statt Konfiguration
•
Wenig Tools notwendig
•
Eine CRUD – Webanwendung wird generiert (CRUD = Create Replace Update Delete)
•
Erweiterbarkeit ganzer Funktionalitäten durch Plugins
•
schnelle Erlernbarkeit
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 13 von 18
agile Software - Entwicklung
Diskussionspapier
•
MVC Pattern
•
Java – kompatibel
•
geringer Beratersupport notwendig
•
keine IDE notwendig (Editor reicht völlig)
•
keine XML – Konfigurations-Orgien
•
schlüssiges Gesamtkonzept – kein Patchwork einzelner Frameworks
Insbesondere der Leitsatz „Konventionen statt Konfigurationen“ trägt zur technischen Komplexitätsreduktion bei. Durch vordefinierte Verzeichnisstrukturen, Namenskonventionen und Vorgehensweisen, findet man sich in den Codes von Kollegen schnell zurecht (Collective Code Ownership)
Ruby on Rails basiert auf dem CRUD – Ansatz. Mit diesen Features ist ein erster Wurf mit Eingabemöglichkeiten in eine Datenbank möglich.
Ruby on Rails ist entstanden, weil Softwareerstellung sich mit der Komplexität der Geschäftslogik beschäftigt, da es diese abbilden soll. Zusätzlich zu dieser Komplexität ist noch die Komplexität von der Realisierungstechnik zu berücksichtigen. Je einfacher diese Technik ist, desto
leichter und schneller sind Lösungen zu erarbeiten. J2EE ist hier an eine Grenze gestoßen, die
diese Entwicklung ausgelöst hat.
4.3.1.1Migrationskonzept
In Ruby existiert ein Migrationskonzept - es wird von vorneherein damit gerechnet, dass Daten
migriert werden müssen, dementsprechend werden Klassen generiert, die hierzu herangezogen
werden können. Die erste Initialisierung einer Datenbank ist, der Rubylogik folgend, lediglich
der Spezialfall der Migration von null auf den ersten Füllstand. Weiterentwicklungen basieren
dann immer auf Migrationen von einer Version zur nächsten. Das heißt die Migration ist immer
Teil der vom Framework unterstützten Entwicklung.
siehe http://blog.kogler-informatik.ch/2006/9/22/rails-vs-j2ee-net
4.3.1.2Skalierbarkeit
Über „Loadbalancer“ sind Railsanwendungen skalierbar.
Ein Problem das bei der Internetplattform Twitter entstanden ist: Ruby on Rails ist ein Framework, welches derzeit „nur“ für eine Datenbank designed ist. Das Nadelöhr bei dieser Internetplattform (200 000 Zugriffe/Stunde) war die Datenbankschicht.
4.3.1.3Anbindung von bestehenden Systemen
Bei der Anbindung von bestehenden Systemen, tut sich Ruby on Rails schwer. Dies liegt daran,
dass der Grundsatz Konvention statt Konfiguration in Ruby vorherrscht. Weicht man von den
vorgegeben Pfaden ab, so ist mit Mehraufwand zu rechnen, da dann tiefer in das Framework
eingestiegen werden muss.
Wie man mit derartigen Fällen umgeht, muss im Einzelfall untersucht werden.
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 14 von 18
agile Software - Entwicklung
Diskussionspapier
4.3.1.480 - 20 Regel
80% der Anforderung kann mit den Standard Ruby on Rails umgesetzt werden – über die restlichen 20% muss man reden ;-) .
4.3.1.5Erweiterbarkeit durch Plugins
Ganze WEB-Funktionalitäten können durch Plugins zugekauft bzw. per Freeware installiert
werden. So wurde im Bereich Konvertierung das Berechtigungssystem und Contentmanagementsystem als Plugin realisiert.
4.3.1.6Programm-gestütztes Deployment
Das Deployment wird einmal konfiguriert und kann dann den oder die Server bestücken.
Das Standard-Tool Capistrano ermöglicht auch die Rücknahme von Deployments und Versionen. Es benötigt das Versionierungssystem Subversion.
aktuelle Anwendung : http://mszta01p
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 15 von 18
agile Software - Entwicklung
Diskussionspapier
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 16 von 18
agile Software - Entwicklung
Diskussionspapier
5konkrete Vorhaben
Die folgende Liste stellt die Vorhaben dar, die mit der oben beschriebenen Webtechnologie umgesetzt werden sollen.
Vorhaben
Bemerkung
Technik
Lettershop (Teilfunktionalität)
- Upload und Steueroberfläche siehe Konzept
zum Druck von pdf und word
- Steuerung der Konverter auf
Windows und Unix , Datenbankanbindungen, Aufbau einer
Batchinfrastruktur mit Rückmeldung und Präsentation der Ergebnisse übers WEB
Crossreferenz für in Formularen Scripting auf dem PC
Scriptingsprache
enthaltene Grafiken
Verwaltungssystem für die Ma- Input für GAVI Druckspezialis- Hohe Kommunikationsterialien beim Druck (Papier - ten und Posyleute
bedeutung
Kuvert - Beilagen) (Material ->
SAP-Nummer -> Gewicht)
Vorhaben, die bereits in Produk- Formularkonvertierung
Ruby für Konverterinfration sind
struktur und Ruby on
Wordtexte werden für EBA, MaRails als Webtechnik.
terialserver und TDS in verschiedene Formate konvertiert .
(http://mszta01p)
Der Unterschied dieser Vorhaben zu den klassischen IT-Projekten in unserem Haus ist, dass es
sich dabei um unterstützende Prozesse und nicht Kernprozesse aus dem Versicherungsgeschäft handelt.
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 17 von 18
agile Software - Entwicklung
Diskussionspapier
6 Verweise
[1]
http://www.namics.com/fileadmin/user_upload/pdf/namics_ch-open-2007.03.29.pdf
[2]
http://de.wikipedia.org/wiki/Scrum
[3]
http://wiki.jruby.org/wiki/Main_Page
Version: 1
Dokumentstatus: im Review
© Versicherungskammer Bayern
Seite 18 von 18