ドメイン知識と技術知識はどれほど重要ですか?


33

私はトレーディングおよびリスク管理アプリケーションに取り組んでおり、C#のバックグラウンドから、SSISパッケージに取り組むように依頼されています。今、私はそれで生きることができます。問題は、ビジネスの理解を重視しすぎていることです。取引(正確にはエネルギー取引)は巨大な分野であり、それを少しでも理解することは圧倒的です。しかし、過去2か月間、私は市場用語、リスク指標、ポジション、PnL、ギリシャ人、金融商品、帳簿構造などのビジネス用語の理解に取り組んできました。今私見、これは学士号の仕事です。開発者がビジネスを理解することは非常に重要ですが、どこで線を引きますか?

私がこれについてマネージャーに話したとき、彼はほとんど誰もが1週間で技術を学ぶことができると言って私をock笑しました。難しいのはビジネスです。私の長期的な目標は、技術的な面に留まり、おそらく建築家になることです(可能であれば)。私がビジネスにもっと集中したいなら、MBAを求めていたでしょう!

ビジネスの重要性を理解するのに自分が間違っているのか、あまりにも素朴なのか、それともフラストレーションが正当化されるのかを知りたいですか?


12
テクノロジー/プログラミングはEXCELに限定されないことをマネージャーに伝えてください|| MSオフィス|| 誰でも1週間で学習できる同時接続。
レンジャー

私は答えのいくつかを信じることができません。人々が復answersで答えに投票することを望みます。
ガウラフ

@Gaurav、私はそうしないことを望みます。このフォーラム(または一般的なフォーラム)で、熱烈な感情が良いことになるとは思いません。私はあなたの具体的な異議を知りたいので、あなたが問題を抱えている答えについて気軽にコメントしてください。
ペテルトレック

@Ranger LOL!あなたはマネージャージョブが簡単になると言いますか?
Gopi

5
1週間で何をするかを彼に尋ねてください。それは非常に慢な態度です。私は彼にあなたができることはできない、彼の給料の2倍を賭けて賭けをするでしょう。newbが特定の言語のメモリ、オペランド、条件の構文を学習するのに1週間かかり、...おそらくそれらを習得するのに1か月以上かかるかもしれません。私たちがどこにいるかを知るのは長いプロセスでしたが、それは一般的に私たちの情熱であるため、私たちは一生を通して苦難を広げてきました。
シークレット

回答:


33

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


1
プログラマは、どのようなクライアントを認識していなかった場合は、コードにハードそれを話す
Gopi

+1 @Sri Kumar本当ですが、私はプログラミングであると思いますが、あなたはそれが何を必要とし、どのようにテクノロジーを使用してソリューションをもたらすかを理解できるはずです。ビジネスソリューションを作成するということは、あらゆる種類のビジネスに出くわすことを意味します。
ギデオン

3
私の答えは、言葉が異なる同じことだったでしょう。作成しているもののコンテキストを理解していない場合は、期待されるものではなく、理解しているコンテキストで作成します。大規模なチームに所属していて、UMLダイアグラムに基づいてXML仕様とオブジェクトを作成している場合を除き、それは非常に重要です。
シークレット

コンパイラーとvcsにもドメインがありますが、私たちはそれでより快適かもしれません。
ジョシュジョンソン

24

Benjolとあなたの上司は正しいですが、詳しく説明します。

事業ドメインを学ぶことは、あなたがどのようにプロセスに価値を付加し、ビジネスへのあなたの価値を高めます

これは、コードモンキープログラマと開発者の違いです


7
+1プログラマには役に立たない。開発者、つまり問題解決者が必要です。:)
jmort253

18

私の大学のコンピューターサイエンス部から来た言葉があります。

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

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

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

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

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

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

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


2
+1- 顧客や利害関係者は、単に「クール」なものではなく、問題を解決するものを作成することを期待します。
カルティクスリーニバサン

「地質学者向けのソフトウェアを構築したい場合は...」その声明が気に入っています。どの大学ですか?引用したいと思います!
ラジラオ

1
@RajRao残念ながら、私は言い換えましたが、誰から学んだか正確には覚えていません。それは、米国ワイオミング州ララミーのワイオミング大学のルーベン・ガンボア博士(uwyo.edu/cosc/cosc-directory/ruben/index.html)またはウィリアム・スピアーズ博士(uwyo.academia.edu/WilliamSpears)でした。
jmort253

14

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


2
+1-ドメインを理解しなくても成功したアーキテクトになることができると考えるのは非常に単純です。できれば、コミュニケーションに言及してもう一度+1します。あまりにも多くの人がキャリアの中でコミュニケーションの開発を怠っています。
jmort253

11

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

上司が言ったように(わずかに)誰でも1週間で技術を学ぶことができます。あなたをマークアウトし、あなたの会社にとって有用にする唯一のことは、あなたのビジネス知識です。そして、それが難しくなればなるほど、あなたはもっと価値があります。

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

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


