Ich habe 2 Tage Zeit, um eine sehr ernsthafte Entscheidung über die Tools und Plattformen zu treffen, die mein Unternehmen verwenden wird, um seine WPF-Anwendung auf Linux / Android / iOS zu portieren.
Natürlich kann ich meinen Senioren sagen, dass 2 Tage kaum ausreichen, um über alle möglichen Optionen zu lesen, und was ist mit dem Ausprobieren, dem Erstellen von Prototypen usw. Ich kann es sagen, es hilft mir kein bisschen, ich habe 2 Tage und Nach 2 Tagen würde die Entscheidung getroffen werden. Zeitraum.
Auf der einen Seite bin ich frustriert, auf der anderen Seite denke ich, dass dieser Ansatz ein Körnchen Wahrheit enthält. Andernfalls kann ich mich leicht unter Dutzenden heruntergeladener SDKs, Frameworks, APIs, Blog-Artikeln usw. begraben, die Bench-Arbeiten durchführen und Beispiele ausführen und dabei zu vergessen, wozu das alles gut war.
Trotzdem befürchte ich, dass eine falsche Entscheidung das Unternehmen teuer werden könnte. Was halten Sie für einen "idealen" Prozess, um solche Entscheidungen zu treffen?
Antworten:
Wenn Sie nur 2 Tage Zeit haben und keine Zeit haben, Prototypen zu erstellen oder gar alle Alternativen durchzulesen, gibt es nur 2 Möglichkeiten:
Fragen Sie jemanden, der seinen Rat kennt und befolgt. Dies muss nicht unbedingt bedeuten, dass Sie eine Person fragen müssen, sondern Sie müssen die 2 Tage lang in Blogs und Artikeln suchen, um genügend Informationen zu erhalten, um eine Entscheidung zu treffen, die etwas besser ist als uninformiert.
Machen Sie sich ein wenig mit allen gängigen Optionen vertraut und wählen Sie dann eine aus. Manchmal bedeutet Führung, keine Angst davor zu haben, die falsche Entscheidung zu treffen. Oft ist es wichtiger, eine feste Entscheidung zu treffen, als zu schwanken.
Sie können sich abdecken, indem Sie Architekturen entwickeln, die entkoppelt sind und daher einfacher zu ändern sind - z. B. können Sie mit einem Client / Server-Modell Ihre UI-Technologie mit minimaler Unterbrechung durch eine andere ersetzen.
quelle
Es mag den Anschein haben, als würde ich mich gegen den Strom wenden, aber ich habe kürzlich das Buch Creativity, Inc. von Ed Catmull gelesen und es gab einen wirklich schönen Absatz, der sich mit dieser Situation befasste:
Ich bin sicher, dass es auch für Ihre Situation angewendet werden kann. Vielleicht können Sie heute die Entscheidung treffen, indem Sie eine auswählen und damit beginnen, daran zu arbeiten. Wenn es funktioniert, haben Sie in diesen zwei Tagen etwas fertig und werden sagen: "Ich habe es ausgewählt und kann Ihnen zeigen, was wir damit machen können, weil ich nur wenige Tests durchgeführt habe ...". Wenn Sie an einem Tag feststellen, dass sich die ausgewählte Lösung überhaupt nicht lohnt, können Sie eine andere auswählen und am nächsten Tag damit arbeiten. Das schlimmste Szenario ist, dass Sie beide Tage verwenden, um zwei Plattformen zu testen und herauszufinden, dass keine von beiden funktioniert - aber das ist letztendlich die richtige Antwort, nicht wahr? Entfernen Sie das Unkraut, beseitigen Sie falsche Entscheidungen, damit jede nächste Entscheidung viel besser ist als die vorherige. Das beste Szenario ist, dass Sie
Natürlich werden Sie in zwei Tagen keine Plattform mehr beherrschen, aber wenn Sie sich für eine entscheiden, erhalten Sie auf jeden Fall einen besseren Überblick über die Funktionsweise (viel mehr als nur das Lesen) und erhalten eine bessere Antwort.
quelle
gbjbaanb macht einige sehr gute Punkte. Ich dachte nur, ich würde ein bisschen hinzufügen.
Es ist offensichtlich, dass Sie nicht genug Zeit haben, um eine perfekt informierte Entscheidung zu treffen. Sie können nur versuchen, eine Entscheidung zu treffen, die zukünftige Schmerzen minimiert. Ich würde vorschlagen:
Dokumentieren Sie klar die Art der Situation: Senden Sie eine E-Mail an Ihre Manager und CC deren Manager und die Stakeholder. Erklären Sie, dass das Ihnen zugewiesene Problem schwierig ist, Sie aber bereit sind, alles zu geben. Beachten Sie jedoch, dass Sie aufgrund der strengen Zeitbeschränkungen nicht garantieren können, dass Ihre Ergebnisse optimal sind.
Finden Sie ein Framework / eine Plattform mit einer großen und aktiven Online-Community. Das Letzte, was Sie wollen, ist, nur ein undurchsichtiges Framework zu debuggen.
Wie bereits von gbjbaanb erwähnt, sollten Sie Ihre Portierungsprobleme und -risiken durch die Verwendung einer lose gekoppelten Architektur mindern. Wenn alles mit einer Ihrer Technologiewahlen birnenförmig wird, wird es einfacher, es auszutauschen.
Ich war schon einmal in Ihrer Situation und es wurde schließlich ein politischer Albtraum. Als das System nicht auf magische Weise funktionierte, begannen die Leute, mit den Fingern zu zeigen, und die Dinge wurden hässlich. Deshalb ist meine Empfehlung Nr. 1, klar zu dokumentieren, dass Sie Ihr Bestes gegen unmögliche Chancen getan haben .
Viel Glück :)
quelle
Da Sie effektiv nur wenig Zeit haben, um mehr zu tun, als Kandidaten aus dem Hut zu ziehen, würde ich den folgenden Ansatz wählen.
Wählen Sie Technologien aus, die:
Per Definition würde dies jede Spitzentechnologie ausschließen, wie gut sie auch sein mag.
Widerstehen Sie auch dem Drang, ohne weitere Analyse auf Technologie X umzusteigen, nur weil Fred, der Entwickler, sie in der Vergangenheit verwendet hat. Es ist unwahrscheinlich, dass es perfekt passt, und wenn Fred grüner auf die Weiden geht, ist Ihr Domain-Experte da.
quelle
2 Tage sind eine sehr kurze Zeitspanne, um eine solche Entscheidung zu treffen. Da Sie dies jedoch in einer Liste von 2 Tagen tun müssen,
Jetzt müssen Sie nach Alternativen suchen, die Sie für alle Zielumgebungen verwenden können
Informieren Sie sich für jede Alternative über die Unterstützung für die Verwendung der Konnektivität / Sicherheit, die die aktuelle App verwendet.
Dann finden Sie für jede benutzerdefinierte Komponente / Komponente eines Drittanbieters heraus, ob es für jede Komponente einfach zu verwendende Alternativen gibt.
Überlegen Sie dann, wie die Verteilung für jede gefundene Alternative erfolgen kann.
Ich denke, für 2 Tage sollte dies der Umfang sein, den Sie abdecken können und basierend auf den Ergebnissen können Sie eine Lösung anbieten.
quelle
So gerne ich neue Dinge lerne und experimentiere, ist es unter Zeitbeschränkungen immer die beste Option, das zu wählen, womit man besser arbeiten kann oder will. Bleib bei dem, was du weißt.
Auch wenn auf lange Sicht klar wird, dass Sie nicht die beste Option gewählt haben, ist alles, was Sie in der Zwischenzeit entwickelt haben, weiterhin wertvoll und bietet eine Art Feldwissen, das immer noch vollständig nutzbar und portabel ist. Und genau das liegt daran, dass der komfortable Kontext, die Tools und die Plattform, die Sie verwenden, Ihnen nicht im Weg stehen und Sie erkennen lassen, worauf es ankommt.
quelle
Erstellen Sie eine Liste der Faktoren, die bei der Auswahl berücksichtigt werden sollten, z.
Dies sollte weniger als eine Stunde dauern (eigentlich sollte es weniger als 15 Minuten dauern), dann setzen Sie sich mit dem Management in Verbindung und lassen Sie diese Faktoren priorisieren. (Die Wahrscheinlichkeit, dass ihre und Ihre Prioritäten gleich sind, ist gering, obwohl Sie Ihre Auswahl mit Vorschlägen zu Prioritäten ein wenig leiten können.) Jetzt wissen Sie, was Sie über die Technologie bewerten müssen.
Wählen Sie anhand einer Internetsuche drei oder vier gängige Lösungen für Ihr Problem aus.
Lesen Sie dann genug, um eine gute Vorstellung davon zu bekommen, wie gut jede der Auswahlmöglichkeiten zu ihren Top-3-4-Prioritäten passt. Weisen Sie jeder Auswahl einen numerischen Wert zu. Berechnen Sie, indem Sie die Bewertung jeder Priorität mit dem für diese Priorität festgelegten Wert multiplizieren (10 für Nummer 1, 8 für Nummer 2, 6 für Nummer 3, 4 für Nummer 4 oder eine beliebige Zahl). Jetzt haben Sie für jede Möglichkeit eine numerische Punktzahl. Grundsätzlich ist klar, welche den zugewiesenen Prioritäten am besten entspricht. Noch besser ist, dass Sie jetzt etwas Analytisches mitnehmen können, um Ihre Wahl zu beweisen. Sie kaufen normalerweise auf Ihrer Wahl ab, weil Sie die Zahlen haben, um sie zu stützen. Wenn die Nummern dies nicht unterstützen, müssen Sie sich fragen, warum Sie die andere bevorzugen und entweder numerisch die beste wählen oder die zugewiesenen Nummern erneut aufrufen.
Wenn Sie sich auf die wahren Priroiten Ihrer Wahl konzentrieren, können Sie viel Zeit für die Recherche einsparen. Sie können wahrscheinlich innerhalb eines Tages eine Vermutung anstellen und haben dann noch einen Tag Zeit, um die beiden besten Möglichkeiten zu nutzen und bei Bedarf Testversionen herunterzuladen und ein wenig mit ihnen zu spielen.
quelle