Ohne dieses Buch hätte ich beinahe selber ein Projekt in den Sand gesetzt bevor es überhaupt begonnen hatte. Dank dem Büchlein konnte ich wenigstens meine Vorabinvestition wieder zurückholen weil der Vetrag an der Stelle wasserdicht war - was der gegnerische Anwalt am Ende der Verhandlung auch einsehen musste. Ich will Dir keine Angst machen, aber ich hatte vorher auch nicht damit gerechnet dass ich irgendwann ne Klage vor den Latz geknallt bekomme von meinem Auftraggeber.
Ein Projekt detailliert durchzuplanen ist Sinnvoll - wenn man mit mehreren Leuten daran arbeitet. So wie sich das bei Dir anhört wirst Du Dich bei Deiner Aufgabenstellung selber zu Tode Projektieren. Du musst - gerade bei so kleinen Projekten (im Sinne von wenig Mitarbeitern) - höllisch aufpassen dass Du nicht zu viel Planst und mehr Zeit mit dem Management des Projektes als mit der Realisierung selber verbrätst. Ohne Planung geht es natürlich nicht, aber Du solltest das auf ein Minimum reduzieren und Dich vor allem mit Terminaussagen vornehm zurückhalten.
Ich würde erstmal das Erstellen des Pflichtenheftes als ein eigenes kleines Projekt aufziehen und Pauschal abrechnen. Der Auftraggeber hat dann zumindest schonmal was in der Hand was auch Geld wert ist. Die Realisierung aufgrund des Pflichtenheftes kann er dann zwar schlimmstenfalls an andere Entwickler geben wenn ihm die Realisierung bei Dir dann zu lange dauert, aber so kannst Du Dir damit auf jeden Fall schonmal das nötige Entwicklungswerkzeug finanzieren dass Du später (vielleicht bei anderen Projekten) brauchen wirst.
Erst im zweiten Schritt würde ich das Softwaredesign anhand der Vorgaben im Pflichtenheft erstellen und dann parallel dazu schonmal mit Prototypen die Realisierung beginnen. Gerade am Anfang bei den ersten Projekten wirst Du schnell feststellen, dass sich das geplante so nicht umsetzen lässt. Wenn Du parallel zur Planung schon Code produzierst kannst Du noch in der Planungsphase Dein Modell anpassen wenn der Prototyp schon Probleme aufwirft. Wenn Du mehr Erfahrung hast wirst Du auch mehr Fehlerfrei designen können, aber gerade wenn man sowas zum ersten mal macht stolpert man erfahrungsgemäß unter Garantie über das eine oder andere Pattern oder über die angeblich perfekte Datenstruktur. Du legst Dich damit zwar schon zur Designzeit auf eine (Entwicklungs-)Plattform fest, was man eigentlich nicht sollte, aber alles andere wäre projekttechnischer Selbstmord wenn man die nötige Erfahrung noch nicht hat.