1
これに同意する。真空でコーディングしたい場合は、学界に戻るか、IBM、MS、Googleなどの大企業の研究部門で仕事を得てください。私たちのほとんどにとって、特に目標が基本的に強力な開発者と強力なBAの組み合わせであるアーキテクトになることである場合、ビジネスを理解する必要があります。
カーティスバット

1
@Mayank、私見、ビジネス全体の詳細を理解することは確かに非常に困難であり、それはあなたが本当に時間をかけて自然に行うことのみを期待すべきものです。作業するシステムの各要素には、当然のことながら、ビジネスについての詳細を学ぶ必要があります。それは、私がドメインの深い知識を持つ業界で働いていたときに物事がどのように機能したかです。
Carson63000

2
@Mayank、いいえ、それは非常に難しいと言うのは間違っていません。現在の仕事に着いたとき、私の新しい同僚は、コードを読み進めるのに6か月かかると言っていました。今、私は4年に近づいて、まだビジネスについて新しいことを学んでいます
...-Benjol

1
可能であれば+1000。私見、技術は簡単/楽しい部分です。
-ozz

1
いいえ、彼は素朴ではありません。さらに、彼のマネージャーは悲鳴を上げるバカであり、定期的にパドルされるべきです。
ガウラフ

8

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

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

要件を正しく満たせないBAの一部と仕事をしています。仕事を成し遂げるには、自分の分析スキルとビジネス知識の理解に頼る必要があります。

Energy Tradingソフトウェアを販売するショップで働いている場合、あなたの経験は異なるかもしれませんが、企業のITエネルギー取引では、市場とソフトウェアがビジネスの問題に最初にソリューションを提供する方法を真っ先に理解することに焦点を当てています。

使用される実際の技術と実装は遠いです。

Excelのコメントを投稿した上記の人は、彼のコメントがどれほど適切かを知りません。トレーダーは多くの場合、Excel / VBAで独自の小さなトレーディングアプリを構築し(それだけで十分です)、IT部門はこれらの混乱したプログラムを継承することになります。

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


1
+1「複雑なビジネス」の場合:)私はこの前に銀行の分野で働いていましたが、もっと面白くて簡単でした。また、あなたが指摘したように、すべてはExcelで行われます!
-Mayank

6

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

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

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


2
待って、ビジネスアナリストは明確な要件を取得しますか?それは良いものです。個人的には、エンドユーザーに直接対処したいです。
クリストファーマハン

@Christopher-要件を取得するために「試す」と言った:-)
アンドリューシェパード

確かにあなたがやった。
クリストファーマハン

1
+1-ビジネスアナリストは、開発者が作業するのに十分明確な要件を取得しようとする顧客との長い会議に出席します。
カルティクスリーニバサン

6

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

更新

ガウラヴのコメント:

私が興味を持っているのは、開発者がビジネスドメインを理解するためにどの程度努力する必要があるかです。彼が最後まで行くのか、それとも線が引かれるのか。

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

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

Update2

[...]開発者が作業中のビジネスドメインを頻繁に変更した場合はどうなりますか?

それはもちろん、あなたのビジネス知識を得るための(あなたの時間とあなたの雇用者のお金の)投資の大部分が失われることを意味します:特定のドメインは。ドメインではないことに注意してください全く異なるドメイン間で再利用することができファンダメンタルズがあり、異なる。そして、最も重要なのは、ドメイン駆動設計のアプローチあなたはゲイン再利用可能です。


1
@Peter回答を更新していただきありがとうございます。さらに質問があります。この答えは、他の人と同様に、開発者が1つのビジネスドメインに固執すると想定していると仮定します。私は他の世界についてはわかりませんが、これはインドでは非常に一般的です。例えば 昨年、CAXドメインからマーケティングドメインに切り替えましたが、他のドメインにうまく切り替えることができます。
ガウラフ

2
@Gaurav、それはもちろん、あなたのビジネス知識を得るための(あなたの時間と雇用者のお金の)投資の大部分が失われることを意味します:-(あなたがそれが起こることを知っているなら、もちろんそれは掘る価値がないかもしれません。あまりにも深い特定のドメインに注意がドメインではないことは全く異なった、異なるドメイン間で再利用することができファンダメンタルズがありますそして、最も重要なのは、ドメイン駆動設計。アプローチは、あなたは、ゲイン再利用可能です。
ペーテルTörök

@Peterありがとう。私はあなたの答えに投票しますが、どうやらあなたはそれを一度だけ投票することができます(愚かなルール)。もう1つ、わずらわしくない場合は、回答にコメントを組み込むことができます。
ガウラフ

@Gaurav、完了、私は助けることができてうれしいです:-)
ペテル・

そして、下票の理由は...?
ペテルトレック

2

私は10年以上にわたって銀行業界で取引アプリケーションを開発してきましたが、開発者がビジネスをよく理解することが重要であることに同意しています。しかし、面接の過程で何度も何度も、その人がビジネスについての十分な知識を持っていない場合、彼らはドアを通り抜けることができません。

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

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