15 Punkte für bessere Software
Meine Spezialgebiete und Steckenperde zugleich sind agiles Projektmanagement und Teamentwicklung. Agilität und selbstorganisierende Teams sind zwar wichtig aber bei weitem nicht allein entscheidend für den Erfolg des Projektes oder die Qualität der produzierten Software. Die konkrete Vorgehensweise bei der Software-Entwicklung ist ebenso wichtig. Unter anderem der Artikel über Joel Spolsky, den Nils vor kurzem geschrieben hatte, hat mich dazu veranlasst meinen 15 Punkte Test „zu Blog“ zu bringen . Wie wird gute Software denn tatsächlich entwickelt? Ist die eigene Vorgehensweise gut oder schlecht? Anstatt viele Bücher zu wälzen und langwierige Evaluierungen durchzuführen, können die Rahmenbedingungen auch mit einem kurzen Test innerhalb von 5 Minuten geprüft werden. Ein berühmter Test hierzu stammt eben von Joel Spolsky. Er hat zwölf Punkte formuliert, die den Weg zu besserem Code weisen. The Joel Test: 12 Steps to Better Code.
- Do you use source control?
- Can you make a build in one step?
- Do you make daily builds?
- …
Ich möchte den Joel Test hier allerdings nicht in ganzer Länge zitieren. Er stellt jedoch eine wichtige Grundlage für den folgenden 15-Punkte-Test dar. Dieser ist an einigen Stellen allgemeiner an anderen Stellen etwas detaillierter formuliert. Es sind jeweils 5 Fragen zu den Bereichen Spezifikation, Vorgehensweise und Rahmenbedingungen bzw. Management. 15 Fragen, für jede 20 Sekunden Zeit um sie mit „Ja“ oder „Nein“ zu beantworten:
- Haben Sie eine fachliche Spezifikation?
- Haben Sie eine technische Spezifikation?
- Haben Sie dokumentierte Testfälle?
- Haben Sie Tester?
- Haben Sie Tester außerhalb des Entwicklungs- oder Projektteams?
- Verwenden Sie eine Versionsverwaltung?
- Ist Ihr Build-Prozess automatisiert?
- Machen Sie einen täglichen Build?
- Verwenden Sie ein Bugtracking-System?
- Beheben Sie Fehler bevor Sie neuen Code schreiben?
- Kann sich das Entwicklungsteam den Arbeitsplatz selbst gestalten?
- Können die EntwicklerInnen ungestört arbeiten?
- Stehen die besten (Wunsch)-Werkzeuge zur Verfügung?
- Gibt es einen aktuellen und validen Zeitplan?
- Werden Zeit-Schätzungen grundsätzlich von mehr als einer Person gemacht?
15 mal JA: Es gibt kaum noch etwas zu verbessern. Es bleibt höchstens die Frage ob die Fragen wahrheitsgemäß und nicht nur dem Wortlaut nach beantwortet wurden. Es wäre dann z.B. nachzufragen ob die vorhandenen Tester wirklich testen oder nur auf dem Papier vorhanden sind.
weniger als 3 mal JA: Dann haben Sie möglicherweise ein Problem und viel Verbesserungspotential.
Ziel des Tests ist es nicht auf Gedeih und Verderb die volle Punktzahl zu erreichen. Er soll in kürzest möglicher Zeit einen kritischen Blick auf ein konkretes Software-Entwicklungs-Projekt werfen. Die Fragen decken hierbei wichtige Grundsätze der Softwareentwicklung und des Projektmanagements ab, die in der Mindmap nochmals im Zusammenhang dargestellt sind:
Vielen Dank für den Artikel – er ist gleich in meine Bookmarks gewandert.
Vor allem ein sehr wichtiges Thema.
Auch wenn nicht php spezifisch gibt es mit der Clean-Code-Developer Initiative auch Ansätze in DACH.
http://www.heise.de/developer/Ralf-Westphal-im-Gespraech-ueber-Clean-Code-Developer–/artikel/143437
@Andre … 🙂
@Martin … danke für den Link, von dem Buch hatte ich schon gehört, den Ansatz kannte ich noch nicht