Sollte eine Analyse technologieunabhängig sein? [geschlossen]

11

Ich hatte gestern einen Streit mit einem meiner Kollegen. Er (ein Business-Analyst, zuvor ein Programmierer) ist der Meinung, dass er sich der Technologie bewusst sein sollte, die zur Implementierung des Systems verwendet wird, damit er bessere Entwurfsentscheidungen treffen kann. Meiner Meinung nach (ich bin Programmierer) sollte eine Analyse in keiner Weise an die Technologie gekoppelt werden, und ich glaube, dass ein guter Analyst ein großartiges Design erstellen kann, ohne sich um die Implementierungsdetails kümmern zu müssen.

Habe ich Recht, so zu denken? Gibt es Gründe, warum ein Business Analyst die zur Implementierung des Systems verwendete Technologie kennen muss?

EDIT: Ich glaube, dass ich den falschen Begriff verwendet habe, als ich sagte business analyst. Vielleicht meinte ich Architekt oder Systemanalytiker. Ich bin an diese Begriffe nicht gewöhnt. Ich meinte so etwas wie Architekt oder Systemanalytiker, wenn Sie es vorziehen.

Vielen Dank an alle für Ihre tollen Antworten! Ich bin noch nicht sehr erfahren und ich bin froh, dass Sie mir die Augen geöffnet haben.

marco-fiset
quelle
8
Haben Sie ihn nach einem Beispiel gefragt, wann es einen Unterschied machen würde?
Karl Bielefeldt
Er hat mir kein Beispiel gegeben, aber wir verwenden eine breite Palette von Technologien, die von alten AS / 400-Systemen über Delphi bis hin zu .Net für alles Neue reichen. Aber ich denke immer noch, wenn Sie etwas entwerfen, das in RPG implementiert werden soll, werden Sie es in C # auf die gleiche Weise entwerfen, indem Sie die Trennung von Bedenken und eine geeignete Ebene für Geschäftslogik usw. verwenden
marco-fiset
Er müsste so viel wissen wie der Benutzer. AS / 400 gegen eine Web-App ist ein Detail, das er benötigen würde.
Codierer
2
Der Unterschied wäre im Teil "Dann müssen Sie dem Benutzer etwas präsentieren". Der Geschäftsanalyst muss wissen, welche Art von Benutzeroberfläche verwendet wird und welche Optionen verfügbar sind. Es gibt Tools, mit denen Business Analysten definieren können, was funktional passieren soll, wenn ein Benutzer x ausführt (z. B. Klicken auf eine Schaltfläche). Wenn die Plattform keine Schaltfläche (grüner Bildschirm) hat, ist dies eine nützliche Information.
Codierer
1
@marcof: Die ideale Benutzeroberfläche wäre, wenn der Benutzer einen Gedanken denkt und das, was er tun wollte, einfach getan wird. Alles andere wird durch die technologischen Einschränkungen, die uns zur Verfügung stehen,
lahmgelegt

Antworten:

18

Es gibt sicherlich Fälle, in denen es für einen Geschäftsanalysten sinnvoll ist, die Technologie zumindest gut genug zu verstehen, um zu verstehen, wo es sinnvoll ist, einen Geschäftsbenutzer zu befragen, wie wichtig eine bestimmte Funktion wäre. Wenn das Unternehmen beispielsweise an das Verhalten einer Fat Client-Anwendung gewöhnt ist, während die neue Anwendung webbasiert sein wird, ist es wahrscheinlich, dass es viele "Anforderungen" gibt, die für einen Fat Client trivial, aber relativ schwierig sind mit einer webbasierten Anwendung. Wenn der Geschäftsanalyst versteht, ob eine Anfrage des Geschäfts für das Entwicklungsteam trivial sein wird oder ob 20 Stunden AJAX-Entwicklung erforderlich sind,

Für ein bestimmtes Projekt gibt es wahrscheinlich eine große Anzahl von Anforderungen, die das Geschäft in Wirklichkeit durch verschiedene Arten von Kompromissen befriedigen würden. Je besser der Geschäftsanalyst weiß, welche Kompromisse er eingeht, desto wahrscheinlicher ist es, dass er eine Reihe von Anforderungen erfüllt, die den Nutzen für das Unternehmen maximieren und gleichzeitig die Kosten minimieren.

