PDF

BeCompany News

12.07.2010 10:45:57
Die Universität Zürich wird neu einheitlich und klar auftreten

Die Universität Zürich erneuert auf den 1. November 2010 ihr Erscheinungsbild. Der frische Auftritt …

12.07.2010 10:39:20
Lenya Meeting at RMLL, Bordeaux

This year the Apache Lenya User and Developer Meeting took place place from July 7 to 11 duri…

25.05.2010 11:43:46
DirectCalendar – Planung und Terminierung von Direct-Marketing-Aktionen

Wer den Versandzeitpunkt seiner Mailings sorgfältig vorbereiten möchte, setzt auf den DirectC…

14.05.2010 16:05:30
Apache Lenya User Meeting July 2010, Bordeaux, France

The community of the Apache Lenya project would like to invite you to the next user and developer m…

12.03.2010 15:41:40
DirectFactory wird intern bei allen Post Konzerngesellschaften eingesetzt

Die Direct-Mailing-Plattform DirectFactory soll in Zukunft nicht nur KMUs zu Verfügung stehen. Alle…

Agiles Projektmanagement - immer auf dem richtigen Weg

Mountains

Agile Entwicklung ist eine verbreitete und bewährte Strategie zur Bewältigung komplexer Softwareprojekte. Im Gegensatz zum Software Engineering spielen nicht der Prozess und die Spezifikation, sondern die beteiligten Personen und deren Kommunikation die zentrale Rolle. Die Vorteile einer agilen Methodologie zeigen sich unmittelbar, wenn mit unklaren oder wechselnden Anforderungen zu rechnen ist und der Projektverlauf durch verschiedene nicht voraussehbare Faktoren beeinflusst werden kann.

Verantwortungsbewusstsein und Professionalität aller Beteiligten sind Voraussetzung für den Erfolg. Für alle Mitarbeiter von BeCompany hat Ihre Zufriedenheit und Ihr Vertrauen die oberste Priorität. Sie schöpfen ihre Motivation aus der Voraussicht, dass ihre Software akzeptiert und verwendet wird. Alle Aspekte der Entwicklung werden diesem Ziel untergeordnet.

Änderungen akzeptieren und darauf reagieren können

Es ist im Normalfall nicht möglich, alle Anforderungen und Rahmenbedingungen vor dem Beginn der Implementation zu kennen und zu spezifizieren. Oft formt sich erst nach dem Begutachten erster Prototypen ein klares Bild von der zu erstellenden Software. Die frühe Konfrontation mit benutzbaren Versionen bringt neue Ideen zutage. Manche Features erweisen sich als schwieriger zu implementieren als erwartet. Im Gegenzug werden andere Features durch neue Produkte abgedeckt, die erst während des Projektverlaufs auf den Markt kommen.

Unter diesen Bedingungen wäre es unvernünftig, einer starren Spezifikation zu folgen und Änderungswünsche zurückzuweisen. Wir betrachten Änderungen nicht als Abweichung vom geplanten Weg, sondern als Korrektur des Wegs. Das Ziel ist nicht in erster Linie die Umsetzung einer ursprünglich geplanten Spezifikation, sondern die Bereitstellung eines nützlichen und qualitativ hochwertigen Produktes für einen angemessenen Preis.

Kommunikation als Schlüssel zum Erfolg

Nicht nur während der initialen Spezifikationsphase, sondern während des gesamten Projektverlaufs spielen Sie als Auftraggeber und die zukünftigen Nutzer des Softwareproduktes eine zentrale Rolle. Wir kommunizieren Ihnen regelmässig den aktuellen Entwicklungsstand und geben Ihnen die Möglichkeit, auf Probleme zu reagieren und Änderungen vorzunehmen. Unklarheiten werden unmittelbar mit Sachverständigen besprochen, damit keine unkorrekte Funktionalität implementiert oder der Projektverlauf verzögert wird.

Iterative Entwicklung

