Software Aufwände sichtbar machen

Die Wochen und Monate vergehen und die Software wird und wird nicht fertig. Kennen Sie dieses Problem? Dann kann ihnen dieser Beitrag vielleicht helfen. Denn Aussagen wie „wir sind bei ca. 80 %“ oder „wir benötigen noch ein bis zwei Monate“ sind mit Vorsicht zu genießen und entbehren meistens jeglicher Grundlage.

Warum ist es so schwer Software Aufwände zu ermitteln?

Die Beziehung zwischen Software Entwicklern und Projektleitern ist nicht immer einfach. Software Entwickler haben eine eigene Sprache und drücken sich für den Projektleiter oft sehr unverständlich aus. Das kann dazu führen, dass der Projektleiter nicht nachvollziehen kann, was der Software Entwickler tut. Er hofft, dass der Software Entwickler seinen Job macht und die Software zu einem Termin abschließt. Doch diese Annahme tritt in den meisten Fällen nicht ein. Das Problem ist, dass dem Software-Entwickler selbst Methoden fehlen, um Abschätzungen durchzuführen. Gerade bei Software können vergessene Arbeitspakete dazu führen, dass Aufwände explodieren.

Wie kommt man zu qualifizierten Aussagen über die Aufwände?

Als Basis für eine qualifizierte Aussage muss eine Software Spezifikation vorliegen. In dieser Spezifikation müssen die Anforderungen an das Software-System enthalten sein. Auf Basis dieser Spezifikation wird eine Software Architektur erstellt. Dabei bildet meist eine Software, die auf einem Prozessor läuft das Software-System. Das Software-System wird dann hierarchisch in Software Items und schließlich in Software Units heruntergebrochen. Die Software Unit stellt die kleinste Einheit dar, die aus Architektursicht nicht mehr weiter aufgeteilt wird. Die Units sind somit die einzelnen Bausteine der Software. Die Software Architektur kann nun dazu genutzt werden, die Aufwände zu ermitteln und Aufgaben zu planen.

Ihr Ansprechpartner:

Dipl.-Ing. Goran Madzar, Gesellschafter, Senior Systems Engineer 
E-Mail: madzar@medtech-ingenieur.de
Tel.:  +49 9131 691 240
 

Benötigen Sie Unterstützung bei der Entwicklung Ihres Medizingeräts? Wir helfen gerne! Die MEDtech Ingenieur GmbH bietet Hardware-Entwicklung, Software-Entwicklung, Systems Engineering, Mechanik-Entwicklung und Beratung aus einer Hand. Nehmen Sie Kontakt mit uns auf.

Kontakt aufnehmen

Für jede Software sind bestimmte Tätigkeiten durchzuführen. Die Tätigkeiten richten sich nach dem Softwareentwicklungsplan und der Software Sicherheitsklasse. Am besten stellt man die Tätigkeiten in einer Tabelle dar. Damit ist man in der Lage den Fortschritt messbar zu machen. Möchte man für bestimmte Units einzelne Tätigkeiten weglassen (z.B. Unittests), so kann man das natürlich in der Tabelle entsprechend kenntlich machen. Auf Basis dieser Tabelle kann man ebenfalls den Aufwand für die Restarbeiten abschätzen. Nicht vergessen sollte man dann noch die Aufgaben, die sich darüber hinaus ergeben (SW-Systemtests, Integration, Bugfixing, usw.). Aber die Tabelle gibt zunächst einmal einen wichtigen Beitrag zu den Aufwandsabschätzungen.

ID Title Software Safety Class Architecture approved Detailed Design Implemented Code Review Unit-Test Integrated Unit finished
1 SW Unit 1 Safety Class B done open open open open open open
2 SW Unit 2 Safety Class B done open open open open open open
3 SW Unit N Safety Class B Review open open open open open open

Fazit

Wenn Sie Software Aufwände abschätzen, empfiehlt es sich eine Tabelle mit allen Software-Units und den geplanten Aktivitäten zu haben. Damit bekommen Sie einen guten Überblick über den Status ihrer Software-Entwicklung.

Kontaktieren Sie uns!

Autor

  • Goran Madzar

    MEDtech Ingenieur aus Leidenschaft! Mein Team und ich helfen Medizintechnik-Herstellern mit Engineering-Dienstleistungen dabei, Produkte zu entwickeln und in Verkehr zu bringen! Sprechen sie mich gerne an, ob bei LinkedIn oder per Mail. Ich freue mich Sie kennenzulernen.

Auch interessant:

Embedded Software Architektur in Feierlaune: Event driven

In meinem vorangegangen Blogpost bin ich auf Aspekte eingegangen, die den Entwurf einer guten Softwarearchitektur maßgeblich beeinflussen. Hier seien lediglich nochmal erwähnt: Einfachheit: Einfacher ist in den meisten Fällen auch besser Wartbarkeit und Erweiterbarkeit: Software ist in den seltensten Fällen nicht mal nach der ersten Auslieferung "fertig" Testbarkeit: Versteht sich…
Getagged mit: , ,

Schreibe einen Kommentar