Hi,
ich glaube dass dir noch keiner geantwortet hat zeigt ein wenig das Problem bei deiner Frage, eine pauschale Antwort oder
das Buch gibt es einfach nicht. Ein nicht unwichtiger Anteil in (guter) Softwareentwicklung dürfte immer noch Erfahrung sein. An sich gibt es sehr viele Faktoren, die bei der Softwareentwicklung eine Rolle spielen, jeder dürfte hier seien Prioritäten anders setzen (hängt von der Art von Problemen, dem Umfeld, etc. ab).
Wenn du ein Buch findest, dass dir alle Punkte (oder nur einen sehr großen Teil) erklären möchte, dann wird es dir max. einen Überblick verschaffen, das eigentliche Wissen kann nicht in einem Buch vermittelt werden. An sich lohnt es sich deshalb mehr nach einzelnen Werken zu schauen, die ein Thema beinhalten dass für dich gerade wichtig ist. Der komplette Prozess der Softwareentwicklung wird eh nicht von einer Person abgewickelt. Klar, jetzt könnte man das bei sehr sehr kleinen Projekten annehmen, aber da entfallen dann auch schnell einzelne Felder.
Was das Vermeiden von Fehlern angeht, so bieten sich Werke wie Prefactoring (Ken Pugh) an, du kannst dir die Anti-Pattern anschauen, aber auch die Kenntnis wie man es richtig macht hilft (z.B. Datenstrukturen verstehen, Design Pattern verwenden, ...).
Auch
Unit-Testing ist eher ein eigenes Werk (schau dir einfach die Anzahl der Bücher an die hier findest). Was du unter Effektiv testen verstehst weiß ich zwar nicht, aber an sich ist die Idee hier, dass du sicherstellst, dass die einzelnen Bestandteile funktionieren. Tauscht du einen dieser Teile aus, stellt dein Test (wenn er gut ist) sicher, dass du dabei keinen Fehler in das Programm einschleust.
Die Professionelle Softwareentwicklung ist aber ein kompletter Prozess. Du hast hier schon ein riesiges (und sehr wichtiges) Vorfeld. Es muss erstmal das Problem erfasst werden (z.B. in einem Gespräch mit deinem Kunden). Da steckt schon ein riesiges Gefahrenpotential, die Kommunikation zwischen Menschen! Es ist einfach so, dass man leicht etwas falsch verstehen kann, das macht Kunden aber nicht glücklich...
Es geht mit jeder Menge Punkte weiter. Dabei kann man das Erstellen eines Pflichtenheftes, die Dokumentation, die Zwischenpräsentationen, uvm. immer als eigenes Buch abhandeln.
Ob da wirklich jedes Werk etwas bringt ist eine andere Sache. Die Frage die sich schnell stellt ist, ob das Wissen das so vermittelt wird die Erfahrung ersetzen kann. Wir (Firma in der ich arbeite) haben da ein klares Nein festgestellt, natürlich nicht auf den gesamten Prozess sondern schon auf viel kleinere Teile.
Das Hauptproblem um es nochmal deutlich zu sagen ist, dass es sehr stark davon abhängt, was du machst. Arbeitest du alleine, in einer Firma? Was für typische Kunden hast du dabei, was genau fällt da dann in dein Aufgabengebiet. Es gibt halt wirklich viele Gebiete und nicht jedes Umfeld wird auf allen Gebieten die gleiche Kenntnis erfordern. Unabhängig davon könnte keiner wirklich auf jedem Gebiet glänzen (sehr sehr unwahrscheinlich).
An sich kann man dir (
imho) leider keinen guten Tipp geben, welches Buch dafür gut geeignet ist. Du solltest dich jedenfalls nicht darauf verlassen, dass du ein vollständigen Überblick durch ein einzelnes (oder auch alle Bücher) haben wirst, denn auch hier gibt es natürlich eine ständige Weiterentwicklung.
An sich lohnt es sich aber vielleicht, wenn du dich ein wenig mit der generellen Softwaretechnik auseinander setzt. Leider kein all zu scharfer Begriff, aber so grob hast du die Punkte
- Anforderungsermittlung
- Analyse
- Systementwurf/Modellierung
- Implementierung
- Testen
Das ganze unterliegt natürlich noch einem Projekt-Managment und die Punkte können teilweise auch parallel abgearbeitet werden. Diese Liste ist auch keineswegs vollständig und es gibt auch andere Ansätze! Vielleicht solltest du dir hier auch gleich Softwareprozesse anschauen.
Im Moment wirst du wohl einen sehr starken Trend zu agilen Softwareprozessen und Objektorientierten Modellierungen finden, aber auch hier gilt, dass es keine universelle Lösung gibt, einzelne Probleme lassen sich mit bestimmten Konzepten sehr schön lösen, andere eher nicht.
Gruß Der Unwissende