도메인 지식과 기술 지식은 얼마나 중요합니까?


33

거래 및 위험 관리 응용 프로그램에서 작업하고 있으며 C # 배경에서 SSIS 패키지 작업을 요청 받았습니다. 이제 나는 그걸로 살 수 있습니다. 문제는 비즈니스 이해에 너무 많은 강조점이 있다는 것입니다. 거래 (정확한 에너지 거래)는 거대한 영역이며 모든 부분을 이해하는 것은 압도적입니다. 그러나 지난 두 달 동안 나는 Mark To Market, Risk Metrics, Positions, PnL, Greeks, Instruments, Book Structure 등 비즈니스 용어를 이해하기 위해 노력해 왔습니다. 이제 IMHO, 이것은 BA의 일입니다. 개발자가 비즈니스를 이해하는 것이 매우 중요하지만 어디에서 선을 그을 수 있습니까?

내가이 문제에 대해 관리자에게 이야기했을 때, 그는 일주일 안에 누구나 기술을 배울 수 있다고 말하면서 나를 조롱했습니다. 어려운 사업입니다. 저의 장기적인 열망은 기술적 인면에 머무르는 것입니다. 가능하면 건축가가 되십시오. 내가 사업에 너무 집중하고 싶다면 MBA를 추구했을 것입니다!

비즈니스 중요성을 이해하는 데 잘못되었거나 너무 순진한 지 알고 싶은지 또는 좌절감이 정당한가?


12
관리자에게 기술 / 프로그래밍이 EXCEL에만 국한되지 않는다고 알려주십시오 || MS 오피스 || 일주일에 누구나 배울 수있는 동시 연결.
레인저

나는 대답의 일부를 믿을 수 없으며 사람들이 대답을 복수로 내려 투표하기를 바랍니다.
Gaurav

@ 가우 라프, 난 아니길 바래. 나는 열렬한 감정이이 포럼 (또는 일반적으로 모든 포럼)에서 아무 효과가 없을 것이라고 생각하지 않습니다. 구체적인 이의 제기를 알고 싶습니다. 문제가있는 답변에 대해서는 언제든지 의견을 남겨주세요.
Péter Török

@Ranger LOL! 관리자 직무가 쉬울 것이라고 말하십니까?
Gopi February

5
일주일 동안 무엇을하는지 물어보세요. 그것은 매우 오만한 태도입니다. 나는 그가 당신이 할 수있는 일을 할 수 없다는 것을 그에게 베팅하고 급여의 두 배를 베팅했습니다. 새로운 언어가 특정 언어의 메모리, 피연산자 및 조건부 구문을 배우는 데 일주일이 걸릴 수 있습니다. 우리가있는 곳을 찾는 것은 긴 과정 이었지만, 일반적으로 우리의 열정이므로 평생 동안 고난을 퍼뜨 렸습니다.
시크릿

답변:


33

프로그래머의 임무는 자연어 요구 사항을 기계어 구현으로 변환하는 것입니다. 한쪽 또는 다른쪽에 유창한 사람이라면 효과적으로 그렇게 할 수 없습니다. 컴파일러 나 버전 제어 소프트웨어를 작성하지 않는 한, 거의 모든 프로그래밍 작업에는 상당한 양의 비 프로그래밍 지식이 필요합니다.


1
프로그래머가 어떤 클라이언트가 코딩하기가 어려운지 알지 못했을 때
Gopi

+1 @Sri Kumar 사실이지만, 나는 프로그래밍이라고 생각하지만, 그것이 필요한 것이 무엇인지 , 어떻게 기술을 사용하여 솔루션을 가져올 수 있는지 여전히 파악할 수 있어야합니다 . 비즈니스 솔루션을 작성한다는 것은 모든 종류의 비즈니스에서 발생한다는 것을 동의합니다.
기드온

3
내 대답은 다르게 말한 것과 똑같을 것입니다. 작성중인 내용의 컨텍스트를 이해하지 못하면 예상되는 컨텍스트가 아니라 이해하는 컨텍스트에서 컨텍스트를 작성합니다. 대규모 팀에 속해 있지 않고 UML 다이어그램을 기반으로 XML 사양과 객체를 작성하지 않는 한 매우 중요합니다.
시크릿

컴파일러와 vc조차도 도메인을 가지고 있기 때문에 더 편할 것입니다.
Josh Johnson

24

Benjol과 관리자가 옳지 만 자세히 설명하겠습니다.

비즈니스 도메인을 학습하면 어떻게 과정에 가치를 추가 하고 비즈니스에 가치를 증가

