Mein Anspruch an mich als Softwareentwickler
Von Carsten
Ich schreibe jetzt schon seit einigen Jahren verschiedene Arten von Software – kleine Hilfsprogramme, Webservices, Webanwendungen, Desktopsoftware, Shellskripte – und dabei hat sich bei mir eine gewisse Haltung ausgeprägt, wie ich an solche Dinge herangehe und was ich selbst als gute Software betrachte. Natürlich immer aus Sicht eines Softwareentwicklers, aber ich versuche mich auch als Tester und als Architekt weiterzubilden.
Ich versuche auch, den Nutzer (egal ob Endkunde oder anderer Softwareentwickler) im Blick zu behalten. Wenn ich also Software baue, höre ich in meinem Hinterkopf ein paar Fragen:
- Wie oft muss ich klicken, um eine Funktion auszuführen?
- Werden meine Eingaben übernommen und Fehler markiert oder muss ich alles nochmal ausfüllen?
- Kann ich den Webservice ohne groÃÂe Dokumentation verstehen?
- WeiÃÂ ich, welche Daten ich liefern muss, um eine Antwort zu bekommen?
- Ist die Fehlermeldung selbsterklärend oder steht da nur ein kryptischer Fehlercode?
- Ist das für die Qualitätssicherung im Integrationstest nutzbar?
- Muss ich noch etwas vorbereiten, damit ich den Code/die Funktionalität beim nächsten Mal erweitern kann?
Ausserdem gehören ein paar Dinge für mich auch selbstverständlich dazu:
- Codestyle befolgen (und toolgestützt überprüfen lassen)
- oft einchecken
- immer eine aussagekräftige Commit-Message
- Beherrschung der IDE/der Versionsverwaltung
- Automatisiert testen
- Zu jedem Zeitpunkt wiederholbare Deployments
Natürlich weichen die Tools und auch die Techniken von Projekt zu Projekt ab. Aber es gehört für mich zu meiner Aufgabe als Softwareentwicklung, diese Ansprüche an mich selbst in allen Programmiersprachen und Umgebungen anzuwenden.
Wie sieht das bei euch aus? Habt ihr auch einen Mindeststandard, den ihr auf eure Software anwendet? Und welche Regeln befolgt ihr?