Arbeitsweise

flowconcept solutions setzt bei der Erstellung seiner Produkte einen in der Praxis weltweit bewährten mehrstufigen Entwicklungsprozess ein. Dabei orientieren wir uns am Industriestandard der ITIL (IT Infrastructure Library) sowie weiteren Best-Practice-Methoden, die eine maximale Qualität der Software auf unseren Produktivsystemen gewährleisten. Damit kann vermieden werden, dass auf Produktivsystemen der Kunden Fehler in der Software auftreten und Geschäftsprozesse gestört werden.

Die Projektabwicklung erfolgt mit Hilfe agiler Methoden, die maximale Flexibilität bei der Entwicklung der Produkte gewährleisten. flowconcept solutions kann somit zeitnah auf sämtliche Anforderungen seiner Kunden reagieren.

Agile Entwicklung

Unser Ziel ist es, auch in komplexen Projekten möglichst zielstrebig den für den Kunden optimalen Prozesserfolg zu erreichen. Höchste Priorität hat dabei die schnellstmögliche Auslieferung einer Software in bester Qualität. Umso komplexer die Projekte jedoch werden, umso eher ist eine Vorgehensweise erforderlich, die im Laufe der Zeit erkannte, sich verändernde Anforderungen mit einbezieht. Wir arbeiten aus diesem Grund in kurzen Entwicklungszyklen, sogenannten Sprints, die es sowohl zulassen, mit mehreren Entwicklern an einem Projekt zu arbeiten, als auch Kundenanforderungen zu priorisieren und im Laufe des Projektes anzupassen oder neue hinzuzufügen.

Die hierfür von uns eingesetzte spezielle Projektmanagement- und Software-Entwicklungsmethode heißt Scrum. Sie ist im Besonderen für das Entwerfen von Produkten und das Organisieren von Entwicklerteams geeignet. Komplexe und umfangreiche Entwicklungsprojekte werden in kleine Teilprojekte zerteilt, die in ca. zweiwöchigen Sprints vom Entwicklerteam umgesetzt werden.

Der Einsatz von Scrum gewährleistet:

  • Transparenz: Der Fortschritt und die Hindernisse eines Projektes werden täglich und für alle sichtbar festgehalten.
  • Qualitätskontrolle: In regelmäßigen Abständen werden Produktfunktionalitäten abgegelichen und beurteilt.
  • Anpassung: Die Anforderungen an das Produkt werden nicht ein und für alle Mal im Vorfeld festgelegt, sondern nach Fertigstellung eines Teilprojektes neu bewertet und bei Bedarf kontinuierlich angepasst.

Projektmanagement

Das webbasierte Projektmanagement-Werkzeug Redmine liefert allen Projektbeteiligten Transparenz und eine gute Übersicht über den Fortschritt, die Planung und die aktuellen Aufgaben innerhalb des agilen Entwicklungsprozesses. Es ermöglicht die Planung der Kundenprojekte bis auf die Ebene einzelner Aufgaben. Der Einsatz von Redmine gewährleistet jederzeit die Kontrolle über die Kundenprojekte hinsichtlich Ablauf, Kosten und Ressourcen. Redmine sorgt darüber hinaus für eine hohe Einhaltung von Qualitätsstandards sowie der Steigerung der Reaktionszeiten innerhalb des Teams.

Versionskontrolle

Mit Hilfe des Versionsverwaltungssystems Git halten wir sämtliche Änderungen von Daten in Dateien, Projekten, Programmcodes und Dokumentationen fest. So können wir jederzeit nachvollziehen, welches Teammitglied wann welche Daten geändert hat und warum. Der Vorteil ist, dass bei Fehlern oder nicht zielführenden Ideen gespeicherte Zustände jederzeit zurückgeholt werden können. Gleichzeitig ermöglicht Git die Kommentierung sämtlicher Änderungen - eine hilfreiche Funktion um für andere Teamentwickler Intentionen, Gründe und Umsetzungshinweise nachvollziehbar zu dokumentieren.

Continuous Integration

Im Laufe einer Software-Entwicklung sind Qualität und Stabilität die wichtigsten Kriterien für den Programmiererfolg. Je weiter die Entwicklung eines komplexen Projektes vorangeht, desto wichtiger wird die Qualitätssicherung der kontinuierlichen Integration neuer Quellcodes.

Bei der Open-Source-Software Jenkins handelt es sich um ein System zur kontinuierlichen Integration in agilen Softwareprojekten, die unsere Entwickler in ihren Arbeitsprozessen unterstützen. Die Anwendung bringt Intelligenz in die Softwareentwicklung indem Programme immer dann, wenn ein neuer Code eingecheckt wird, die Einträge prüfen und Modultests fahren. Die Ergebnisse werden für alle Teamentwickler auf einer Webseite veröffentlicht, sodass alle Entwickler Kontrolle vom jeweiligen Status des Projektes haben.

Continuous Delivery

Wir setzen während der Entwicklung einer Web-Applikation auf ein drei- oder vierstufiges Deployment-Konzept bestehend aus Entwicklungs-, Staging-, Testing-, sowie Produktionsservern.

Der Staging-Server wird täglich vollautomatisch auf den aktuellen Stand mit allen von den Entwicklern durchgeführten Änderungen gebracht, die sich in einer vorherigen automatischen Testphase als fehlerfrei erwiesen haben. Der Kunde kann dort jederzeit gefahrlos die Anwendung in der neuesten Version testen, ohne dass seine Nutzer davon betroffen sind. Erst wenn alle Funktionen zur vollen Zufriedenheit arbeiten, wird eine neue Version auf das Produktivsystem, mit dem die Nutzer interagieren, übertragen.