Entwicklungsentwicklung bei akademischer Forschung

11

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:

  1. Ich habe das Produkt in Funktionen unterteilt. Jedes Merkmal ist de facto ein separates Produkt.
  2. Jedes Feature baut auf dem vorherigen auf.
  3. 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.).
  4. 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.

Ein anderer anonymer Benutzer
quelle
Als ehemaliger Doktorand, der jahrelang in einer schwarzen Grube der Stagnation und Dunkelheit gearbeitet hat, wäre ich ziemlich aufgeregt (und auch verängstigt) gewesen zu wissen, dass Fachleute darauf warteten, etwas Nützliches mit meiner Arbeit zu tun. Es wäre enorm motivierend gewesen. Ich sehe, dass diese Frage vor fast einem Jahr gestellt wurde, aber wenn die Situation dieselbe bleibt, würde mich interessieren, wie viel Kontakt Sie mit den Schülern haben. Es könnte hilfreich sein, sie wissen zu lassen, dass Sie sich für sie interessieren!
Oktober

Antworten:

6

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.)

Donal Fellows
quelle
Donal, danke für deine Antwort. Sie sprechen einige gute Punkte an; insbesondere zum Risikomanagement. Bei der Forschung sollen sie negative Ergebnisse erzielen: So wird geforscht! Wenn Sie bereits wussten, was Sie bekommen werden, ist es keine Forschung, sondern Werbung. Über die Notwendigkeit, anonym zu bleiben: Auf meinem Stackexchange-Konto können Sie in meinem Karriereprofil sehen, wer ich bin und wo ich arbeite. Das könnte das zukünftige Gehalt meines Teams gefährden (ja, wir streben eine Finanzierung ohne F & E an). Wenn es nur ich wäre, wäre ich ehrlich. Aber es ist nicht mein Geld, dass es sie jetzt bezahlt, also muss ich vorsichtig sein.
Ein anderer anonymer Benutzer
1
Hervorragende Antwort. Selbst bei der Art der kommerziellen Softwareentwicklung, die ich durchgeführt habe, gibt es Unbekannte, bei denen Sie nur die Spezifikationen und Zeitpläne genau erraten müssen. Solange jeder weiß, dass dies Vermutungen sind und Änderungen unterliegen, ist es in Ordnung. Eine Sache, die Sie mit den Forschungsgegenständen tun können, ist, dass Sie für jede Zahl, die Sie angeben müssen (Daten, Geld usw.), einen guten Fall erraten und liefern (10% Wahrscheinlichkeit, dass es so gut läuft), erwartet (50%) und Bad Case (90%) Werte. Versuchen Sie außerdem, "Plan B" (und idealerweise C und D) in Ihrer virtuellen Gesäßtasche zu haben, um Unbekanntes zu vermeiden.
Bob Murphy
Das Problem bei der Abhängigkeit von der Forschung besteht darin, dass die Wahrscheinlichkeit groß ist, dass Sie eine „definitiv negative“ Antwort erhalten: Was Sie für das Produkt wollen, erfordert nicht nur etwas Unbekanntes, sondern etwas, das nicht erstellt werden kann. Oder dass die Forschung niemals etwas Relevantes liefert (ein echtes Risiko bei Doktoranden). Der Punkt, an dem Sie die große Investition tätigen können, ist, nachdem Sie einen kleinen Proof of Concept erstellt haben, damit Sie zumindest wissen, dass dies möglich ist und dass Sie nur lösen müssen, wie Sie es nutzbar und marktfähig machen können.
Donal Fellows
2

Wie mache ich meinen Chef glücklich, während ich gleichzeitig etwas aus der Tür hole?

Sei schlau und erledige Dinge.

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.)

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.

Wie bekomme ich die Voraussetzungen dafür, da es noch keine Kunden oder Investoren gibt, nur viele Interessen und Versprechen?

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.

Wie bekomme ich Frieden in der Welt?

Off Topic :-)

Peter K.
quelle
2

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.

Paul Hiemstra
quelle