In der Software Quality Assurance werden bei der dynamischen Qualitätssicherung (Softwaretesten) verschiedene Methoden angewandt, um die Qualität von Produkten und Prozessen abzusichern. Anhand einer Dokumentation werden die Bestrebungen Ihrer Qualität testfähig gemacht. Weiterlesen
Um wirkungsvolle IT-Lösungen zu planen und zu konzipieren, ist ein professionelles Projektmanagement unumgänglich. Dabei sollten vor allem die Zielvorgaben für die spezifische IT-Lösung klar definiert und das Projekt darauf aufbauend detailliert konzipiert werden. Zudem sollten Software-Projekte aufgrund ihrer Komplexität generell in Arbeitsschritte aufgeteilt werden, nach deren Abschluss die jeweiligen Ergebnisse analysiert und für die weitere Konzeption berücksichtigt werden. Da diese IT-Ergebnisse in ihren Auswirkungen meist schwer abzuschätzen sind, sollten Sie unbedingt auf agile Projektmethoden und die richtigen Technologien setzen. Aber auch der Anwender der späteren IT-Lösung sollte in den Konzeptionsprozess mit eingebunden werden. Da professionelles Projektmanagement zur Planung und Konzeption von IT-Lösungen so komplex ineinander greifen, ist es eine logische Folge, dass die Nachfrage danach in Unternehmen kontinuierlich steigt. Einige Kernpunkte, auf die beim professionellen Projektmanagement zur Planung und Konzeption von IT-Lösungen zu achten ist, werden im Folgenden dargestellt.
Von der Wichtigkeit klarer Zieldefinitionen vor Projektbeginn
Bereits die ESI-Studie aus dem Jahr 2005 ergab, dass gescheiterte IT-Projekte häufig auf fehlende oder gar unzureichende Zieldefinitionen zurückzuführen sind. Daher sollten bereits vor der Planung und Konzeption von IT-Lösungen diese spezifisch festgehalten, von allen Beteiligten akzeptiert und zeitlich terminiert worden sein. Dazu sollten ein gezieltes Projekt erstellt und festgehalten werden, wem welche Verantwortung dabei zufällt und in welcher Zeit die einzelnen Arbeitsschritte abzuschließen sind.
IT-Projekte aufgrund ihrer Komplexität in Entwicklungsphasen aufteilen
Da Projekte, die innerhalb derer IT-Lösungen geplant und konzipiert werden komplex sind, sollten diese in Entwicklungsphasen aufgeteilt werden. Nach jeder Entwicklungsphase sollten die bisher erreichten Ergebnisse ausgiebig getestet und überprüft werden. Die Auswertung der Ergebnisse sollte im Folgenden dann auch für die zukünftigen Entwicklungsphasen berücksichtigt, bzw. überarbeitet werden.
Agile Projektmethoden ermöglichen es außerdem, auf die Komplexität eines IT-Projekts zu reagieren, indem zum Beispiel im Nachhinein noch Änderungswünsche vom Kunden berücksichtigt werden können. Generell ist es dabei ratsam, dass die Anwender der späteren IT-Lösung in den Projektablauf mit einbezogen werden, um auch hier zu erkennen, was zwingend einer Korrektur bedarf.
Moderne Software-Entwicklung ist eine sehr strukturierte und bis ins Detail durchdachte Angelegenheit. Ein Ausdruck dieser klaren Struktur sind nicht nur das Lasten- und Pflichtenheft, bei denen detailliert festgehalten wird, welche Funktionen mit welchen Techniken erreicht werden sollen, sondern auch die rollenbasierte Software-Entwicklung. Sie ermöglicht es jedem an der Entwicklung Beteiligten, sich voll und ganz auf seine spezifische Aufgabe zu konzentrieren.
Rollenbasierte Software-Entwicklung
Der Gedanke hinter der Struktur ist einfach: Durch die enge Interaktion von Menschen mit unterschiedlichen Schwerpunkten wird ein breites Spektrum abgedeckt und so ein Produkt entwickelt, das möglichst vielen Anforderungen gerecht wird. Dabei ist es vor allem bei größeren Projekten dringend erforderlich, dass die Interaktion nicht nur mündlich erfolgt, sondern auch stark dokumentenbasiert ist.
Die Rolle
Unter der Rolle versteht man in der rollenbasierten Entwicklung eine Menge zusammengehöriger Aufgaben, Qualifikationen und Befugnisse. Sie kann von einer oder mehreren im Team zusammenarbeitenden Personen wahrgenommen werden. Gleichzeitig kann ein Team oder eine Person auch mehrere Rollen erfüllen.
Folgende Rollen können in einem Softwareprojekt besetzt werden.
1. Projektmanager
Seine wesentlichen Aufgaben sind die Planung, Kontrolle und Steuerung des Projekts.
2. Risikomanager
Seine Aufgabe ist es, potenzielle Probleme zu erkennen und entsprechend Abhilfe zu schaffen. Er ist in alle Phasen des Projekts involviert.
3. Der Qualitätsmanager
Er hat eine projektbegleitende Aufgabe und ist verantwortlich für die Qualität des erzeugten Produkts. Er stellt Anforderungen, überwacht deren Einhaltung und kümmert sich um Maßnahmen zur Qualitätssicherung.
Weitere Rollen sind der Konfigurationsmanager, der Anforderungsanalytiker, Konzeptionier, Designer und letztlich der Programmierer. Komplettiert wird das Ganze durch den Tester, den Systemtechniker, den Technologieberater, den Wartungsexperten, den Datensammler, den Software-Prozessverbesserer, den Wiederverwender und die entsprechenden Verantwortlichen auf den Führungsebenen.
Rollen in der Softwareentwicklung
Nicht alle der aufgeführten Rollen werden in jedem Softwareprojekt besetzt. Doch die wichtigsten, wie Projektmanager und Qualitätsmanager, aber auch die Programmierer finden sich so in jeder erfolgreichen Software-Entwicklung wieder.
Die iterative Entwicklung beschreibt den Ansatz, ein Gesamtprojekt in viele kleine Projekte aufzuteilen. Es werden in jeder Iteration alle Phasen, also Analyse, Entwurf (Grob- und Feindesign), Implementierung und Test durchgeführt. Nach jeder Iteration sollte eine Abnahme mit dem Kunden erfolgen, um so die Anforderungen und die Qualität der Software zu überprüfen.
Der Vorteil hierbei ist, dass Mängel bei jedem Iterationsschritt beseitigt werden können und so das System ständig verbessert wird – durch Optimierung bereits bestehender Komponenten oder Ergänzung um weitere.
Neben der kontinuierlichen Problembehebungsmöglichkeit bringt das iterative Vorgehen bei der Softwareentwicklung auch den Vorteil, dass in diesem Ansatz gut auf Änderungen der Anforderungen während des Projektablaufs eingegangen werden kann. Außerdem lässt sich so auch das Risiko unangemessener Funktionalität und überhand nehmender Kosten einschränken. Diese Vorgehensweise ermöglicht es, technisch oder inhaltlich sehr riskante Bereiche eine Softwareprojektes zuerst anzugehen.
Allerdings bringt die mehrmalige Durchführung der Entwicklungsphasen den Nachteil mit sich, dass das Projekt zeitlich schwer planbar ist, da bei jeder Iteration Zeitpuffer für die Reaktion auf aufkommende Probleme einkalkuliert werden müssen.
Der Ansatz der iterativen Entwicklung wird in vielen Vorgehensmodellen angewandt. Eines dieser Vorgehensmodelle ist das sogenannte Spiralmodell.
Das Spiralmodell nach Boehm ist in folgende vier Schritte aufgeteilt:
Im ersten Schritt, der Analyse, werden alle wichtigen Informationen wie Ziele, Anforderungen, Rahmenbedingungen und Lösungsalternativen zusammengetragen. Diese werden zur Umsetzung freigegeben und im zweiten Schritt evaluiert, um Risiken zu erkennen und entsprechende Minderungs- bzw. Vermeidungsstrategien zu erarbeiten.
Anschließend wird nun das Vorgehen für die Realisierung festgelegt und durchgeführt. Schließlich wird in Schritt vier kritisch auf die vorangegangen Schritte geschaut und der nächste Schleifendurchlauf geplant.
Im Spiralmodell stellen die vier Quadranten die Vorgehensschritte dar und eine Linie zeigt den Fortschritt des Projektes, wodurch sich das für dieses Modell charakteristische Spiralmuster ergibt. Die Prototypen, die in jedem Schleifendurchlauf erstellt werden, ermöglichen, das System fortlaufend zu prüfen und weiterzuentwickeln.
Bei der Softwareentwicklung können Probleme auftreten, die Folgen nach sich ziehen: Es besteht die Gefahr, dass die ursprünglich geplanten Entwicklungskosten überschritten werden und sich die Entwicklungsdauer in die Länge zieht. Zudem besteht die Gefahr, dass das Endprodukt qualitative Mängel aufweist.
Programmierstandards müssen eingehalten werden
Wenn jeder Entwickler Programmierstandards auf seine eigene Weise interpretiert, kann es zu erheblichen Diskrepanzen bei den Ergebnissen kommen, wodurch aufwendiges Nacharbeiten nötig wird. Es empfiehlt sich, interne Handbücher mit den Programmierstandards zur Verfügung zu stellen und vor allem darauf zu achten, dass diese von den Projektmitarbeitern auch verwendet werden.
Auf die fachliche Qualifikation der Mitarbeiter achten, die am Projekt beteiligt sind
Bei jedem Projekt sollte sichergestellt sein, dass sämtliche involvierte Mitarbeiter fachlich ausreichend qualifiziert sind. Dies gilt besonders für sehr komplexe Softwareprojekte, an denen viele Entwickler beteiligt sind. Ebenso ist es wichtig, dass die einzelnen Mitarbeiter über ein ähnliches fachliches Niveau verfügen, um Verständigungsschwierigkeiten untereinander zu vermeiden.
Ständig neue Mitarbeiter ins Team holen
Bei der Softwareentwicklung sollte vermieden werden, dass während eines laufenden Projekts die damit beauftragten Entwickler ausscheiden und durch neue Mitarbeiter ersetzt werden. Denn verlässt ein Mitarbeiter während der Entwicklung das Unternehmen oder wechselt zu einem anderen Projekt, gehen die bisher gesammelten Erfahrungen mit der werdenden Applikation meist verloren. Erfahrungsgemäß ist es äußerst schwer, das Wissen eines ausscheidenden Mitarbeiters auf den neuen Entwickler zu übertragen.
Für klare Prozesse sorgen
Intransparente Abläufe in der Softwareentwicklung führen zur Verunsicherung der Beteiligten. Missverständnisse entstehen, wodurch sich Fehler einschleichen, die nur durch einen erhöhten Aufwand wieder beseitigt werden können und das Projekt zieht sich unnötig in die Länge. Es wird empfohlen, die Anwendungsentwicklung im System von Produktionsstraßen aufzubauen.
Prioritäten setzen
Es fällt immer wieder auf, dass bezüglich der geplanten Features keine Prioritäten gesetzt werden, was meist zur Folge hat, dass die Features in der falschen Reihenfolge abgeschlossen werden. Deshalb sollte ein Team im Vorfeld entscheiden, welcher Arbeitsschritt als Erstes angegangen wird. Es empfiehlt sich, die Entscheidung intern vorzunehmen und den Auftraggeber außen vor zu lassen. Denn Auftraggebern fehlt oft die Übersicht, welches Feature für den Erfolg des Projekts besonders wichtig ist.
Die Wahl der richtigen Software im Unternehmen und der dazu gehörenden Technik im Hintergrund ist eine grundlegende Fragen. Hier kann es z.B. um die Verwaltung von Daten und Dokumente gehen. Jede vorhandene Lösung hat Vor- und Nachteile. Gerade in größeren Unternehmen, aber vor allem in spezialisierten Firmen können die Standardlösungen nicht immer das optimale Paket bieten, mit dem z.B. Dokumente oder andere Daten verwaltet werden können. Daher geht der Trend zur individuellen Softwarelösung.
Hierbei spielen verschiedene Überlegungen eine Rolle: Eine typische Voraussetzung ist sicher, wenn die bestehenden Standardprodukte zwar gut ins Konzept passen, aber gegenüber einer zugeschnittenen, individuellen Variante schlicht teurer sind. In vielen Fällen sind keine Standardprodukte vorhanden, die die geforderten Aufgaben erfüllen können. Weit komplexere Gründe sind die Unabhängigkeit vom Anbieter. Hat man sich früh für eine Standardsoftware entschieden, ist man vom Willen zu möglichen Veränderungen dieses Anbieters abhängig und kann nicht mehr ohne großen Aufwand in ein vielleicht besseres System wechseln. Eine eigene optimierte Softwarelösung kann somit auch ein entscheidender Vorteil gegenüber der Konkurrenz sein. Eine optimale Softwarelösung kann die Beziehung zum Kunden einfacher, transparenter und somit besser gestalten.
Die praktischen Vorteile und Begründungen lassen sich wie folgt zusammenfassen: Individuelle Lösungen können besser auf bestimmte Voraussetzungen und Anforderungen angepasst werden. Gleichzeitig sind sie damit auch besser in der Lage, mit den steigenden Anforderungen ergänzt zu werden und somit zu wachsen. Der Aufwand für Mitarbeiterschulungen wird meist erheblich verringert, wenn die Eingabemasken an die bestehenden Betriebsabläufe und das Vokabular angepasst sind. Zusätzlich können notwendige Regeln und Plausibilitätsprüfungen möglich gemacht werden, die automatisch verhindern, dass Aufträge mehrfach bearbeitet werden müssen. Mit diesen variablen Bestandteilen kann die eigene Softwarelösung optimal an die bestehenden Systeme und Anforderungen angepasst werden und ermöglicht es dem Unternehmen, seine Ressourcen optimal und gewinnbringend einzusetzen. Sind die Zielkriterien klar definiert, können Anbieter für Individuallösungen ein Produkt zusammenstellen, dass die bestehenden Systeme und die neue Benutzeroberfläche aufeinander abstimmt und miteinander vernetzt. Spätere Änderungen oder Erweiterungen sind auf diesem Weg einfacher zu bewerkstelligen.
TELEFON
Fax
Address
Keltenring 10
82041 Oberhaching near Munich
Germany
GESCHÄFTSZEITEN
Mo-Fr: 8:00–18:00
Sa, So: Geschlossen