プログラマーとして、ビジネスルールの採用と理解をどのようにスピードアップできますか?


11

私はしばらくの間開発者でした。私はそこから最高とはほど遠い。(私はこの部屋に一人で座っているので、私はここで最高かどうか疑問に思います。)しかし、私は自分の道具を理解するようになり、理性と学びの能力に信頼するようになりました。

新しい仕事を始めるとき、私が知っている言語であればコードベースを学ぶことができるといつも信じています。私が知っている言語やフレームワークではない場合、それを学ぶのに十分な概念を把握できると信じています(そして、ドキュメントを読むだけです)。これはプログラマーとしてのスキルセットの一部であり、この標準に対応できることを誇りに思っています。

しかし、これらすべてのために-私の大きな弱点の1つは、私が仕事をしているクライアントのビジネスルールを短期間で学習し、内部化することです。コードベースには問題ありませんが、特定のビジネスのビジネスルールとプロセスは、完全に理解するのに常に時間がかかるようです。(例として、これはエンタープライズアプリケーションを書き換えるときのトリップアップになります。)

開発者として、ビジネスルールとプロセスを迅速かつ効率的に取り入れる最良の方法は何ですか?主題の専門家でなくても、単にクライアント、会社、またはビジネスで長年の経験を持つことは可能ですか?


3
これは他のプログラマーと議論するのに非常に良い質問ですが、残念なことにこのQ&Aサイトではトピックから外れています。物事、本質的に彼らのために働くもの...あなたはどのように「正しい」答えを選ぶつもりですか?)。
アンドレスF.

回答:


4

私にとっては、コードベースを読んで理解することです。

私は2つの主な理由でそれを言います:

  1. 人々は吸う。ああ、故意ではありませんが(通常)、ビジネスでは、ビジネスルールに対する理解が微妙に異なることが多いことがわかりました。そして、誰もが自分にメンタルモデルを持っているので、あなたに伝えようとすると忠実度が失われます。しかし、コードは嘘をつきません。人々は物事がされているかについて欲しいものを考えることができるはずの作業に、しかし、コードが正しいです。

  2. 最初に基盤を構築します。これらのビジネス固有の用語およびプロセスが何であるかについて、全員が独自のメンタルモデルを持っている場合、どのように構築しますか?私にとって、そして多くのプログラマーに期待するのは、コードから最高のメンタルモデルを構築することです。コードにはパターンがあります。コードには抽象化があります。私はコードを取得し、そこからメンタルモデルを構築する多くの経験を持っています。私は物事が存在するものの少なくとも漠然とした形状を有し、それらがどのように関連するか、いったんそれから、私はビジネスの人々と話をすることができます。それから私は正しい質問をすることができ、彼らの答えをパズルにうまく適合させることができます。


2
あなたのアプローチは少し鶏と卵に聞こえます。
ロバートハーベイ

@RobertHarvey「鶏と卵」の意味を説明できますか?
ファルガンティル

3
@BjarkeSøgaard:ビジネスルールを最初に理解することなく、ビジネスルールを理解するためのコードを記述して、適切なコードを記述できるようにします。あなたがそのイディオムが何を意味するかを尋ねているなら、鶏と卵も参照してください。
ロバートハーヴェイ

明確にするために、私は最初にコードを読むことに焦点を合わせています。
Telastyn

1
@Telastyn時々、コードが不完全または正しくない-または存在しない。文書化されていないビジネスプロセスのコードを、新しい機能として、または新しいシステムとして記述する必要がありました。それがビジネスルールになるとさらに、多くの場合、コードはすべて網羅されていない-コードを在庫システムのためにお見せすることができますどのようにプロセスの作品を、必ずしも必要ではないが、なぜプロセスは、それがあるように定義されます。私は、物事がなぜ機能し、なぜそれが行われるのかを知ることは、常により良い解決策につながると信じています。
lunchmeat317

3

自分に無理をしないでください。なぜ彼らがビジネスを「ルール」と呼ぶのを迷わせるのか疑問に思うこともありますが、「他に適用するものがない限り、通常私たちが行うことは別の方法で行う」と彼らをcalling辱するでしょう。ビジネスは面倒です。彼らは、顧客、法的機関、経理、規制、ベンダー、従業員、マネージャー、地方自治体のニーズに対応しています。常に理由があるわけではありません。

