web-dev-qa-db-ja.com

ドメインの知識と技術の知識はどの程度重要ですか?

私はトレーディングおよびリスク管理アプリケーションに取り組んでいますが、C#のバックグラウンドから、SSISパッケージでの作業を依頼されました。今、私はそれとともに生きることができます。問題点は、ビジネスの理解に重点が置かれていることです。トレーディング(正確にはエネルギートレーディング)は[〜#〜] huge [〜#〜]の領域であり、そのすべてを理解することは非常に困難です。しかし、過去2か月間、私はビジネス用語の理解に取り組んできました。MarkTo Market、リスクメトリック、ポジション、PnL、Greeks、Instruments、Book Structureなどです。今私見、これはBAの仕事です。もちろん、開発者がビジネスを理解することは非常に重要ですが、どこに線を引くのですか?

私がこのことについて上司に話しかけたとき、彼は誰もが1週間でテクノロジーを学ぶことができると言って、私をあざけりました。難しいのはビジネスです。私の長期的な目標は、技術面にとどまること、おそらくアーキテクトになることです(可能な場合)。ビジネスに集中したいのなら、MBAを追求したことでしょう。

ビジネスの重要性を理解する上で私が間違っているか、あまりにも世間知らずであるかどうか、または私の不満が正当化されるかどうかを知りたいですか?

33
Mayank

プログラマーの仕事は、自然言語の要件を機械語の実装に変換することです。どちらか一方だけが流暢な場合、効果的にそれを行うことはできません。コンパイラやバージョン管理ソフトウェアを作成している場合を除き、ほとんどすべてのプログラミングジョブには、プログラミング以外の知識がかなり必要になります。

33
Karl Bielefeldt

ベンジョルとあなたのマネージャーは正しいですが、詳しく説明しましょう:

ビジネスドメインを学ぶことは、あなたがプロセスに価値を追加するおよびビジネスにあなたの価値を高めるの方法です

これは コードモンキー プログラマーと開発者

24
Steven A. Lowe

私の大学のコンピューターサイエンス学部からのことわざがあります。

地質学者向けのソフトウェアを構築する場合は、まず地質学を理解する必要があります。物理学者のためのソフトウェアを構築したい場合は、まず物理学に手を出さなければなりません。ビジネスを理解したい場合は、まずビジネスについて話すことを学ぶ必要があります。

ここにいる人たちはいつも、ソフトウェア開発は創造的な分野だと言っています。これはある程度正しいと思います。一連の問題を解決するために、ボックスの外側を見ることができなければならないという点で、創造性が伴います。

それが意味することは、あなたがただ座って、ああそう望むものは何でも創造的に構築できるということです。これはアートクラスではありません。エンジニアリングです。顧客や利害関係者は、問題を解決するだけでなく、単に「クール」なものを作成することを期待しています。

問題を解決するには、まず問題を理解する必要があります。ユーザーの頭の中に入り込み、ユーザーの考え方を理解する必要があります。

金融、マーケティング、販売、地質学、物理学、またはソフトウェアがサポートするあらゆる分野のソフトウェアを構築する場合でも、その分野の一部になる必要があります。

コンピュータサイエンスの学位に加えて、ビジネスの学位も取得したのはこのためです。潜在的なソリューションを伝え、成功する製品を提供する私の能力に大きな影響を与えました。

ビジネスソフトウェアエンジニアを雇うときに私が何を探すかについてもっと知りたい場合は、これをチェックしてください ビジネスエンジニアの求人広告のサンプル 別の質問への回答として書いたもの。

18
jmort253

ドメインの知識や顧客との接触がなくても、低レベルのコーダーとして生き残ることができますが、ソフトウェアアーキテクトは、ドメインに精通していて、すべての利害関係者と積極的にコミュニケーションをとる人です。

14
vegai

私の意見では、あなたは間違っており、素朴すぎる。

あなたのマネージャーが言ったように(少しばかげて)、誰もが1週間でテクノロジーを学ぶことができます。あなたをマークし、あなたの会社にとってあなたを有用にする唯一のことはあなたのビジネス知識です。そして、それが難しいほど、あなたはより多くの価値があります。

明らかに、この特定のビジネスが非常に退屈であることがわかった場合、別の何かを探すことができます。しかし、パラダイスのアイデアが小さなphp Webサイトをハッキングしている場合は、注意してください。それをしているスクリプトキディが何千人もいます。

真剣に、「私はただのコーダーであり、事実と混同しないでください」とそれをカットしないでしょう。

11
Benjol

