Posts mit dem Label Qualitätssicherung werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Qualitätssicherung werden angezeigt. Alle Posts anzeigen

Freitag, 5. Oktober 2012

Java Architekten im Elfenbeinturm und Maulwurfshügel

Was sieht man von dort oben?
CC-BY-SA - peperoni -
Java Architekten nennen sich viele, doch werden sie auch wirklich ihrer Rolle gerecht? Die einen fühlen sich zuständig für die Definition der High-Level-Architektur sämtlicher Software, die in ihrem Unternehmen entwickelt wird. Sie nennen sich selbst "Enterprise Architekt", andere nennen sie "Theoretiker" und behaupten sie säßen im Elfenbeinturm. Andere wiederum definieren die detaillierte Architektur einzelner Applikationen, deren Schichten, Komponenten, interne und externe Schnittstellen sowie zu verwendende Frameworks. Sie nennen sich selbst "Systemarchitekt" oder "Applikationsarchitekt", andere nennen sie "kurzsichtig" und "technologiegeil" und behaupten, sie sehen die Aufgaben vor lauter Tools nicht.

Architekten laufen Gefahr abzuheben (die Architektur ausschließlich aus der 10.000 Meter = applikationsübergreifenden Perspektive zu betrachten) oder unterzutauchen (die Architektur ausschließlich aus der Maulwurfs = Framework Perspektive betrachten).

Nein liebe Enterprise Architekten, SOA, MDA, Cloud-Computing sind keine Architekturkonzepte die einfach so und überall funktionieren, und liebe Applikationsarchitekten, Spring, OSGi, JSF ... sind keine Architekturkonzepte und bringen in der Praxis oft mehr Nachteile als Vorteile. Dogfooding und ein bisschen mehr Reflexion über den tatsächlichen Nutzen ihrer Architekturentscheidungen würde vielen Architekten gut bekommen.

Montag, 27. August 2012

Was macht gute Modultests aus?

Coverage
Hohe Code-Coverage - gute Qualität?
CC-BY-SA Sebastian Dietrich
Gute Modultests (engl. Unit-Tests) können einen Großteil der Fehler finden, die sich während der Entwicklung eingeschlichen haben. Üblicherweise geht man davon aus, dass mit Modultests 80 - 90% aller Fehler gefunden werden können. Dies ist jedoch nur dann möglich, wenn diese Modultests (wie Regressiontests) laufend ausgeführt werden und eine ausgezeichnete Qualität aufweisen.

Mittwoch, 16. Mai 2012

Limbo mit Softwarequalität

Limbo mit Softwarequalität?
Was tun, wenn die technische Qualität einer Software zu wünschen übrig lässt, aber kein Budget vorhanden ist, die Qualität zu verbessern? Unternimmt man nichts, so wird die Qualität weiter sinken - bis die Kosten für Wartung und Weiterentwicklung so hoch sind, dass die Software aufgegeben werden muss. Oft ist aber kein Budget vorhanden um die Qualität zu verbessern - diese Projekte ähneln Hungerkatastrophen - sie leben von der Hand in den Mund wohlwissend, dass sie bald verhungern werden, wenn nicht ein Wunder passiert. In dieser Situation hilft nur eines: Limbo mit Softwarequalität.

Freitag, 6. April 2012

Schuldhafte Softwareentwicklung

Viele kleine technische Schulden
CC Public domain images
„Software zu schreiben ist wie Schulden aufnehmen. Geringe Schulden aufzunehmen beschleunigt die Softwareentwicklung, solange die Schulden rasch durch eine Neuimplementierung getilgt werden... Problematisch wird es, wenn die Schulden nicht zurückgezahlt werden. Jede Minute, die man mit nicht so gutem Code verbringt, zahlt man Zinsen für diese Schulden. Ganze Entwicklungsabteilungen können durch die Schulden unbereinigter Implementierung (egal ob objektorientiert oder nicht) zum Stillstand gezwungen werden.“
- Ward Cunningham zu Technischer Schuld, OOPSLA 1992

Dienstag, 28. Februar 2012

Qualität von Softwareprojekten und Spaghetti

CC-BY-NC-SA Jenn Forman Orth
Softwareprojekte sind auch nicht anders als andere Projekte: Vor der (z.B. iterativen) Umsetzung der Anforderungen werden diese analysiert und z.B. in Form von Storycards oder Pflichtenheften oder Testfällen fixiert. Leider reicht das in der Praxis nicht, um damit die fachliche- und technische- (Wartbarkeit) Qualität zu definieren.

Wer im Rahmen von Softwareprojekten gute Qualität geliefert bekommen möchte, muss dasselbe beachten wie beim Kauf von Spaghetti (und allem anderen was käuflich ist):

Freitag, 10. Februar 2012

Quality Gates bei Java Entwicklung

Quality Gates in der Softwareentwicklung
CC-BY-SA Wikipedia
Die einzige Maßnahme, die die Qualität einer Software sicherstellen kann ist die Einführung von Quality Gates. Alle anderen "Qualitätssicherungsmaßnahmen" wie Pair Programming, Tests, Metriken etc. können die Qualität aufzeigen oder auch verbessern, aber niemals sicherstellen.
"Quality Gates sind Punkte im Ablauf eines Entwicklungsprojekts, bei denen anhand von im Voraus eindeutig bestimmten Qualitätskriterien über die Freigabe des nächsten Projektschrittes entschieden wird." - Jochen Peter Sondermann: Interne Qualitätsanforderungen und Anforderungsbewertung in Handbuch Qualitätsmanagement
"Freigabe des nächsten Projektschrittes" - das ist in der Softwareentwicklung die entscheidende Herausforderung.

web analytics