最善の方法は、できるだけ多くのビジネスマンと時間を過ごすことだと思います。これは、技術職の一部の人々にとっては困難な場合があります。

  1. あなたの時間を予算化し、彼らの時間を尊重しますが、できるだけ多くを取得します。
  2. 質問をする必要があります。彼らはプログラマのように考えず、すべてを分解し、情報が互いにどのように関連するかを完全に理解しています。
  3. あなたが理解するように偽造しないでください。他のビジネスマンと同じくらい知っていたら、彼らはあなたに両方の仕事をさせます。#2を参照してください。
  4. ドキュメントを期待しないでください。あなたが何かを得た場合、多くの賞賛を提供します。
  5. 批判を控える。プロセスおよび手順には、冗長性およびその他の潜在的なインの効率がある場合がありますが、その理由がある可能性があります。理由を学びますが、「私たちは常にそのようにしてきました」と言ってもショックを受けないでください。
  6. 礼儀正しく、親切にして、スナックを共有してください。あなたは人を扱っています。こんにちはと言う。彼らがどうしているのか尋ねてください。彼らがなぜこの業界に参入したのか、どのくらい会社に勤めているのかを尋ねてください。

あなたはプログラマと呼ばれる空虚ではない、あなたは人です。彼らがあなたの仕事を簡単にするためにそこにいることを知らせてください。残念ながら、あなたはヒーローまたはヤギになることができます。それが私たちのビジネスの性質です。


私は本当に#5に取り組まなければなりません。
lunchmeat317

#5は絶対に巨大です。私は薬局で働いています。「コンピューターがそれを実行できるとは知らなかった」または「これに従わない限り、人々が死ぬ可能性がある」という質問に戻ることができます。その静脈では、決して、これまで「なぜあなたがいないと言うだけで」ため「だけ」多くの場合、与えられた相互作用の複雑さのあなたの無知を表示します。
アランシュトコ

3

エドワード・バーガーとマイケル・P・スターバードによる「効果的な思考の5つの要素」という本を読むことをお勧めします。それは一般に新しい概念を理解することに関連していますが、この状況に当てはまると思います。

本からいくつかの興味深い点があります:

基本をマスターする

基本がわからない場合は、不安定な基盤について理解を深めることになります。だから、他の誰も尋ねないような愚かな質問をする必要があります。

エラーをガイドにしましょう

理解の欠如を明らかにするために、明らかに間違っている質問をすることが役立つ場合があります。(例:管理者がすべてのドキュメントにアクセスできるということですか?ああ。なぜですか?)

他の人に教えたり説明したりする

他の人に教えようとすると、理解が困難な場所を明らかにし始めます。

お役に立てば幸いです!


0

開発者として、私はビジネスをコード、データ構造、可能なクラスなどに直接変換することに気付きました。私はすぐにコーディングを開始し、情報が不足しているため、頻繁にリファクタリングを行います。すべてのリファクタリングは、私のビジネスに対する私の理解にあまりに多くのギャップがあると思わせます

どうやってこれを解決し始めましたか?

機能分析とそれ以前の段階で作成されたすべてのドキュメントを自分で読むように強制します。私は顧客またはエンドユーザーであったので、私はそれをしようとします。そのようなアプリケーションと要件で顧客が何を探しているかを理解する必要があります。しかし、私は自分の開発者から離れる必要があります。

私たちの仕事は、顧客にはない優れたスキルを提供します。条件付き構造では、他の人がしない方法で考えます。だから私は要件に直面し始めます。矛盾や矛盾を探します。私が理解したことをめぐるちょっとしたブレインストーミング。仮想シナリオの策定。

それは私に質問と疑念をもたらします。私は彼ら全員をタイプダウンし、最後に私の疑問を解決できる人とのミーティングを設定しました。

要約すると、視点が変わります。私は別の観点から問題を見ようとします。しかし、私は開発者のスキルをプロセスに取り入れました。解決すべき疑問と疑問の良い束に終わるもの。解決したら、ビジネスに対する私の理解は深まります。

調査>疑念>質問>回答>理解(繰り返しサイクルを繰り返す)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.