工欲善其事, 必先利其器“ 《論語.魏靈公》

 „ Um gute Arbeit zu leisten, braucht ein Handwerker die besten Werkzeuge “ Konfuzianische Analysen 

Der Softwareansatz ist die Praxis, ausgewählte Prozesstechniken einzusetzen, um die Qualität einer Softwareentwicklung zu verbessern, was zu weniger Fehlern führt und daher letztendlich kürzere Lieferzeiten und einen besseren Wert bietet. Oft wird behauptet, ein Software-Ansatz sei besser als alle anderen, was immer wieder Gegenstand endloser Diskussionen ist Ich muss sagen, dass es nicht den einen besten Entwicklungsansatz gibt, verschiedene Methoden eignen sich am besten für verschiedene Projektkontexte. Was am besten ist, hängt davon ab, für wen die Methode ist, unter welchen Umständen, zu welchem ​​Zweck und so weiter; Zu sagen, dass keine einzelne Methode die beste für Softwareentwickler ist, bedeutet auch zu sagen, dass unterschiedliche Methoden für unterschiedliche Teams oder für unterschiedliche Projektarten am besten geeignet sind.

Grady Booch sagt dazu:

„Wenn Sie eine Hundehütte bauen möchten, können Sie mit einem Haufen Holz, einigen Nägeln und ein paar grundlegenden Werkzeugen wie Hammer, Säge und Maßband beginnen. In ein paar Stunden werden Sie wahrscheinlich eine halbwegs funktionelle Hundehütte haben … Wenn Sie ein Bürohochhaus bauen wollen, müssen Sie umfassend planen … Sie werden nur ein Teil einer viel größeren Gruppe sein verantwortlich für die Entwicklung und Bereitstellung des Gebäudes, und daher wird das Team alle möglichen Blaupausen und Modelle benötigen, um miteinander zu kommunizieren …“

Würden Sie den gleichen Ansatz für eine kleine Webanwendung und eine NASA-Raumsonde verfolgen? Wahrscheinlich nicht. Würden Sie mit einem Team von sechs Personen genauso vorgehen wie mit einem Team von sechzig Personen? Wieder einmal wahrscheinlich nicht. Unterschiedliche Situationen erfordern offensichtlich unterschiedliche Herangehensweisen, wie Scott Amber feststellte. Es gibt keine Einheitslösung für die Softwareentwicklung, tatsächlich müssen Designer über eine breite Palette von Tools verfügen, um die Vor- und Nachteile jedes einzelnen zu verstehen und sich schnell für die am besten geeigneten Tools entscheiden zu können Anwendung in einem wünschenswerten Workflow für den gegebenen Kontext .