이것은 코드 원숭이 프로그래머와 개발자 의 차이점 입니다.


7
+1 프로그래머에게는 소용이 없습니다. 일명 문제 해결사 인 개발자가 필요합니다. :)
jmort253

18

내 대학의 컴퓨터 과학 부서에서 온 말이 있습니다.

지질학자를위한 소프트웨어를 구축하려면 먼저 지질학을 이해해야합니다. 물리학자를위한 소프트웨어를 구축하려면 먼저 물리학을 다루어야합니다. 비즈니스를 이해하려면 먼저 비즈니스 대화를 배워야합니다.

소프트웨어 개발은 ​​창조적 인 분야라고 말하는 사람들이 늘 여기 있습니다. 나는 이것이 어느 정도 사실이라고 믿는다. 그것은 일련의 문제를 해결하기 위해 상자 밖에서 볼 수 있어야한다는 창의력과 관련이 있습니다.

그것이 의미하지 않는 것은 당신이 앉아서 원하는대로 무엇이든 창의적으로 만들 수 있다는 것입니다. 이것은 미술 수업이 아니며 공학이며 고객과 이해 관계자 는 단지 "멋진"것이 아니라 문제 를 해결 하는 무언가를 만들 것을 기대할 것입니다.

문제를 해결하려면 먼저 문제를 이해해야합니다. 사용자의 머릿속에 들어가서 그들의 생각을 이해해야합니다.

재무, 마케팅, 영업, 지질학, 물리학 또는 소프트웨어가 지원하는 모든 분야를위한 소프트웨어를 구축하든 해당 분야의 일부가되어야합니다.

내 컴퓨터 과학 학위 외에도 비즈니스 학위도 취득한 것은 바로이 때문입니다. 잠재적 인 솔루션을 전달하고 성공적인 제품을 제공하는 능력에 큰 영향을 미쳤습니다.

비즈니스 소프트웨어 엔지니어를 고용 할 때 찾고자하는 것에 대해 더 자세히 알고 싶다면 다른 질문에 대한 답변으로 쓴 이 비즈니스 엔지니어 구인 광고 샘플 을 확인하십시오 .


2
+1- 고객과 이해 관계자는 단순히 "멋진"것이 아니라 문제를 해결하는 것을 만들 것으로 기대합니다.
Karthik Sreenivasan

"지리학자들을위한 소프트웨어를 만들고 싶다면 ..."라는 말이 마음에 든다. 어느 대학교? 인용하고 싶습니다!
Raj Rao

1
@RajRao 불행하게도, 나는 비난을 받았으며, 내가 그것을 배운 사람을 정확히 기억하지 못한다. Ruben Gamboa 박사 ( uwyo.edu/cosc/cosc-directory/ruben/index.html ) 또는 William Wpears 박사 ( uwyo.academia.edu/WilliamSpears )는 미국 와이오밍 주 라라 미에있는 와이오밍 대학교 University of Wyoming입니다.
jmort253

14

도메인에 대한 지식이 많지 않거나 고객과의 연락 없이도 낮은 수준의 코더로 살아남을 수 있지만 소프트웨어 아키텍트는 도메인에 매우 익숙하고 모든 이해 관계자와 적극적으로 의사 소통하는 사람입니다.


2
+1-도메인을 이해하지 않고 성공적인 건축가가 될 수 있다고 생각하는 것은 매우 순진합니다. 가능하다면 커뮤니케이션에 대해 다시 +1하겠습니다. 너무 많은 사람들이 커리어에서 의사 소통 개발을 소홀히합니다.
jmort253

11

내 의견으로는, 당신은 틀리고 너무 순진합니다.

관리자가 말했듯이 (약간 뒤집기) 누구나 일주일 내에 기술을 배울 수 있습니다. 당신을 표시하고 회사에 유용하게 만드는 유일한 것은 비즈니스 지식입니다. 힘들수록 가치가 높아집니다.

분명히,이 특정 사업이 엄청나게 둔하다는 것을 알게되면 다른 것을 찾을 수 있습니다. 그러나 당신의 낙원에 대한 아이디어가 작은 PHP 웹 사이트를 해킹한다면, 그렇게하는 수천 명의 스크립트 키드가있을 것입니다.

진심으로, "나는 단지 코더 일뿐입니다, 사실과 혼동하지 마십시오"는 그것을 자르지 않을 것입니다.


