Was ist der beste Weg, um ein Proof of Concept-Shootout durchzuführen?

8

In Vorbereitung auf eine neue Version der Software, die unser Unternehmen unterhält, habe ich an einem meiner Meinung nach wirklich guten Ansatz zur Lösung unserer Skalierbarkeitsprobleme gearbeitet. Ich habe die Absicht, einen Proof of Concept zusammenzustellen, um das Design auf Papier zu validieren. Das wird tatsächlich das tun, was ich will. Als ich es dem Team mitteilte, hatte der Chef einen Gegenvorschlag, der teilweise von der Art und Weise inspiriert war, wie ich die Problembereiche beschrieb. Der Chef akzeptierte auch meinen Vorschlag, zwei Proofs of Concept durchzuführen, um die Alternativen zu bewerten.

Also, was ist der beste Weg, um das Proof-of-Concept-Shootout durchzuarbeiten? Wir haben sowohl objektive als auch subjektive Kriterien, anhand derer wir die Lösungen bewerten. Ich möchte sicherstellen, dass wir Äpfel mit Äpfeln mit diesen ziemlich unterschiedlichen Ansätzen vergleichen.

  • Wir haben Anforderungen an Durchsatz und Größe. Kurz gesagt, wir wissen, dass wir eine bestimmte Anzahl von Objekten pro Sekunde verarbeiten und diese Rate eine Stunde lang beibehalten müssen.
  • Wir müssen die Skalierbarkeit bewerten (sowohl durch Hinzufügen weiterer Kerne als auch durch Erhöhen der Anzahl der Objekte).
  • Wir müssen die Leichtigkeit der Entwicklung bewerten (subjektiv)
  • Wir müssen bewerten, wie einfach es ist, den Algorithmus zu verstehen (subjektiv)

Ich habe meine Theorie darüber, wie sich die Dinge entwickeln werden, aber ich möchte nicht, dass dies meine Ergebnisse beeinflusst. Jede Eingabe zur Aufrechterhaltung der Objektivität in diesem Prozess und zu Dingen, die ich möglicherweise berücksichtigen muss, wäre sehr dankbar.

Berin Loritsch
quelle

Antworten:

9

Im Allgemeinen tun wir ...

  • Legen Sie eine Frist von 1 Monat fest
  • Verwenden Sie Ihre Anforderungen, die Sie aufgelistet haben, und codieren Sie sie.
  • Lassen Sie einen Moderator, der kein Programm schreibt, die Anforderungen kontrollieren und nicht sehen, dass er an eine versteckte Anforderung denkt, die in kurzer Zeit erledigt werden sollte.

  • Wenn der Rest des Teams die Programme überprüft, um sie zu bewerten, müssen SIE die Anforderungen zu jedem System hinzufügen, damit sie ein Gefühl für beide bekommen. Nachdem sich das Team mit dem Code befasst und die fehlende Anforderung hinzugefügt hat, sollte es ein angemessenes Gefühl für die Codebasen haben und auswählen, aus welcher sie sich entwickeln möchten.

    • Nehmen Sie dann die besten verbleibenden Teile des "Verlierers" und integrieren Sie sie in die Gewinnerarchitektur.
Dave Hanson
quelle
Ich mag diese Idee
Justin Ohms
1

Für die subjektiven Elemente kommen Sie mit einer numerischen Bewertung von einiger Zeit und versuchen, unvoreingenommenes Feedback zu erhalten. Beispiel: Für "Den Algorithmus verstehen" muss ein Programmierer, der keine der beiden geschrieben hat, beide betrachten und gegeneinander bewerten.

Sie können auch objektive Kennzahlen für den Code berücksichtigen, z. B. die Codes "Komplexität". Es gibt einige Tools, mit denen Sie die Kennzahlen anhand der Anzahl der Steueranweisungen usw. messen können.

Nehmen Sie Ihr Ranking in jeder Kategorie und addieren Sie sie zu einer "Gesamtpunktzahl" für jeden Ansatz.

jzd
quelle
1

wie man Objektivität in diesem Prozess aufrechterhält

Sie haben nur ein objektives Kriterium. Der Durchsatz.

Alles ist subjektiv. Sie können nicht "objektiv" sein. Alles was Sie tun können, ist "fair" zu sein. Welt des Unterschieds.

Die endgültige Entscheidung ist immer politisch. Solange alle verfügbaren Informationen zur Verfügung gestellt wurden; Sie haben alles getan, was Sie tun können.

Machen Sie sich keine Sorgen, wenn Sie versuchen, den perfekten ("objektiven") Punkt zu erzielen. Was Sie als richtig oder am besten ansehen, kann einfach durch eine lächerliche Ausrede wie "Das Team verfügt nicht über die erforderlichen Fähigkeiten für Ihre vorgeschlagene Lösung" aufgehoben werden.

Erstellen Sie einfach die Demos. Führen Sie sie aus. Seien Sie auf zufällige Entscheidungen vorbereitet. Das Beste, auf das Sie hoffen können, ist informiert und fair . Sie können nicht leicht zum "Ziel" gelangen.

S.Lott
quelle
Es geht nicht darum zu gewinnen und zu verlieren. Es geht darum, die beste Option auszuwählen. Das Team hier ist wunderbar unpolitisch, ein seltener Fund. Sie kümmern sich auch nur darum, die beste Wahl zu treffen. Übrigens: Skalierbarkeit ist auch messbar.
Berin Loritsch
@Berin Loritsch: Die "beste" Option ist nicht leicht vorhersehbar. Die Skalierbarkeit basiert ausschließlich auf Annahmen über die Zukunft. Da wir die Zukunft nicht vorhersehen können, haben wir keine sehr objektiven Kriterien. Wir haben nur eine Reihe umstrittener Annahmen. "Best" ist schwer zu machen; Perfektion ist unerreichbar. Entspannen. Wähle etwas und gehe weiter. In einem Jahr werden Sie einige der Fehler erkennen, die Sie gemacht haben.
S.Lott