Skip to content

Workflow

Projektmanagement

Agiles Projektmanagement

Auf Änderungen schnell reagieren

Wir arbeiten mit agilen Methoden, dabei kommt natürlich auch agiles Projektmanagement zum Einsatz. Agiles Projektmanagement hinterfragt nicht nur Rollen, Prozesse und Projektpläne aus der klassischen Vorgehensweise (Wasserfallstruktur). Es legt großen Wert darauf, alle Stakeholder (Teilnehmer) während des gesamten Projekts intensiv einzubeziehen und ihnen regelmäßig Ergebnisse zu liefern. Es lässt Änderungen gerne zu, weil sich nur so die besten Resultate liefern lassen.  Vor allem Anforderungen, die diese ständige Entwicklung und Veränderung widerspiegeln, spielen hier eine wesentliche Rolle. Wer Projekte agil managen möchte, folgt den Werten, die 2001 im Agilen Manifest niedergeschrieben worden sind:

  1. Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen.
  2. Heißen Anforderungsänderungen selbst spät in der Entwicklung willkommen. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden.
  3. Liefere funktionierende Software regelmäßig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kürzere Zeitspanne.
  4. Fachexperten und Entwickler müssen während des Projektes täglich zusammenarbeiten.
  5. Errichte Projekte rund um motivierte Individuen. Gib ihnen das Umfeld und die Unterstützung, die sie benötigen und vertraue darauf, dass sie die Aufgabe erledigen.
  6. Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteams zu übermitteln, ist im Gespräch von Angesicht zu Angesicht.
  7. Funktionierende Software ist das wichtigste Fortschrittsmaß.
  8. Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Benutzer sollten ein gleichmäßiges Tempo auf unbegrenzte Zeit halten können.
  9. Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität.
  10. Einfachheit — die Kunst, die Menge nicht getaner Arbeit zu maximieren — ist essenziell.
  11. Die besten Architekturen, Anforderungen und Entwürfe entstehen durch selbstorganisierte Teams.
  12. In regelmäßigen Abständen reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an.

Entwicklung

Die Entwicklung von Software ist unsere große Leidenschaft.

Wir verfolgen dabei agile Methoden, einerseits um möglichst effizient zu sein und andererseits, um dem Kunden auch während der Entwicklung des Projekts die Möglichkeit zu den Änderungen zu geben.

Wie wir arbeiten

Unsere Entwicklungsumgebung basiert auf Docker. Mit dieser Technologie ist es uns möglich eine Umgebung wie auf dem Projektserver herzustellen. Es erlaubt uns sogar die Version exakt zu konfigurieren, um etwaige Überraschungen zu vermeiden die nach dem Deployment (die Ausrollung) auftreten können.

Der von uns geschriebene Code wird grundsätzlich mit dem Versionierungssystem Git versioniert. Damit ist jede geschriebene Codezeile für unser Team nachvollziehbar und lässt sich zurückverfolgen. Die Versionierung lässt auch eine Kollaboration mit mehreren Mitarbeitern zu, wie es auch bei den meisten unserer Projekte der Fall ist. So können wir unabhängig voneinander verschiedene Features für das Projekt entwickeln.

Technologische Entscheidung

Wir nutzen bei der Entwicklung von Onlineshops nicht automatisch die neueste Technologie. Bei der Umsetzung der Projekte setzen wir auf einen Mix aus altbewährten und neuen Technologien. Natürlich immer in Absprache mit unseren Kunden.

Nachdem unsere Branche sich sehr rasch entwickelt, ist es manchmal gar nicht so leicht immer am Puls der Zeit zu sein. Wir setzen uns aber ständig mit den neuesten Technologien auseinander, testen und diskutieren diese im Team.

Dies ist auch fest in den Arbeitszeiten unsere Mitarbeiter verankert. Ein Beispiel dafür ist unser “Free-Friday”. Am Freitag hat jeder Mitarbeiter die Gelegenheit ein Thema zu evaluieren, welches er für wertvoll hält. Meistens hat das natürlich auch mit der Arbeit zu tun oder zumindest eine gewisse Verbindung dazu. 

Qualitätssicherung

Sicherstellen der Softwarequalität

Für die Sicherstellung, dass die Software bezüglich der verschiedenen Qualitätsmerkmale den Anforderungen entspricht (= Qualitätssicherung, kurz QS), existieren verschiedene Vorgehensmodelle und -methoden. Wir haben uns dabei natürlich auf die von Magento erstellten Coding Guidelines eingeschworen.

QS-Schwerpunkt Softwaretest

Das Testen ist ein für die Softwarequalität bedeutender Abschnitt bei der Entwicklung von Software. Dabei wird die Qualität der erstellten oder geänderten/weiterentwickelten Software mit unterschiedlichen Verfahren (z. B. Keyword-Driven Testing, risk based Testing, data driven Testing, …) geprüft. Wir testen uns dabei immer selbst, das heißt der Entwickler testet die Funktion selbst, beispielsweise mit testgetriebener Entwicklung durch Unit- oder Integrationstests. Zusätzlich wird die Funktionalität durch einen anderen Entwickler oder QS-Mitarbeiter getestet. Weiters werden sowohl sicherheitsrelevante Tests als auch Performance-Tests durchgeführt.

Unsere Mitarbeiter verwenden zum Testen von Software folgende Maßnahmen:

  • Statische Maßnahmen (wie statische Code-Analyse oder Code Reviews), in denen lediglich der Code der erzeugten Anwendung überprüft wird, ohne dass die Anwendung tatsächlich ausgeführt wird.
  • Dynamische Tests, in denen die Funktionalität unter unterschiedlichsten Konstellationen tatsächlich ausgeführt wird und die Ergebnisse und das Verhalten überprüft werden.