私もエネルギー取引で働いています。ビジネス知識は仕事の90%です。あなたはそれを回避することはできません-それは複雑なビジネスです。

トレーディングの基本と、あなたが働いている市場を少なくとも理解していないと、あなたがどんなに優れたコーダーであっても、苦労するでしょう。

私は要件を正しく取得できないBAと協力しています。仕事を成し遂げるには、自分の分析スキルとビジネス知識の理解に頼る必要があります。

エネルギートレーディングソフトウェアを販売するショップで働いている場合、あなたの経験は異なるかもしれませんが、企業のITエネルギートレーディングでは、市場を理解し、ソフトウェアがビジネスの問題の解決策を最初に提供する方法に主に焦点を当てています。

使用される実際のテクノロジーと実装は、2番目に離れています。

Excelのコメントを書いた上記の人は、彼のコメントがどれほど適切かを知りません。トレーダーは、Excel/VBAで独自の小さな取引アプリを構築することがよくあり(それが彼らが知っているすべてです)、ITはこれらの混乱したプログラムを継承することになります。

これらのアプリの一部を「適切な」言語で再構築したいのですが、それが常に優先されるとは限りません。

8
asgeo1

あなたがビジネスのために開発しているなら、あなたは会社の他の誰よりもビジネスルールのより明確でより詳細なアイデアを持つことになります。これは必ずしもあなたがみんなより賢いからというわけではありません。それはあなたが仕事をすることができる唯一の方法だからです。

あなたの反応は「しかし、ビジネスアナリストは何をするのでしょうか?」

ビジネスアナリストは、開発者が作業するのに十分明確な要件を顧客から取得しようとする顧客との長い会議に座っています。私は彼らが顧客に対処する必要がある方法を見て、私がそうする必要がないことに感謝しています。

6
Andrew Shepherd

ソフトウェア開発とアーキテクチャーの類似点を描くのが好きです。どちらも応用芸術です。どちらも心の中で精巧なモデリングが必要です。この質問に当てはまる側面は、ビジネスの知識なしにソフトウェアを書くことは、住民のライフスタイルやニーズを理解せずに建物を設計するようなものです。私たちの多くは、美しくモダンに見える建物を見て(または住んで/働いていても)、外から見ただけでは使用可能内からは見たことがないと思います。 (最悪の場合、それらはニースでさえありません:(()

更新

Gauravのコメント:

私が気になるのは、開発者がビジネスドメインを理解するためにどの程度努力する必要があるかです。彼がずっと行くべきか、または描かれるべきいくつかの線があります。

一般的にどこに線を引くことはできないと思います。アプリ/ドメインの一部がない限り、触る(理解する)必要はありません。長期的に見れば、これは私生活では非常にまれです。アクティブに使用されているアプリの一部は、バグレポートと機能リクエストを受け取ります。対応する法律、税法、政策、習慣、つまり現実の世界が変化すると、ドメインも変化します。これはソフトウェアでも従う必要があります。

ただし、外部からの変更要求がない場合でも、レガシーコードの単体テストとリファクタリングには、関連するドメイン領域についても理解する必要があります。それ以外の場合は、実際に正しいかどうかを知らなくても、アプリの現在の動作を「フリーズ」するだけです。

Update2

開発者が自分が取り組んでいるビジネスドメインを頻繁に変更するとどうなりますか?

もちろん、それはあなたのビジネス知識を得るための(あなたの時間とあなたの雇用者のお金の)投資の大部分が失われることを意味します:-(あなたがそれが起こることを知っているなら、もちろん深く掘り下げる価値はないかもしれません特定のドメインです。ただし、ドメインは---(完全に異なるわけではありません。異なるドメイン間で再利用できる基本事項があります。最も重要なのは、ドメイン主導の設計アプローチが得られることです。再利用可能。

6
Péter Török

私はトレーディングアプリケーションの開発に10年以上携わってきましたが、開発者がビジネスをよく理解することが重要であることに同意します。しかし、何度も何度も、面接プロセス中に、その人がビジネスについて十分な知識を持っていなければ、彼らはドアを通り抜けることができません。

これにより、ビジネスの知識は豊富であるが技術レベルは中程度から中程度であるこれらの人々によって、かなりの数の重要なアプリケーションとシステムが開発されています。これらのシステムは、常にクラッシュし、バグに満ち、スケーリングせず、何かを壊すことなく修正することはほとんど不可能であり、実際にそれを得るのに十分な技術的スキルが原因でプロジェクトがキャンセルされない場合、常にひどく設計されます生産に。

2
Martin Cooper