Wir führen unsere Projekte in mehreren Teilschritten, so genannten Iterationen, durch. Auf diese Weise können wir frühzeitig und regelmäßig funktional abgeschlossene Versionen des Softwareproduktes bereitstellen. Sie erhalten die Möglichkeit, sich jederzeit ein Bild vom Projektfortschritt zu machen. Ihre Nutzer können sich mit den bereits implementierten Funktionen vertraut machen und die Entwicklung durch ihr Feedback beeinflussen. Eine Iteration dauert typischerweise eine bis vier Wochen und umfasst folgende Phasen:

  • Reflexion und Anpassung der Methodologie
    Die Projektmethodologie muss ständig kritisch überwacht und ggf. wechselnden Erfordernissen angepasst werden.
  • Planung der zu implementierenden Features mit den Entscheidungsträgern
    Basierend auf Empfehlungen unserer erfahrenen Entwickler, bestimmen die Entscheidungsträger, welche Features in dieser Iteration implementiert werden sollen. Prototypen helfen bei der Abschätzung von Machbarkeit und Aufwand.
  • Anforderungsanalyse
    Da die Rahmenbedingungen während des Projektverlaufs wechseln können, werden die konkreten Anforderungen erst unmittelbar vor der Implementation ermittelt. Eine direkte Kommunikation mit potenziellen Nutzern und Sachverständigen, z.B. im Rahmen von Workshops, und Akzeptanztests anhand von (Papier-)Prototypen haben sich in dieser Phase bewährt.
  • Implementation
    Bei der Implementation liegt der Fokus auf den für diese Iteration vorgesehenen Features. Gleichzeitig wird bestehender Code überarbeitet und an neue Anforderungen und Gegebenheiten angepasst. Damit Fragen schnell beantwortet werden können, müssen die Entwickler während der Implementationsphase jederzeit mit Sachverständigen kommunizieren können.
  • funktionale Tests, Integrations- und Lasttests
    Zusätzlich zu den kontinuierlichen automatisierten Tests werden spezifische, auf die in der gegenwärtigen Iteration im Vordergrund stehenden Aspekte ausgerichtete Tests durchgeführt.
  • Usability- und Akzeptanztests
    Regelmässige Nutzertests dienen dazu, die korrekte Umsetzung der Anforderungen zu bestätigen sowie Usability- und Accessibility-Probleme frühzeitig festzustellen.
  • Kommunikation der Ergebnisse und des Projektfortschritts, Feedback der Entscheidungsträger
    Das Vertrauen der Entscheidungsträger kann nur dauerhaft gewährleistet werden, wenn der Projektfortschritt jederzeit transparent und nachvollziehbar ist. Daher werden nach jeder Iteration der aktuelle Stand, Probleme und Zeitverzögerungen offen kommuniziert, damit rechtzeitig darauf reagiert werden kann.

Testgetriebene Entwicklung

Unsere Entwickler haben erkannt und verinnerlicht, dass das Implementieren von Tests kein notwendiges Übel ist, sondern zu einem schnelleren Erfolg bei der Entwicklung neuer Funktionalität führt und die Anzahl von Fehlern von vornherein reduziert. Wir verwenden Tests nicht nur zur kontinuierlichen Sicherstellung der funktionalen Korrektheit, sondern gleichzeitig als Spezifikation und Dokumentation zur Nutzung der Programmierschnittstellen. Die Ausrichtung auf testgetriebene Entwicklung verbessert ausserdem die Qualität der Architektur, da das System in leicht zu handhabende, funktional klar ausgerichtete Schichten und Komponenten aufgegliedert wird.

Methoden und Werkzeuge

Auch in der Softwareentwicklung können erstklassige Produkte nur mittels hochwertiger und gut gepflegter Werkzeuge hergestellt werden. Unsere Entwickler beherrschen verschiedene bewährte und ausgereifte Entwicklungsumgebungen und Methoden, die perfekt ineinandergreifen und sich gegenseitig ergänzen.