Justin Cave
quelle
4
+1 für "Maximiert den Nutzen für das Unternehmen bei gleichzeitiger Minimierung der Kosten". Dies ist nicht möglich, ohne dass der BA die Technologie versteht. Die Aufgabe der BA ist es, auf einer höheren Ebene mehr Technologie als der Programmierer zu verstehen.
Mattnz
Darüber hinaus sollten nicht die Anforderungen geändert werden, sondern die Einschränkungen, die sich auf die Implementierung dieser Anforderungen auswirken. Nur weil das Unternehmen nicht bekommen kann, was es will, heißt das nicht, dass es aufhören sollte, es zu wollen, obwohl es sie zwingt, zu rationalisieren, was sie jetzt haben können . zB einen schlechten Job zu haben, hindert mich nicht daran, einen besseren zu wollen, er kann mit den gegenwärtigen Einschränkungen einfach nicht erreicht werden. Wichtig ist, dass dadurch die Möglichkeit eröffnet wird, dass die Anforderung jetzt erfüllt werden kann, wenn eine Einschränkung entfernt wird. Wenn Sie die Anforderung für das Jetzt ändern, verlieren Sie es für immer
BiGXERO
8

Nachdem ich beide Seiten dieser Ausgabe bearbeitet habe, muss ich dem Analysten zustimmen. Ich habe einige spektakulär schlechte Designs gesehen, die auf mangelndes Verständnis der Fähigkeiten der Technologie zurückzuführen sind. In einigen Fällen war dies darauf zurückzuführen, dass Marketing-Hype als Wahrheit angesehen wurde. Im Allgemeinen bestand das Problem darin, Spezifikationen zu generieren, die nicht den technischen Fähigkeiten entsprechen.

Der Analyst sollte angeben, was wann und von wem zu tun ist. Sie sollten wissen, warum es getan wird. Die Entwicklungspriorität sollte stärker vom Warum als von den anderen Faktoren abhängen. Das Design- und Entwicklungsteam muss mit dem Wie umgehen. Um kostengünstige Systeme zu entwickeln, müssen die Analysten angeben, was zu tun ist, um die Grenzen der verfügbaren Technologie nicht zu überschreiten.

Das Überschreiten der Grenzen kann die Kosten auf verschiedene Weise erhöhen, kann jedoch in einigen Fällen eine erhebliche Rendite bringen. Einige der Kostenfaktoren sind:

  • Möglicherweise sind Experimente erforderlich, um eine funktionierende Lösung zu entwickeln.
  • Möglicherweise müssen neue Mitarbeiter oder Berater mit Fachwissen erworben werden.
  • Möglicherweise sind Schulungen zu der neuen Technologie erforderlich.
  • Die Entwicklung ist tendenziell langsamer und die Fehlerraten höher. und
  • Zusätzliche Anstrengungen können einfachere Lösungen verzögern, die einen unmittelbareren Wert haben.
BillThor
quelle
6

Wenn die verwendete Technologie bekannt ist, sollte sie von den Analysten bei der Erstellung des Designs berücksichtigt werden. Verschiedene Technologien machen die Dinge anders und ein Design, das diese Unterschiede nicht berücksichtigt, wird Probleme haben.

Geschäftsanalysten sollten sich jedoch nicht darum kümmern, welche Technologie verwendet wird. Ihre Aufgabe ist es, Geschäftsregeln zu sammeln und sie für das technische Team verständlich zu machen. Systemanalytiker / Architekten / Designer oder andere Namen, die ihnen gegeben werden, sollten die verwendeten Technologien kennen und um sie herum entwerfen, da sie diejenigen sein sollten, die tatsächlich entwerfen, nicht Geschäftsanalysten.

Ryathal
quelle
6

Ich glaube, es gibt einen Punkt zwischen den beiden Gedankengängen, der wahrscheinlich realistischer ist. Während ein Design auf hoher Ebene am besten geeignet ist, wenn es technologieunabhängig gehalten wird, müssen bekannte reale Einschränkungen und Anforderungen berücksichtigt werden, die in das Design einbezogen werden sollten. Welches Niveau hat dieses Design? Haben Sie ausreichende Anforderungen? Wie flexibel ist die Umgebung? Wird das Management in eine bestimmte technische Richtung investiert?

Gibt es keine Betriebsparameter, die Sie in eine bestimmte Richtung treiben? Verfügen Sie über eine breite Palette von Ressourcen, mit denen eine Lösung in einem beliebigen Technologie-Stack implementiert werden kann? Gibt es Interoperabilitätsprobleme, die den Zugriff auf andere Systeme erfordern?

Antworten auf diese Fragen sind erforderlich, bevor Sie endgültig sagen können, ob die Technologie Teil der Gleichung sein soll oder ob das Design die Technologieauswahl bestimmen soll.

Da es keine Einschränkungen gibt und es sich um ein Design auf sehr hohem Niveau handelt, kann ich Ihrer Meinung zustimmen, dass das Design wirklich agnostisch ist. In meiner mehr als 20-jährigen Erfahrung war ich jedoch selten in einer Situation, in der es keine Einschränkungen gab, die meine Auswahl einschränkten - und die mein Design auf bestimmte Technologien oder Technologiefamilien ausrichteten.

Larry Hector
quelle
3