1
동의합니다. 진공 상태에서 코드를 작성하려면 학계로 돌아가거나 IBM, MS 또는 Google과 같은 일부 대기업의 연구 부서에서 일자리를 구하십시오. 대부분의 경우 현실은 특히 개발자가 강력한 개발자와 강력한 BA의 조합 인 건축가가되는 것이 목표 인 경우 비즈니스를 이해해야한다는 것입니다.
Curtis Batt

1
@Mayank, imho, 실제로 전체 비즈니스의 세부 사항을 이해하는 것은 매우 어렵고 시간이 지남에 따라 자연스럽게 기대할 수있는 것입니다. 작업하는 시스템의 각 요소에는 비즈니스에 대해 더 많이 배우는 것이 포함되어야합니다. 이것이 도메인 지식이 많은 산업에서 일했을 때 일한 방식입니다.
Carson63000

2
@Mayank, 아니요, 매우 어렵다고 말하는 것은 잘못이 아닙니다. 내가 현재 직장에 도착했을 때, 나의 새로운 동료들은 내 머리를 코드 로 가져 오는 데 6 개월이 걸릴 것이라고 말했다 . 지금 나는 4 년이 다가오고 있는데 여전히 비즈니스에 관한 새로운 것들을 배우고 있습니다.
Benjol

1
내가 할 수 있다면 +1000 IMHO, 기술은 쉽고 재미있는 부분입니다.
ozz

1
아니 그는 순진하지 않습니다. 또한 그의 매니저는이다 삑삑의 바보, 정기적으로 paddled해야합니다.
Gaurav

8

나는 에너지 거래에서도 일합니다. 비즈니스 지식은 업무의 90 %입니다. 당신은 그 문제를 해결할 수 없습니다-그것은 복잡한 사업입니다.

최소한 거래의 기본 사항과 작업중 인 시장을 이해하지 못하면 코더가 아무리 훌륭하더라도 어려움을 겪을 것입니다.

요구 사항을 제대로 충족하지 못하는 일부 BA와 협력하고 있습니다. 업무를 완수하려면 본인의 분석 기술과 비즈니스 지식에 대한 이해가 필요합니다.

Energy Trading 소프트웨어를 판매하는 상점에서 일하는 경우 경험이 다를 수 있지만 기업 IT 에너지 거래에서는 시장 이해와 소프트웨어가 비즈니스 문제에 대한 솔루션을 먼저 제공하는 방법에 중점을 둡니다.

사용 된 실제 기술과 구현은 먼 초입니다.

위의 Excel 의견을 작성한 사람은 자신의 의견이 얼마나 적절한 지 알 수 없습니다. 거래자는 종종 Excel / VBA (자신이 아는 전부)로 자체 작은 거래 앱을 구축 한 다음 IT 부서가 이러한 프로그램 혼란을 물려받습니다.

이러한 앱 중 일부를 "적절한"언어로 재구성하고 싶지만 항상 우선 순위는 아닙니다.


1
+1 "복잡한 비즈니스"의 경우 :) 나는이 전에 금융 분야에서 일했으며 훨씬 더 흥미롭고 쉬운 것을 발견했습니다. 또한 지적한 것처럼 모든 것이 Excel에서 수행됩니다!
Mayank

6

비즈니스를 위해 개발하는 경우 회사의 다른 사람보다 비즈니스 규칙에 대한 명확하고 자세한 아이디어를 얻게됩니다. 이것은 당신이 모두보다 똑똑하기 때문에 반드시 필요한 것은 아닙니다. 일을 할 수있는 유일한 방법이기 때문입니다.

당신의 반응은 "하지만 비즈니스 분석가는 무엇을합니까?"

비즈니스 분석가는 개발자가 작업 할 수있을 정도로 명확하게 요구 사항을 충족시키려는 고객과 긴 회의를합니다. 나는 그들이 고객을 다루는 방법을보고, 그렇게 할 필요가 없다는 것에 감사합니다.


2
잠깐, 비즈니스 분석가에게는 명확한 요구 사항이 있습니까? 그거 좋네. 개인적으로 최종 사용자를 직접 다루고 싶습니다.
Christopher Mahan

@Christopher - 나는 :-) 요구 사항을 얻기 위해 "시도"라고
앤드류 목사

실제로 그렇습니다.
Christopher Mahan

1
+1-비즈니스 분석가는 개발자가 작업 할 수있을 정도로 명확한 요구 사항을 얻으려고하는 고객과 긴 회의를합니다.
Karthik Sreenivasan

6

