Moderne und innovative Softwareentwicklung

Wir sprechen fließend Java – aber nicht nur!

Softwarelösungen bilden heute eine der wichtigsten Grundlagen für den Einsatz moderner und effizienter Informationstechnologie in der Abbildung geschäftlicher Prozesse und sie gelten zu Recht als wesentlicher Beitrag zu einer unternehmerischen Wertschöpfung.

Die Entwicklung einer Softwarelösung in Form von Projekten oder Produkten stellt heutzutage neue Herausforderungen an die umsetzende Organisation. Die Aspekte frühzeitiger Nutzwert, Benutzerzufriedenheit sowie Akzeptanz, Qualität und der Umgang mit neuen Anforderungen prägen das Management der Entwicklungsleistung. Oft entstehen jedoch im Verlauf der Entwicklung Mehrkosten und Mehraufwände, beispielsweise durch eine mangelhafte Einschätzung einer unklaren oder sich verändernden Ausgangslage. So können ungeplante Nachbesserungen und zusätzliche Tätigkeiten zu Projektverzögerungen führen.

 

Moderne Softwareentwicklung „par excellence“

Heutige Softwarelösungen müssen nicht nur performant, zukunftsfähig und höchst flexibel sein, sondern auch einen großen Nutzwert für den Kunden bieten, vorhandene Infrastrukturen unterstützen und bestmöglich bedienen, sehr ergonomisch sein und durch hohe Akzeptanz beim Anwender überzeugen.

Durch den Einsatz moderner Entwicklungstechniken und -methoden wird diesen sich teils widersprechenden Anforderungen Rechnung getragen und eine individuell für den Kunden optimierte Lösung geschaffen, die ihren erwarteten Beitrag zur Wertschöpfung leistet.
Eine effiziente Vorgehensweise wird dabei durch eine durchgehende Werkzeugkette und erprobte Lösungsbausteine und -methoden unterstützt.

  • Modellierung von Anwendungsfalldiagrammen nach UML
  • Nutzung von erprobten Design Pattern
  • Security-by-Design, konsequent und von Anfang an
  • Innovative Lösungen von serviceorientierten Architekturen (SOA)
  • Objektorientierte Programmierung für Client-Server und Webanwendungen auf Basis moderner Technologien und Frameworks (JSF, Hibernate, HTML5)
  • Java-basierte Entwicklungsumgebungen wie Eclipse (Android) und Xcode (iPhone, Apple iOS)
  • Nutzung moderner Methoden wie agile Vorgehensweisen (Scrum, XP), Continuous Integration usw.

Komplexe Softwareentwicklung erfordert nicht nur profundes technisches Know-how, sondern auch fachliche Kompetenz und branchenübergreifende Expertise. Diese Fähigkeiten lassen sich in Expertenteams bündeln, die aus zertifizierten Beratern, erfahrenen Entwicklern und gestandenen Projektmanagern bestehen. Durch den „Expertise-Mix“, tiefe Fachkenntnisse und bewährte Methoden werden Kundenprojekte erfolgreich realisiert.

 

Wie sieht so eine Factory konkret aus?

Die obigen Punkte werden geschickt kombiniert und kundenindividuell auf die jeweilige Situation angepasst.

  • Planung und Kollaboration
    Die Planung und Dokumentation der Entwicklungsaktivitäten trägt maßgeblich zu einer transparenten Projektdurchführung bei. Hierzu werden alle das Projekt betreffenden Informationen zentral abgelegt und können bei Bedarf von allen Projektbeteiligten eingesehen werden.
  • Quality Management
    Die Qualitätssicherung wird durch Systeme zur Erfassung und Bewertung von gefundenen Fehlern unterstützt. Alle Fehler werden dokumentiert und können im Entwicklungsverlauf nachvollzogen und behoben werden.
  • Integrated Testing
    Anhand bestehender Anforderungen werden bereits zu Projektbeginn Testszenarien definiert und dokumentiert, aus denen sich alle weiteren Tests während des Projekts ableiten und lückenlos nachvollziehen lassen.
  • Security-by-Design
    Da Sicherheit heute eine immense Rolle spielt, werden neue Entwicklungen nach dem Paradigma Security-by-Design durchgeführt, um das geforderte Sicherheitsniveau zu erreichen und durchgängig zu halten.
  • Entwicklungs- und Testumgebung
    Im Rahmen der Entwicklungsumgebung wird heutzutage verstärkt auf einen hohen Grad an Virtualisierung gesetzt.
    Sowohl der einzelne Entwicklungsarbeitsplatz, als auch komplette Testsysteme können als Images bereitgestellt werden. Neben der Reduktion der Kosten für eingesetzte Hardware reduziert sich ebenfalls die Zeit für das Projektsetup.
  • Quellcodeverwaltung – Sourcecode Repository
    Der Quellcode wird als Teil des Konfigurationsmanagements in Form eines Sourcecode Repository
    Management (SCM) zentral verwaltet. Hierfür werden die Systeme SVN, GIT oder Team Foundation Server eingesetzt. Das SCM bietet die Möglichkeit, allen Entwicklern Zugriff auf den gesamten Quellcode zu geben und Arbeitsergebnisse zeitnah zu sichern.
    Die unterschiedlichen Quellcodestände werden versioniert und historisiert abgelegt, um jederzeit auf eine bestimmte ausgelieferte oder entwickelte Version zugreifen zu können. Das SCM wird regelmäßig einem Backup unterzogen und gesichert, um Verlust von Quellcode vorzubeugen.
  • Continuous Integration & Delivery
    Zur kontinuierlichen Wahrung der Codequalität und für ein schnelles Feedback bzw. eine schnelle Integration nutzt man heute Continuous Integration. Hierbei wird der entwickelte gesamte Sourcecode der Applikation in regelmäßigen Abständen nach dem Hinterlegen durch die Entwickler gebaut und automatisiert auf Fehler überprüft. Im Falle eines fehlerhaften Builds werden nicht nur die Entwickler entsprechend frühzeitig informiert, sondern durch die Integration können ebenfalls frühzeitig Fehler in der Zusammenführung der Module der Entwicklung entdeckt und so die Qualität gezielt erhöht werden. Zusätzlich wird der entwickelte Quellcode automatisiert einer Analyse unterzogen, um die Konsistenz der Architektur (z.B. Zyklen), die Codequalität (Dokumentation, Testabdeckung etc.) sowie gesetzte Richtlinien (z.B. im Hinblick auf Sicherheit) zu prüfen.

 

Und warum erzählen wir Ihnen das hier?

Wir haben bei DST consulting eine solche Factory aufgebaut. Sie lebt diese Prinzipien und entwickelt sich ständig anhand des modernen Software Engineering weiter.

Die Weiterentwicklung bestehender IT-gestützter Prozesse und Verfahren stellt Kunden regelmäßig vor große technische, organisatorische und wirtschaftliche Herausforderungen. Wir setzen in der Zusammenarbeit mit unseren Kunden und Partnern auf Offenheit, Loyalität, Fairness und kurzfristige Reaktion.

"Gemeinsam erfolgreich sein" ist das Credo unserer partnerschaftlichen Zusammenarbeit, um die anstehenden Herausforderungen in der Softwareentwicklung zu meistern.


Diesen Beitrag teilen / Share this post: 

###HIDDEN###