Die ideale Benutzeroberfläche wäre dort, wo der Benutzer einen Gedanken denkt und was er tun möchte, wird einfach getan. Alles andere wird durch die technologischen Einschränkungen, die uns zur Verfügung stehen, lahmgelegt. Daher muss die BA natürlich verstehen, in welchem ​​Kontext sie das System entwerfen kann.

gahooa
quelle
2

Unterschiedliche Technologien können sehr unterschiedliche Kosten- und Effizienzstrukturen zur Lösung eines bestimmten Problems aufweisen. Diese Kosten können Dinge wie Einstellungskosten in der Region, Energie- und Kühlkosten für bestimmte Systeme, vorhandenen Code und vorhandene Möglichkeiten zur Wiederverwendung von Geräten usw. usw. umfassen. Ja, vielleicht kann man diese Einschränkungen und Details bestimmter Technologien ignorieren wenn man an einem Projekt arbeitet, bei dem Kosten und Effizienz nicht annähernd so wichtig sind wie andere Überlegungen (z. B. Flugsicherheit, Kontrolle von Kernkraftwerken, medizinische Implantate usw.). In den meisten Geschäftssituationen kann sich das Management jedoch um die Kostenstruktur der potenziellen Lösungen im Vergleich zu den Vorteilen der Systemimplementierung kümmern.

hotpaw2
quelle
1

Die Geschäftsanalystin sollte wissen, welche Art von Anwendung wir entwickeln, z. B. * Webanwendung / Konsolenanwendung / Mobile Anwendung / Berichtsanwendung usw. *, damit sie besser eine Reihe nützlicher Funktionen für die Anwendung entwickeln oder den Benutzer zurückschieben kann auf unmögliche Erwartungen wie verschachteltes Drag & Drop der 3. Ebene (z. B.).

Er / Sie muss nicht wissen, welche Technologie wie Java / C # / Python / SQL usw.

java_mouse
quelle
1

Der Analyseprozess selbst muss vollständig technologieunabhängig sein. Wenn Sie den Kunden und seine Bedürfnisse untersuchen, müssen Sie dies völlig offen tun. Die andere Seite der Medaille ist jedoch, dass der Analyst häufig gebeten wird, Empfehlungen abzugeben, und möglicherweise auch die Systemarchitektur handhaben muss. Dies ist eine ganz andere Facette der Rolle, in der ein umfassenderes Verständnis der verfügbaren Technologien von entscheidender Bedeutung ist, da dies für den Kunden einen großen Unterschied bedeuten kann, nicht nur in Bezug auf die Fähigkeit, ein Projekt auf den Weg zu bringen, sondern auch in Bezug auf der langfristigen Bedürfnisse des Kunden und der Nachhaltigkeit des Projekts selbst.

Zwar ist der größte Teil des Software-Designs unabhängig von der verwendeten Technologie im Wesentlichen derselbe, aber es gibt immer Bereiche, in denen das Design von der Wahl der Technologie beeinflusst wird. Die Auswahl der Plattform kann die Auswahl der Sprache und der API beeinflussen, während die Verfügbarkeit von Fachwissen, Support und sogar Kosten sich auch auf die getroffenen Entscheidungen auswirken. Aus einer Perspektive ist ein Teil Ihrer Position insofern gerechtfertigt, als die eigentliche Analyse ohne den Einfluss einer bestimmten Technologie durchgeführt werden sollte. Die Verwendung der Analyse zur Bestimmung eines Designs erfordert jedoch immer ein breiteres technologisches Wissen, damit der Analyst Empfehlungen aussprechen kann Dies ermöglicht die Anwendung von Designs, die auf die Bedürfnisse des Kunden zugeschnitten sind.

S.Robins
quelle
0

Jede Technologie hat Grenzen und Einschränkungen, daher ist es für einen Analysten sinnvoll, diese Grenzen zu berücksichtigen. Auf der anderen Seite wird ein Analyst, der .net gut kennt, aber Java seit Ende der neunziger Jahre nicht mehr gesehen hat, höchstwahrscheinlich eine .net-Lösung entwerfen - unter Verwendung von .net-Terminologie und Entwurfsmustern - selbst wenn Java (oder RoR usw.) würde besser zum Problem passen. Es ist relativ schwierig, ein solches Design später in einer anderen Technologie zu implementieren.

Daher denke ich, dass ein Analyst agnostisch sein sollte, wenn die Technologie noch nicht ausgewählt wurde, aber Erfahrung in den Fällen hat, in denen die Auswahl bereits getroffen wurde.

user281377
quelle
Sind Designmuster nicht sprachunabhängig?
Marco-Fiset
2
Sie sind normalerweise nicht an eine bestimmte Sprache gebunden, aber einige Technologie-Stacks erleichtern möglicherweise die Implementierung als andere. Ein Design, das unter Berücksichtigung von ASP.net MVC erstellt wurde, ist möglicherweise umständlich in einfachem PHP oder Oracle Application Express zu implementieren.
user281377