저는 소프트웨어 개발과 아키텍처 사이의 유추를 그리기를 좋아합니다. 둘 다 응용 예술입니다. 둘 다 마음 속에 정교한 모델링이 필요합니다. 이 질문에 적용되는 측면은 사업 지식없이 소프트웨어를 작성하는 것은 주민의 생활 양식과 요구를 이해하지 않고 건물을 설계하는 것과 같습니다. 나는 우리 중 많은 사람들이 볼 (또는 / 살았에서 일했다) 그냥 있으며, 외부에서 아름답고 모던하고 이것 저것 보일 수 있습니다 건물 있다고 생각 사용할 내부에서합니다. (최악의 경우, 그들은 좋지 않습니다 :-((()

최신 정보

가우 라브의 의견 :

내가 궁금한 것은 개발자가 비즈니스 영역을 이해하는 데 어느 정도 노력을 기울여야 하는가입니다. 그가 끝까지 가야합니까, 아니면 몇 줄을 그려야합니다.

나는 당신이 어디에서나 선을 그릴 수 있다고 생각하지 않습니다. 앱 / 도메인의 일부가 없다면 터치 할 필요가 없습니다. IMHO는 실제 생활에서 장기적으로 매우 드 rare니다. 사용중인 앱의 모든 부분은 버그 보고서 및 기능 요청을받습니다. 해당 법률, 세금 규칙, 정책, 습관-즉, 실제 세계-가 변화함에 따라 도메인도 변경됩니다. 이것은 소프트웨어에서도 따라야합니다.

그러나 외부 변경 요청 없이도 단위 테스트 및 레거시 코드 리팩터링은 관련 도메인 영역도 이해해야합니다. 그렇지 않으면 실제로 올바른지 여부를 알지 못하고 앱의 현재 동작을 "고정"합니다.

업데이트 2

[...] 개발자가 자주 작업중인 비즈니스 도메인을 변경하면 어떻게됩니까?

물론 그것은 당신의 사업 지식을 얻는 투자 (시간과 고용주의 돈)의 많은 부분이 손실된다는 것을 의미합니다. 그러나 도메인이 완전히 다르지 는 않지만 다른 도메인간에 재사용 할 수있는 기본 사항이 있으며, 가장 중요한 점은 도메인 기반 디자인 방식 을 재사용 할 수 있다는 것입니다.


1
@Peter 답변을 업데이트 해 주셔서 감사합니다. 추가 질문이 있습니다. 이 답변과 다른 답변은 개발자가 하나의 비즈니스 도메인을 고수한다고 가정합니다. 나는 다른 세계에 대해 확신하지 못하지만 이것은 인도에서 매우 일반적입니다. 예를 들어. 작년에 CAX 도메인에서 마케팅 도메인으로 전환했으며 다른 도메인으로 전환 할 수 있습니다.
Gaurav

2
@Gaurav는 물론 비즈니스 지식을 얻는 투자 (시간과 고용주의 돈)의 많은 부분이 손실된다는 것을 의미합니다 .- (만약 그것이 일어날 것이라는 것을 안다면 물론 파는 가치가 없을 수도 있습니다 도메인이 완전히 다르지 않다는 점에 유의하십시오. 그러나 도메인 간에 재사용 할 수있는 기본 사항이 있으며, 가장 중요한 것은 도메인 기반 설계 접근 방식 을 재사용 할 수 있다는 것입니다.
Péter Török

@Peter 감사합니다. 나는 당신의 대답을 찬성 투표 할 것이지만 분명히 한 번만 찬성 투표 할 수 있습니다 (멍청한 규칙). 너무 귀찮지 않은 경우 하나 더 답변에 귀하의 의견을 포함시킬 수 있습니다.
Gaurav

@Gaurav, 완료, 기꺼이 도와 줄 수 :-)
Péter Török

그리고 downvote의 이유는 ...?
Péter Török

2

저는 거래 응용 프로그램을 개발하면서 10 년 이상 은행 부문에서 일해 왔으며 개발자가 비즈니스를 잘 이해하는 것이 중요하다는 데 동의합니다. 그러나 인터뷰 과정에서 몇 번이고 그 사람이 사업에 대해 잘 모르면 문을 통과하지 못합니다.

이로 인해 비즈니스 지식은 있지만 중급 수준의 기술 능력을 갖춘 사람들이 상당수의 중요한 응용 프로그램과 시스템을 개발하게되었습니다. 이 시스템은 항상 잘못 설계되어 끊임없이 충돌하고, 버그로 가득 차고, 확장되지 않으며, 무언가를 깨지 않고 고칠 수 없으며, 실제로 얻을 수있는 기술력이 부족하여 프로젝트가 취소되지 않는 경우 생산으로.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.