Liebe Programmierkollegen,
Wie macht man "Softwareplanung", wenn es um akademische Forschung geht? Und wie können Sie Ihren Chef davon überzeugen, dass das Schreiben von Software nicht wie das Bauen eines Hauses und eher das Schreiben eines Romans ist ?
Die blutigen Details sind unten.
Ich bin verantwortlich für ein kleines Entwicklerteam, das in einem Forschungslabor arbeitet. Wir haben mit der Entwicklung einer Software begonnen, um eines Tages an die Börse zu gehen (dh damit zu verkaufen und Geld zu verdienen). Eine solche Software hängt unter anderem von mindestens zwei unabhängigen Forschungslinien ab: Das heißt, es gibt mindestens zwei Doktoranden. Kandidaten, die hoffentlich eines Tages eine funktionierende Umsetzung dessen herausbringen werden, was wir brauchen.
Die Hauptsoftware hängt auch von anderen, konkreteren Ressourcen ab, um die wir uns als Entwickler kümmern können: Grafik-Rendering, Verformung weicher Körper usw.
Mein Chef bat mich, die Spezifikationen, Anforderungen UND eine blutige GANTT-Tabelle des gesamten Projekts zu schreiben. Angesichts der Tatsache, dass ich keine Ahnung vom Forschungsteil habe und dass eine solche Forschung für die Software von grundlegender Bedeutung ist, sagte er: "Machen Sie Annahmen." Für die Klarheit des Arguments ist er ein Professor, dessen Ph.D. Die Schüler sollten sich die Forschung einfallen lassen, die wir brauchen. Und er hat einen rein technischen Hintergrund: Planen Sie zuerst alles, schreiben Sie die Spezifikationen auf und schreiben Sie erst dann den Code auf, dass "es der letzte Teil ist".
Was ich jetzt mache:
- Ich habe das Produkt in Funktionen unterteilt. Jedes Merkmal ist de facto ein separates Produkt.
- Jedes Feature baut auf dem vorherigen auf.
- Sobald eine Funktion (A) einen funktionierenden Prototyp hat, kann das Team mit der Arbeit an der nächsten Funktion (B) beginnen, während die Qualitätssicherung für A durchgeführt wird (wenn das Geld dies zulässt, können mehr Personen hinzugezogen werden usw.).
- Funktionen, die von der Forschung abhängen, werden zuletzt verfügbar sein: Bis dahin ist der Forschungsteil hoffentlich abgeschlossen ( wann ist noch eine große Frage)?
Außerdem habe ich das Team so eingestellt, dass SCRUM für die Entwicklung von 'Version 1.0 ' verwendet wird, die in einigen Monaten fällig ist. Diese Frist könnte auf der Grundlage angemessener Annahmen festgelegt werden: Wir haben alle erforderlichen Funktionen aufgelistet, unsere Verfügbarkeit gezählt und eine angemessene Schätzung abgegeben.
Meine Fragen lauten also wieder:
- Wie mache ich meinen Chef glücklich, während ich gleichzeitig etwas aus der Tür hole?
- Wie schreibe ich Spezifikationen für etwas, von dem wir - die Entwickler - keine Ahnung haben, ob es möglich ist oder nicht? (Wir haben immer noch nicht entschieden, welche Bibliotheken für einige Aufgaben verwendet werden sollen. Wir werden dies tun, wenn wir müssen.)
- Wie bekomme ich die Voraussetzungen dafür, da es noch keine Kunden oder Investoren gibt, nur viele Interessen und Versprechen?
- Wie bekomme ich Frieden in der Welt?
Ich bin sicher, dass mindestens eine meiner Fragen beantwortet wird :)
ps: Ich schreibe dies anonym, da ein potenzieller Investor möglicherweise nach hinten losgeht, wenn dies entdeckt wird. Hoffe du wirst verstehen. Ich muss jedoch sagen, dass ich diese Mentalität, die Wahrheit zu verbergen, nicht mag: Dieses Programm wird wahrscheinlich vielen zugute kommen, und es fühlt sich wie Zensur an, nicht offen darüber sprechen zu können (mit meinem Namen und meinem Ruf). Aber leider interessieren mich Ihre Vorschläge jetzt mehr.