Wie kann ich als Programmierer die Übernahme und das Verständnis von Geschäftsregeln beschleunigen?

11

Ich bin seit einer Weile Entwickler. Ich bin weit entfernt von den Besten da draußen. (Wenn ich alleine in diesem Raum sitze, frage ich mich, ob ich hier überhaupt der Beste bin.) Ich habe jedoch meine Werkzeuge verstanden und vertraue auf meine Fähigkeit zu argumentieren und zu lernen.

Wenn ich einen neuen Job anfange, glaube ich immer, dass ich die Codebasis lernen kann, wenn es eine Sprache ist, die ich kenne. Wenn es keine Sprache oder kein Framework ist, die ich kenne, glaube ich, dass ich die Konzepte genug verstehen kann, um sie zu lernen (und einfach die Dokumentation lesen). Dies ist ein Teil unserer Fähigkeiten als Programmierer und ich bin stolz darauf, dass ich diesem Standard gerecht werden kann.

Trotz alledem - eine meiner größten Schwächen ist das schnelle Erlernen und Verinnerlichen von Geschäftsregeln für den Kunden, für den ich arbeite - unabhängig davon, ob ich ein bezahlter Mitarbeiter oder ein Auftragnehmer bin. Ich bin mit Codebasen in Ordnung, aber Geschäftsregeln und -prozesse für ein bestimmtes Unternehmen scheinen immer eine Weile zu dauern, bis ich sie vollständig verstanden habe. (Dies kann beispielsweise ein Tripup beim Umschreiben von Unternehmensanwendungen sein.)

Was ist als Entwickler der beste Weg, um Geschäftsregeln und -prozesse schnell und effizient zu integrieren? Ist es möglich, ohne Fachexperte zu sein oder einfach jahrelange Erfahrung mit dem Kunden, Unternehmen oder Geschäft zu haben?

Mittagsfleisch317
quelle
3
Dies ist eine sehr gute Frage, die Sie mit anderen Programmierern diskutieren können, aber leider ist sie für diese Q & A-Site nicht zum Thema: Sie ist sowohl zu weit gefasst (es gibt viel zu sagen) als auch hauptsächlich meinungsbasiert (verschiedene Leute werden Ihnen unterschiedliche Aussagen machen) Dinge, im Wesentlichen was für sie funktioniert ... wie werden Sie die "richtige" Antwort wählen?).
Andres F.

Antworten:

4

Für mich geht es darum, Codebasen zu lesen und zu verstehen.

Ich sage das aus zwei Hauptgründen:

  1. Die Leute saugen. Oh, nicht absichtlich (normalerweise), aber im Geschäftsleben habe ich festgestellt, dass die Leute die Geschäftsregeln oft auf subtile Weise anders verstehen. Und jeder hat sein eigenes mentales Modell, das wiederum an Treue verliert, wenn er versucht, es Ihnen mitzuteilen. Aber der Code lügt nicht. Die Leute können denken , was sie wollen , wie die Dinge soll an die Arbeit, aber der Code richtig ist .

  2. Bauen Sie zuerst ein Fundament. Wenn also jeder sein eigenes mentales Modell für diese geschäftsspezifischen Begriffe und Prozesse hat, wie bauen Sie Ihre auf? Für mich, und ich erwarte für viele Programmierer, baue ich meine mentalen Modelle am besten aus Code. Code hat Muster. Code hat Abstraktionen. Ich habe viel Erfahrung damit, Code zu nehmen und daraus ein mentales Modell zu erstellen. Sobald ich habe zumindest eine vage Form von dem, was die Dinge existieren und wie sie sich, dann kann ich für Geschäftsleute sprechen. Dann kann ich die richtigen Fragen stellen und ihre Antworten besser in das Puzzle einfügen.

Telastyn
quelle
2
Ihr Ansatz klingt ein bisschen nach Hühnchen und Ei.
Robert Harvey
@ RobertHarvey Kannst du erklären, was du mit "Huhn und Ei" meinst?
Falgantil
3
@ BjarkeSøgaard: Sie schreiben Code, um die Geschäftsregeln zu verstehen, ohne zuerst die Geschäftsregeln zu verstehen, damit Sie den entsprechenden Code schreiben können. Siehe auch Huhn und Ei, wenn Sie fragen, was diese Redewendung bedeutet.
Robert Harvey
Um es klar zu sagen, ich konzentriere mich darauf , zuerst Code zu lesen .
Telastyn
1
@Telastyn Manchmal ist Code unvollständig oder falsch - oder nicht vorhanden. Ich musste Code für undokumentierte Geschäftsprozesse schreiben - entweder als neue Funktion oder als neues System. Darüber hinaus ist der Code in Bezug auf Geschäftsregeln häufig nicht umfassend - der Code für ein Inventarsystem kann Ihnen zeigen, wie der Prozess funktioniert, aber nicht unbedingt, warum der Prozess so definiert ist, wie er ist. Ich glaube, dass das Wissen, warum Dinge funktionieren und warum sie getan werden, immer zu besseren Lösungen führt.
Lunchmeat317
3

Sei nicht zu hart mit dir. Manchmal frage ich mich, warum sie sich überhaupt die Mühe machen, sie als "Geschäftsregeln" zu bezeichnen, aber ich denke, sie als "Art und Weise, wie wir normalerweise Dinge tun, es sei denn, es gibt andere Dinge, die zutreffen, dann machen wir sie anders", würde sie wahrscheinlich beleidigen. Das Geschäft läuft chaotisch. Sie jonglieren mit den Bedürfnissen von Kunden, Rechtsagenturen, Buchhaltung, Vorschriften, Lieferanten, Mitarbeitern, Managern und lokalen Behörden. Sie haben nicht immer einen Grund.

