Ich arbeite an einer Handels- und Risikomanagementanwendung und obwohl ich einen C # -Hintergrund habe, wurde ich gebeten, an SSIS-Paketen zu arbeiten. Jetzt kann ich damit leben. Der Schmerzpunkt ist, dass das Geschäftsverständnis zu stark betont wird. Der Handel (Energiehandel, um genau zu sein) ist ein RIESIGES Gebiet, und es ist überwältigend, jedes bisschen davon zu verstehen. Aber in den letzten zwei Monaten habe ich daran gearbeitet, die Geschäftsbegriffe zu verstehen - Mark To Market, Risikokennzahlen, Positionen, PnL, Griechen, Instrumente, Buchstruktur ... bis ins kleinste Detail (auf den Punkt kommt es an). Nun IMHO, das ist der Job eines BA. Natürlich ist es für Entwickler sehr wichtig, das Geschäft zu verstehen, aber wo ziehen Sie die Grenze?
Als ich mit meinem Manager darüber sprach, verspottete er mich fast damit, dass jeder in einer Woche eine Technologie erlernen könne. Es ist das Geschäft, das schwieriger ist. Mein langfristiges Ziel ist es, auf der technischen Seite zu bleiben, wahrscheinlich Architekt zu werden (wenn möglich). Wenn ich mich so sehr auf das Geschäft konzentrieren wollte, hätte ich einen MBA gemacht!
Ich möchte wissen, ob ich die geschäftliche Bedeutung falsch oder zu naiv einschätze oder ob meine Frustration berechtigt ist.
quelle
Antworten:
Die Aufgabe eines Programmierers besteht darin, die Anforderungen der natürlichen Sprache in maschinensprachliche Implementierungen zu übersetzen. Sie können das nicht effektiv tun, wenn Sie nur auf der einen oder anderen Seite fließend sind. Sofern Sie keine Compiler oder Versionskontrollsoftware schreiben, erfordert so gut wie jeder Programmierjob ein beträchtliches Maß an Nicht-Programmierkenntnissen.
quelle
Benjol und Ihr Manager haben Recht, aber lassen Sie mich näher darauf eingehen:
Durch das Erlernen des Geschäftsbereichs können Sie dem Prozess einen Mehrwert hinzufügen und Ihren Wert für das Unternehmen steigern
Dies ist der Unterschied zwischen einem
Code-Affen-Programmierer und einem Entwicklerquelle
Es gibt ein Sprichwort, das von der Fakultät für Informatik meiner Universität stammt:
Ich höre hier ständig Leute sagen, dass Softwareentwicklung ein kreatives Feld ist. Ich glaube, das ist bis zu einem gewissen Grad richtig. Kreativität setzt voraus, dass man in der Lage sein muss, über den Tellerrand hinauszublicken, um eine Reihe von Problemen zu lösen.
Das heißt aber nicht, dass Sie sich einfach hinsetzen und so kreativ bauen können, was immer Sie wollen. Dies ist kein Kunstunterricht, sondern Technik, und Ihre Kunden und Interessengruppen erwarten von Ihnen, dass Sie etwas schaffen, das ihre Probleme löst Probleme , und nicht etwas, das nur "cool" ist.
Um ein Problem zu lösen, müssen Sie zuerst das Problem verstehen. Sie müssen sich in die Köpfe Ihrer Benutzer hineinversetzen und verstehen, wie diese denken.
Egal, ob Sie Software für Finanzen, Marketing, Vertrieb, Geologie, Physik oder einen anderen Bereich entwickeln, der von der Software unterstützt wird, Sie müssen Teil dieses Bereichs werden.
Genau aus diesem Grund habe ich neben meinem Abschluss in Informatik auch einen Abschluss in Betriebswirtschaft erworben. Es hat meine Fähigkeit, potenzielle Lösungen zu kommunizieren und erfolgreiche Produkte zu liefern, enorm beeinflusst.
Wenn Sie mehr darüber erfahren möchten, wonach ich bei der Einstellung eines Business Software Engineers suchen würde, lesen Sie dieses Beispiel für eine Stellenanzeige als Business Engineer , das ich als Antwort auf eine andere Frage geschrieben habe.
quelle
Sie überleben vielleicht ohne viel Domain-Wissen oder Kundenkontakt als Low-Level-Coder, aber ein Software-Architekt ist jemand, der mit der Domain sehr vertraut ist und aktiv mit allen Stakeholdern kommuniziert.
quelle
Meiner Meinung nach bist du falsch und zu naiv.
Wie Ihr Vorgesetzter (leicht leichtfertig) sagte, kann jeder in einer Woche eine Technologie erlernen. Das Einzige, was Sie auszeichnet und für Ihr Unternehmen nützlich macht, ist Ihr betriebswirtschaftliches Wissen. Und je schwieriger es ist, desto mehr wirst du wert sein.
Wenn Sie feststellen, dass dieses Geschäft irrsinnig langweilig ist, können Sie natürlich nach etwas anderem suchen. Aber wenn Ihre Vorstellung vom Paradies darin besteht, kleine PHP-Websites zusammen zu hacken, seien Sie vorsichtig: Es wird Tausende von Script-Kiddies geben, die das auch tun.
Im Ernst: "Ich bin nur ein Programmierer, verwechsle mich nicht mit den Fakten."
quelle
Ich arbeite auch im Energiehandel. Geschäftskenntnisse machen 90% des Jobs aus. Daran kommt man nicht vorbei - es ist eine komplizierte Angelegenheit.
Wenn Sie die Grundlagen des Handels und die Märkte, in denen Sie tätig sind, nicht verstehen, werden Sie Probleme haben, egal wie gut Sie als Programmierer sind.
Ich arbeite mit einigen BAs zusammen, die die Anforderungen einfach nicht erfüllen können. Ich muss mich auf meine eigenen analytischen Fähigkeiten und mein Verständnis von Geschäftskenntnissen verlassen, um meine Arbeit zu erledigen.
Ich denke, wenn Sie für ein Geschäft arbeiten, in dem Energiehandelssoftware verkauft wird, sind Ihre Erfahrungen möglicherweise unterschiedlich. Im IT-Energiehandel von Unternehmen liegt der Schwerpunkt jedoch auf dem Verständnis des Marktes und der Frage, wie Software zuerst Lösungen für die Probleme des Unternehmens bieten kann.
Die tatsächlich verwendeten Technologien und deren Implementierung liegen in weiter Ferne.
Der Typ oben, der den Excel-Kommentar abgegeben hat, weiß nicht, wie passend sein Kommentar ist. Händler erstellen häufig ihre eigenen kleinen Handelsanwendungen in Excel / VBA (das ist alles, was sie wissen), und dann erbt die IT diese Unordnung von Programmen.
Ich würde gerne einige dieser Apps in einer "richtigen" Sprache neu erstellen, aber das hat nicht immer Priorität.
quelle
Wenn Sie sich für ein Unternehmen entwickeln, werden Sie eine klarere und detailliertere Vorstellung von den Geschäftsregeln haben als jeder andere im Unternehmen. Das liegt nicht unbedingt daran, dass Sie schlauer sind als alle anderen, sondern daran, dass Sie nur so Ihre Arbeit erledigen können.
Ihre Reaktion könnte lauten: "Aber was machen die Geschäftsanalysten?"
Die Geschäftsanalysten treffen sich in langen Besprechungen mit den Kunden, um Anforderungen zu ermitteln, mit denen ein Entwickler klar genug umgehen kann. Ich schaue, wie sie mit Kunden umgehen müssen, und bin dankbar, dass ich das nicht tun muss.
quelle
Ich mag es, Analogien zwischen Softwareentwicklung und Architektur zu ziehen. Beide sind angewandte Kunst. Beide erfordern eine ausgefeilte Modellierung im Kopf. Der Aspekt, der auf diese Frage zutrifft, ist, dass das Schreiben von Software ohne Geschäftskenntnisse dem Entwerfen eines Gebäudes gleicht, ohne den Lebensstil und die Bedürfnisse der Bewohner zu verstehen. Ich denke, viele von uns haben Gebäude gesehen (oder sogar in ihnen gelebt / gearbeitet), die wunderschön und modern aussehen und von außen nicht, aber von innen nicht nutzbar sind. (Im schlimmsten Fall sind sie nicht einmal nett: - ((()
Aktualisieren
Gauravs Kommentar:
Ich glaube nicht, dass man im Allgemeinen irgendwo eine Linie ziehen kann. Sofern es keine Teile der App / Domain gibt, müssen Sie diese niemals berühren (also verstehen). Was meiner Meinung nach im wirklichen Leben auf lange Sicht sehr selten ist. Jeder Teil einer App, der aktiv verwendet wird, erhält Fehlerberichte und Funktionsanfragen. Auch Domänen ändern sich, da sich entsprechende Gesetze, Steuervorschriften, Richtlinien, Gewohnheiten - kurz gesagt, die reale Welt - ändern. Dies muss auch in der Software beachtet werden.
Aber auch ohne externe Änderungsanforderungen müssen für Unit-Tests und das Refactoring von Legacy-Code auch die relevanten Domänenbereiche bekannt sein. Ansonsten "friert" man einfach das aktuelle Verhalten der App ein, ohne zu wissen, ob es tatsächlich stimmt oder nicht.
Update2
Das bedeutet natürlich, dass ein großer Teil der Investition (Ihrer Zeit und des Geldes Ihres Arbeitgebers), um Ihr Geschäftswissen zu erlangen, verloren geht :-( Wenn Sie wissen, dass es passieren wird, ist es natürlich möglicherweise nicht wert, zu tief hineingegraben zu werden jedoch eine bestimmte Domäne. Beachten Sie, dass Domains sind nicht völlig anders, es sind Grundlagen , die zwischen verschiedenen Domänen wiederverwendet werden können. Und was am wichtigsten ist , die Domain - Driven Design - Ansatz Sie Verstärkung ist wiederverwendbar.
quelle
Ich arbeite seit über zehn Jahren im Bankensektor und bin mir einig, dass es für Entwickler wichtig ist, das Geschäft gut zu verstehen. Aber immer und immer wieder, wenn die Person während des Interviewprozesses keine guten Kenntnisse über das Geschäft hat, kommt sie nicht durch die Tür.
Dies hat dazu geführt, dass eine beträchtliche Anzahl kritischer Anwendungen und Systeme von diesen Personen mit starken Geschäftskenntnissen, aber schwachen bis mittleren technischen Kenntnissen entwickelt wurden. Diese Systeme werden immer schlecht entworfen, was ständig abstürzt, voller Fehler ist, sich nicht skalieren lässt, fast unmöglich zu reparieren ist, ohne dass etwas kaputt geht, und wenn das Projekt nicht abgebrochen wird, weil die technischen Fähigkeiten nicht ausreichen, um es tatsächlich zu bekommen in die Produktion.
quelle