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.
Antworten:
Ich war einige Male in dieser Position, und mit Erfahrung können Sie sich nicht darauf verlassen, dass der Doktorand relevante Forschungsergebnisse liefert, und Sie können sich sicher nicht darauf verlassen, dass dies in einem Zeitrahmen geschieht, der nützlich ist. Doktoranden dürfen gezielt dorthin gehen, wo ihre Forschungsinteressen sie hinführen, und es kann äußerst schwierig sein, nachgelagert zu sein, wenn sie plötzlich auf einer Nebenstrecke losfahren, die für sie relevant ist, aber nicht für Sie. Dies ist eine wichtige Risikoquelle für Ihr Projekt. Daher müssen Sie in Ihrem Projektplan geeignete Strategien zur Risikominderung verwenden.
Vor diesem Hintergrund sollten Sie herausfinden, wann Sie liefern müssen (siehe das Forschungsstipendium; es hängt eher von Ihrer Finanzierung als von irgendetwas anderem ab) und wie lange es dauern wird, bis die Forschung geliefert wird . Dies wird einige allmächtige Vermutungen erfordern, aber das kann nicht geholfen werden; macht diese Vermutungen explizit in der Zeitschätzung . Bewältigen Sie das Risiko später, indem Sie in relativ engem Kontakt mit den Doktoranden bleiben (z. B. einmal im Monat an ihren Tutorials teilnehmen), damit Sie, wenn es so aussieht, als würden sie nicht rechtzeitig das liefern, was Sie brauchen Denken Sie im Detail über Minderungsstrategien nach. Wenn Sie Glück haben, zahlt sich das Glücksspiel aus und Sie erhalten etwas Nützliches aus der Forschung. Seltsamere Dinge sind passiert.
Alles andere ergibt sich aus dem Wissen, wer Ihre Kunden sein werden, und dem Überlegen, wie sie das spätere Produkt verwenden sollen (und wie sie es tatsächlich auch verwenden werden). Wenn Sie das nicht wissen, werden Sie an niemanden verkaufen. Aber du solltest es wissen oder es zumindest bald herausfinden. (Wenn es vom Forschungsteil bestimmt wird, sind Sie in großen Schwierigkeiten! Forschungsprojekte können mit Sicherheit negative oder teilweise negative Ergebnisse liefern; es passiert immer wieder, auch wenn es nicht immer so häufig berichtet wird.)
Abschließend halte ich es für eine schreckliche Schande, dass Sie dies anonym tun, da Sie lediglich Rat zu einer bestimmten Art von Projektmanagement einholen. Sie erwähnen nicht, was das Thema der Forschung ist oder wer sie durchführt oder wer einer Ihrer Mitarbeiter ist, und es wäre auch nicht wichtig für diese Frage. Der einzige Weg, auf dem es ein Problem geben könnte, besteht darin, dass Sie vor der Durchführung der Forschung eine Nicht-F & E-Finanzierung beantragt haben. Dies würde jedoch entweder erfordern, dass Sie das damit verbundene Risiko offenlegen (wahrscheinlich die Investition scheitern lassen!) Oder höchst unehrlich sind. Da Sie vorhaben, ehrlich zu sein, sollte dies nicht geschehen, da das Projekt diese Art der Finanzierung erst dann anstreben sollte, wenn die Risiken sicherer sind. (Wenn Sie als Gruppe mit den potenziellen Investoren unehrlich sind, ist das genau dort ein Problem und es wird in Tränen enden. Oder in Gerichtsverfahren.)
quelle
Sei schlau und erledige Dinge.
Wenn Sie nicht wissen, mit was Sie arbeiten werden, ist das ein Problem. Welche Eingaben geben Sie der Magic Box? Welche Ausgaben erhalten Sie von der Magic Box? Das wird den Forschern auch helfen, die Magie zu definieren.
Wenn Ihr Akademiker durch ein Stipendium finanziert wurde, hat er wahrscheinlich einen Forschungsvorschlag verfasst. Besorgen Sie sich das. Wenn es einem der Forschungsstipendienvorschläge entspricht, die ich gesehen (und geschrieben) habe, wird es einen Zeitplan und eine "Spezifikation" dessen geben, was sie versuchen zu tun.
Anforderungen sind, was die Endbenutzer des Algorithmus / thing-a-ma-jig. Sehen Sie nach, ob Sie sie (oder potenzielle Kunden / Kunden) interviewen können.
Ansonsten essen Sie Ihr eigenes Hundefutter.
Off Topic :-)
quelle
Ich denke, in der Forschungs- und Entwicklungsplanung funktioniert das Zeug auf einmal, und die Entwicklung funktioniert nicht wirklich gut. Ich arbeite an einem Forschungsinstitut und wir arbeiten mehr mit Rapid Prototyping. Oft liefert die Entwicklung eines Prototyps den Einblick in das, was genau benötigt wird. Durch die schnelle Erstellung eines Prototyps können Sie Feedback von Ihrem Chef und den Forschern erhalten und feststellen, ob dies das war, was sie erwartet hatten, und auch prüfen, ob Ihr Ansatz funktioniert. Anschließend können Sie Ihren Code umgestalten und verbessern. Das sehe ich in der Praxis an den Forschungsinstituten, an denen ich gearbeitet habe.
quelle