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?
quelle
Antworten:
Für mich geht es darum, Codebasen zu lesen und zu verstehen.
Ich sage das aus zwei Hauptgründen:
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 .
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.
quelle
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.
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.
quelle
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!
quelle
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)
quelle