Ich denke, der beste Weg ist, sicherzustellen, dass Sie Zeit mit so vielen Geschäftsleuten wie möglich verbringen. Dies kann für einige Personen in technischen Positionen schwierig sein.

  1. Planen Sie Ihre Zeit ein und respektieren Sie ihre, aber holen Sie sich so viel wie möglich.
  2. Sie müssen Fragen stellen. Sie denken nicht wie Programmierer und zerlegen alles und haben ein umfassendes Verständnis dafür, wie Informationen miteinander in Beziehung stehen.
  3. Fälsche nicht so, wie du es verstehst. Wenn Sie so viel wüssten wie die anderen Geschäftsleute, würden sie Sie dazu bringen, beide Jobs zu erledigen. Siehe # 2.
  4. Erwarten Sie keine Dokumentation. Bieten Sie viel Lob an, wenn Sie jemals welche bekommen.
  5. Halten Sie sich bei der Kritik zurück. Die Prozesse und Verfahren können Redundanzen und andere potenzielle Effizienzsteigerungen aufweisen, aber es kann einen Grund dafür geben. Erfahren Sie warum, aber seien Sie nicht schockiert, wenn sie sagen: "Wir haben es immer so gemacht."
  6. Seien Sie höflich, freundlich und teilen Sie Ihre Snacks. Du hast es mit Leuten zu tun. Sag Hallo. Fragen Sie, wie es ihnen geht. Fragen Sie, warum sie in die Branche eingestiegen sind und wie lange sie schon im Unternehmen sind.

Du bist keine Leere namens Programmierer, du bist eine Person. Lassen Sie sie wissen, dass Sie da sind, um ihre Arbeit zu erleichtern. Leider kannst du der Held oder die Ziege sein. Es liegt in der Natur unseres Geschäfts.

JeffO
quelle
Ich muss wirklich an # 5 arbeiten ..... Ich werde versuchen, mich daran zu erinnern.
Lunchmeat317
# 5 ist absolut riesig. Ich arbeite in der Apotheke. Eine Frage kann mit "Ich wusste nicht, dass der Computer das kann" oder "Wenn wir dies nicht genau befolgen, könnten Menschen sterben " zurückkommen . Sagen Sie in diesem Sinne niemals "Warum nicht einfach ", weil "nur" oft Ihre Unkenntnis der Komplexität einer bestimmten Interaktion zeigt.
Alan Shutko
3

Ich würde empfehlen, ein Buch mit dem Titel Die 5 Elemente effektiven Denkens von Edward Burger und Michael P. Starbird zu lesen. Es hängt mit dem Verständnis neuer Konzepte im Allgemeinen zusammen, aber ich denke, es gilt für diese Situation.

Hier sind einige interessante Punkte aus dem Buch:

Beherrsche die Grundlagen

Wenn Sie die Grundlagen nicht kennen, bauen Sie Ihr Verständnis auf einem wackeligen Fundament auf. Sie müssen also diese dumm klingenden Fragen stellen, die sonst niemand stellt.

Lassen Sie sich von Fehlern leiten

Manchmal ist es hilfreich, Fragen zu stellen, die eindeutig falsch sind, damit Sie Ihr Unverständnis aufdecken können. (Beispiel: Sie meinen, Administratoren haben Zugriff auf jedes Dokument? Oh. Warum?)

Lehren oder erklären Sie es anderen

Wenn Sie versuchen, es jemand anderem beizubringen, werden Sie feststellen, wo Sie Probleme beim Verstehen haben.

Ich hoffe, das hilft!

Venkat D.
quelle
0

Als Entwickler habe ich festgestellt, dass ich das Geschäft direkt in Code, Datenstrukturen, mögliche Klassen usw. übersetze. Ich gehe von etwas Abstraktem und oft Undefiniertem zu etwas Bestimmtem, etwas mit "Form". Ich beginne sofort mit dem Codieren und führe mich aufgrund fehlender Informationen zu häufigen Refaktoren. Jeder Refactor lässt mich denken, dass es zu viele Lücken in meinem Verständnis des Geschäfts gibt .

Wie habe ich angefangen, das zu lösen?

Ich zwinge mich, alle Dokumente zu lesen, die während der Funktionsanalyse und früherer Phasen erstellt wurden. Ich versuche es so zu machen, wie ich der Kunde oder der Endbenutzer war . Ich muss verstehen, wonach der Kunde mit solchen Anwendungen und Anforderungen sucht. Aber ich muss mich von dem Entwickler fernhalten, den ich bin.

Unser Job bietet uns eine große Fähigkeit, die Kunden nicht haben. Wir denken in bedingten Strukturen so, wie es andere nicht tun. Also fange ich an, mich den Anforderungen zu stellen. Auf der Suche nach Widersprüchen oder Inkohärenzen . Ein bisschen Brainstorming um das, was ich verstanden habe. Hypothetische Szenarien formulieren.

Es führte mich zu Fragen und Zweifeln. Ich schreibe jeden von ihnen ab und mache schließlich ein Treffen mit dem, der meine Zweifel lösen kann.

Zusammenfassend ändere ich meinen Standpunkt. Ich versuche, das Problem aus einer anderen Perspektive zu betrachten. Aber ich habe einige Entwicklerfähigkeiten in den Prozess eingebracht. Was in einer Reihe von Fragen und Zweifeln endet, die gelöst werden müssen. Einmal gelöst, ist mein Verständnis des Geschäfts tiefer.

Studie> Zweifel> Fragen> Antworten> Verstehen (den Zyklus immer wieder wiederholen)

Laiv
quelle