소프트웨어 엔지니어링 경력에서 의사 소통 기술이 낭비됩니까? [닫은]


40

저는 약 5 년간 (20 % 분석 / 프로그래밍, 80 % 의사 소통) 금융 공학 분야 (BA 수학 및 BA 컴퓨터 과학 이후)에 있었고 사람들과 의사 소통하고 기술적 문제 (예 : 상호 작용)에 대해 자부심을 가지고 있습니다. 팀과 함께). 나는이 일을 좋아한다. 화이트 보드로 가서 추상적 인 아이디어와 브레인 스토밍을 그립니다.

그러나 여러 가지 이유로 경력을 기술 회사 (소프트웨어 엔지니어링)로 전환하고 싶지만 프로그래머가 큰 헤드폰으로 코드를 작성하는 전형적인 프로그래밍 작업에 빠질 까봐 두렵습니다. 나는 이것이 단지 고정 관념이라는 것을 알고 있지만 (스타트 업에서) 전에 비슷한 환경을 목격했으며 고립의 경력으로 이주 할 것이라고 생각하는 것이 무섭습니다.

나는 알고리즘 적으로 코딩하고 사고하는 것을 좋아하지만 사람들과의 상호 작용을 포기하고 싶지 않습니다. 의사 소통 기술을 보유하는 것이 긍정적일 뿐이라는 점을 이해하지만 소프트웨어 엔지니어링으로 전환하여 직업 행복 실패에 대비하고 있습니다. 설명 및 / 또는 조언을 듣고 싶습니다.


14
여기서 대답이 약간 편향 될 수 있다는 것을 알고 있습니까?
JB King

2
물론 지금까지의 대답은 훌륭하고 유익했습니다.
Ryan

나는 당신의 질문이 프로그래밍에 능숙하지만 커뮤니케이션 부서에 약간 부족하기 때문에 HR에 의해 기피되고 (황금을 얻지 못하는) 사람들과 같은 사람들에게 이상하게 다가온다는 것을 깨닫기를 바랍니다. 의사 소통 기술은 특히 팀 프로젝트 (스크럼 + 스탠드 업 미팅 ...)와 원격 근무 환경에서 확실히 플러스입니다. 또한 요구 사항을 처리 할 때 일부 재구성이 이루어짐을 알 수 있습니다. 더 적은 프로그래밍과 더 많은 조정이 필요한 일부 책임이 있습니다.
James P.

절대 아니오.
Louis Rhys

2
자신의 아이디어를 구어와 컴퓨터 언어로 표현할 수없는 소프트웨어 엔지니어는 가치가 없습니다.
Ramhound

답변:


53

프로그래밍의 비밀은 다음과 같습니다 . 거의 100 % 커뮤니케이션 입니다. 그것의 중요한 부분은 인간과 소통하는 것입니다. 나머지는 방금 배운 내용을 컴퓨터에 전달합니다.

후자는 두 가지 중 더 쉽습니다. 컴퓨터는 정확히 말한 것을 수행하며, 말한 내용이 올바른지 테스트 할 수있는 위치에 항상 있습니다.

전자는 다른 것입니다. 사람마다 다른 용어로, 우선 순위를 이해함에있어, 컴퓨터로 피드하기 위해 올바른 메시지를 얻는 것이 매우 어렵다. 이 수준에서의 잘못된 통신은 프로그래머와 컴퓨터 간의 잘못된 통신보다 훨씬 일반적입니다.

훌륭한 프로그래머는 컴퓨터와의 의사 소통에 능숙합니다. 훌륭한 프로그래머는 매체를 통해 사람들과 의사 소통하는 데 능숙합니다.

헤드폰에서 나오는 프로그래머는 없습니까? 그들은 이메일이나 버그 추적기, 심지어 메신저를 통해이 통신을 계속하고 있습니다. 모든 일이 일어나고 있습니다. 그렇지 않으면 컴퓨터에게 무엇을해야할지 알 수 없습니다.

예, 의사 소통 기술이 도움이 될 것입니다.


의사 소통 전반에 대한 좋은 지적이지만, 개인 회의에 대한 강조가보다 사적인 서면으로 바뀔 수 있습니다.
JeffO

구현이 제안 된 두 부분 중 더 쉽다고 믿는다면 나쁜 팀과 함께 일하고 있거나 구현하는 것이 너무 쉽습니다. 구현에 소요되는 시간과 구현에 소요되는 시간을 계산합니다. 구현은 분명히 총 2/3이어야합니다. 그렇지 않은 경우 상사는 상사와 특별한 회의가 필요합니다.
Jonathan Cline IEEE

6
@Jonathan : 어려운 것과 시간이 많이 걸리는 것을 구분할 것입니다.
pdr

3
시간이 지남 에 따라 컴퓨터와 통신하는 것은 사람만큼 어렵습니다. 내가 작성한 코드의 대부분은 나중에 다른 사람이 읽습니다 ( 한 달 후에 다른 사람 이 놀랍게도 어렵지 않을 것입니다). 서면 및 간접 양식. 코드는 미래에 대한 편지, 코더는 작가입니다. 조이스 ?
gnat

누구나 컴퓨터가 이해할 수있는 코드를 작성할 수 있고, 좋은 프로그래머는 사람들이 이해하는 코드를 작성할 수 있습니다.
Michael Brown

23

프로그래머가 큰 헤드폰을 켜고 코딩하고 싶을 수도 있지만 (그렇지 않은 것은 아닙니다), 이것이 의사 소통을 할 수 없다는 것을 의미하지는 않습니다. 단지 그 순간에 방해 받고 싶지 않다는 것입니다. 통신하지 않습니다.

구두 의사 소통 기술은 다른 팀과의 회의, 임시 회의, 비즈니스 사용자, 다른 팀 등과의 회의에서 여전히 매우 중요합니다.

동료에게 큰 헤드폰으로 이메일을 보내 나중에 나중에 답장을 보낼 수 있도록하려면 서면 의사 소통 기술도 매우 중요합니다.


1
이것에 완전히 동의하십시오. 나는 바쁘다는 것을 나타 내기 위해서만 헤드폰을 착용했습니다.
Ivan

7

기술 컨설턴트로서 직업을 찾아야 할 것 같습니다. 종종 프로그래밍이 필요하지만 고객, 동료, 다른 회사의 컨설턴트와의 많은 의사 소통이 필요합니다 ... OTOH 또한 실제로 코드를 작성하지 않고 많은 기술적 문제를 해결하는 것을 의미합니다. 아마도 다른 길을 찾으십시오. HTH.


2
당신은 프로그래머입니까?
CenterOrbit

2
네 저도 기술 컨설턴트였습니다. 내 대답에 대해 그렇게 화나게 만드는 것은 무엇입니까?
SL 바스 – 복원 모니카

고객을 만나러가는 개인으로서의 기술 컨설턴트?
James P.

@James P. 그게 제가 의미 한 바입니다. 기술 컨설턴트 였을 때 제가 한 일입니다. 고객 사무실에 가서 기술적 인 문제를 해결하도록 도와줍니다. 분명히 개발자들에게는 강력한 의사 소통 기술이 필요하지만 여기에서는 이미 다른 사람들이 이미 논의한 바 있습니다.
SL Barth-복원 모니카

6

의사 소통 기술은 소프트웨어 개발자에게 매우 중요합니다. 의사 소통이 잘못되어 대다수의 소프트웨어 프로젝트가 실패한다고 말하는 통계 (아마도 모든 통계의 68 %를 구성하는 통계 옆)가 있습니다. 소프트웨어 개발 팀에서 비즈니스와 의사 소통하고 비즈니스를 이해할 수있는 사람이 되려면 좋은 장소가 있어야합니다.


6

본인은 알고있는 다른 프로그래머 및 IT 유형에 비해 가장 큰 경쟁 우위를 IT 개념에 능숙하지 않은 사람들과 의사 소통 할 수있는 능력이라고 확고히 유지합니다. IT 커뮤니티의 평범한 멤버들에 의해 가장 과소 평가되고 저개발 된 기술이지만 가장 중요한 기술 중 하나입니다.

상상할 수있는 거의 모든 역할에서, 어떤 시점에서, 당신은 자신이하는 일을 거의 이해하지 못하는 사람과 대화해야 할 필요가 있습니다.

사양에 대한 요구 사항을 수집하기 위해 사용자를 처리해야 할 수도 있습니다. 특수한 종류의 청취 (올바른 프롬프트 및 질문과 함께)도 커뮤니케이션입니다!

물론 의사 소통 능력이 뛰어나 처음부터 일자리를 얻는 것이 훨씬 쉬워집니다.


4

축하합니다. 응용 엔지니어, 그리고 응용 엔지니어링 관리자 (FAE 관리자)로서의 미래는 밝습니다.

이 스털링 직업의 일환으로, "Software Stack"이라는 텍스트를 사용하여 1 단계 고객을위한 파워 포인트 프레젠테이션을 작성하고 매우 복잡한 소프트웨어 엔지니어링 설계를 다양한 색상의 직사각형 블록으로 추상화하여 종종 우연히 배열합니다. 이 프레젠테이션은 최고 수준의 R & D에있는 주요 소프트웨어 엔지니어들로부터 시작되어 최저 공통 분모 고객 정신에 물을 뿌린 다음 최상위 수준의 주요 소프트웨어 엔지니어에게 제공되는 요구 사항 문서에 다시 붙여 질 것입니다. R & D의 비즈니스 사양입니다. 보너스 중 하나는 "구름"이라는 단어의 자유로운 사용에 달려 있습니다.


응용 엔지니어는 일반적으로 같은 수준의 설계자보다 평균 20 %에서 30 % 더 많은 작업을 수행합니다. 더 나은 의사 소통 자로서 더 높은 임금을 요구할 수 있기 때문입니다. 반면 의사 소통이 빈약 한 전형적인 설계 엔지니어는 더 많은 것을 요구하지 않습니다. 이에 따라 표준이 설정되었고 App Engrs는 은행에 줄곧 웃으며 디자이너보다 일을 더 일찍 떠나게됩니다. 그리고 나는 회의실에서 테이크 아웃 피자를 먹는 데 운이 좋은 반면 비용이 많이 들고 가격이 비싼 사무실 점심을 언급 했습니까?
Jonathan Cline IEEE

3

훌륭한 의사 소통 기술을 익히는 것이 좋습니다. 헤드 다운 프로그래머는 종종 관리자가 이해하지 못할 수 있기 때문에 흥미 진진한 프로젝트에 참여하지 않는 프로그래머입니다. 본질적으로, 당신이 공기를 위해 결코 오지 않으면, 당신은 "모퉁이의 이상한 사람"으로 비둘기를 will 것입니다.

다시 말하지만, 우리는 고정 관념을 연구하고 있으며 모든 환경이 그런 것은 아니지만 최소한 훌륭한 의사 소통 기술은 비즈니스와 주변 사람들을 더 잘 이해하는 데 도움이되므로 복잡한 문제를 처리하는 데 더 잘 장비 될 것입니다. 특정 도메인.

당신이 의사 소통하는 정도는 당신에게 달려 있습니다. 대화하기를 원하는 사람이없는 헤드 다운 프로그래머로 가득한 팀에 들어가는 일은 드물지만 유머를 속이려하지 않으면 빨리 소개 할 준비를하십시오. 또한 불가피한 사회적 어색한 프로그래머를 위해 준비하십시오. 항상 하나 이상이 있습니다.


3

논란의 여지가 있지만 대부분의 소프트웨어 프로젝트는 기술적 인 문제가 아니라 통신 문제로 인해 실패합니다. 훌륭한 코드를 작성하는 것은 소프트웨어 엔지니어에게는 확실히 중요하지만, 훌륭한 의사 소통 기술은 팀에게 큰 자산이며 코딩 기술보다 개선하기가 어렵습니다.


2

현재 큰 헤드폰을 켜고 프로그래밍하고 있습니다. 글쎄, 난 그냥 프로그래밍했다. 분명히 나는 ​​지금 StackExchange에 있습니다 ...

많은 프로그래밍이 연대하여 이루어지는 것은 사실입니다. 잘 프로그램하기 위해서는 그 초점과 프라이버시가 필요합니다. 그러나 실제로 대부분의 시간이 프로그래밍에 소비된다고 생각합니까? 많은 시간이 팀 회의, 전략 토론, 걷기, 생각, 토론 등으로 나뉘어 질 것입니다. 실제로 책상에 타이핑하는 것은 평생의 삶이 아닙니다. 소프트웨어 엔지니어링 과정에서 한 팀의 최고 / 최고 생산 프로그래머가 내향적인 사람이 아니라 나가는 사람이라는 연구를 읽은 것을 기억합니다.

좋은 프로그래머는 팀과 잘 대화 할 수 있습니다. 기술 책임자 또는 관리자의 요구 사항을 이해하고 이해하는 것은 쉬운 일이 아닙니다. 업무를 명확히하고 팀과 의사 소통하기 위해서는 훌륭한 의사 소통 기술이 필요합니다. 기술 책임자 또는 관리자에게 도움이되는 경우 팀을 함께 유지하는 데 의사 소통 기술이 매우 중요합니다.

나도 나가기를 좋아하는 사람입니다. 처음에는 프로그래밍 작업에서 연대의 정도가 약간 우울하다는 것을 인정해야합니다. 나는 주로 일을 더 사회적으로 만들기 위해 몇 가지 조치를 취했다.

프로그래밍 작업은 반 사회적이어서는 안됩니다.


2

의사 소통 기술은 확실히 낭비되지 않을 것입니다. 프로그램 코드를 작성하는 데 80 %의 시간을 소비하더라도 코드의 기능을 명확하게해야합니다. 노력을 낭비하지 않고 실제로 필요한 결과를 얻으려면 고객 (또는 프로젝트 리더)과의 효과적인 의사 소통이 필요합니다. 또한 프로그래밍에 익숙하지 않은 사람들에게 작업, 디자인 관련 잠재적 문제, 간단한 구현 등을 더 쉽게 설명 할 수 있습니다. 마지막으로, 사용자 대화 형 소프트웨어를 프로그래밍 할 때, 의사 소통 기술은 이해하기 쉬운 사용자 친화적 인 방식으로 올바른 정보를 얻는 사용자 인터페이스를 설계하는 데 매우 도움이 될 것입니다. 또한 작업을 수행하기 위해 사용자로부터 올바른 정보를 얻는 데 도움이됩니다.


1

나는 의사 소통이 컴퓨터 프로그래밍의 핵심이라고 주장하는 모든 사람들에게 동의합니다. 솔직히 말하면 설명 된 것에서 훌륭한 리드 프로그래머 또는 더 많은 '소프트웨어 엔지니어'유형을 만들 것이라고 생각합니다. 나는 회사에서 일반 IT로 시작했으며 프로그래밍 기술을 입증하자마자 프로그래머로 전환했습니다. 저는 매우 사회적이고 팀 지향적 인 외출 중이므로 이제 두 프로젝트의 수석 프로그래머입니다. 프로그래밍 체인에 올라 갈수록 화이트 보드와 문제 해결이 더 많이 시작됩니다.

당신의 성격이 '리더십'특성 (당신이 암시하는 것)을 가지고 있다면, 당신은 매우 빠르게 정상에 올 것입니다. 당신이 그런 식으로 성장할 수있는 회사에 있다는 것을 제공하기 만하면됩니다.

사회적 기술, 문제 해결 및 훌륭한 프로그래밍은 종종 생각보다 드물다. 고용주는 그런 종류의 기술로 죽입니다. 나는 당신이 올바른 길을 가고 있다고 생각합니다. 좋은 일을 계속하십시오!


1

저는 소프트웨어 개발에 많은 의사 소통이 있다고 말하는 다른 모든 사람들에게 동의하며, 좋은 코드를 작성하더라도 좋은 의사 소통 기술이 필요하다고 덧붙입니다.

올바른 코드를 작성하는 것이 중요합니다. 다른 사람들이 이해할 수있는 코드를 작성하는 것이 훨씬 더 중요합니다. 코드에 몇 가지 버그가 포함되어 있지만 진행 상황을 쉽게 이해할 수있는 방식으로 작성된 경우 버그를 찾아 수정하는 것이 어렵지 않습니다. 코드가 완전히 정확하지만 이해하지 못하는 방식으로 작성된 경우 실제로 올바른지 확실하지 않으며 향후 올바르게 수정 할 수있는 확률이 훨씬 낮습니다. .


1

물론 좋은 의사 소통이 중요합니다! 내가 집중하고자하는 것은 훌륭한 교사가되는 것입니다. 정말 효과적인 프로그래머는 15 분 전화 통화로 이해하는 데 몇 년이 걸리는 기초를 설명 할 수 있습니다. 같은 대화에서 비 기술적 인 용어로 세부 사항을 설명해야합니다. 따라서 다른 쪽 끝에있는 사람이 장기적으로 비즈니스에 가장 적합한 교육 된 결정을 내릴 수 있습니다.


1

어디로 가느냐에 따라 다릅니다. 나는 당신이 화이트 보드에서 많은 시간을 보내면서 PhD와 브레인 스토밍하는 퀀트 무역 회사를 알고 있습니다. 나는 당신이 마찬가지로 많은 의사 소통을 할 수있는 유명한 컨설팅 회사를 알고 있지만 기술적 인 배경이없는 사람들과 함께합니다. 의사 소통을하는 것이지만 주로 정치를하는 것입니다.

많은 신생 기업 및 소프트웨어 제품 회사 인 OTOH는 헤드 다운 코딩 담당자가 필요합니다. 물론, 일부는 의사 소통을 하지만 회사를 판매하는 프레젠테이션을 제공하는 것은 다른 코더와 이야기하는 것과는 많이 다릅니다 ...

커뮤니케이션이 실제로 이루어지는 영역 중 하나는 영업 엔지니어링 / 기술 컨설팅 / 등입니다. 진정한 커뮤니케이션을하는 사람 이라면 (사회적으로 어색하지 않은 SW 엔지니어 만이 아니라) 좋은 돈을 지불했습니다. 거기에 관련된 판매 도 있습니다.


0

아, 그래, 외부에서 오는 사람들의 관점에서 ... 정말 말할 수 없다 (모든처럼 다른 사람이 할) 그 프로그램이 통신에 대한 모든 것입니다.

정말 아니다 정상적인 일 상호를 기반으로 통신에 하루 존중 하고, 이해 하고, 지분 이에 대해 더 ... 마음 읽기 종류의, 간호 , 일부 논쟁은 확실히 참여하고있다. 협상 도 많이 있지만 익숙하지 않은 종류도 있습니다.

프로그래머 에게 sh-t판매하지는 않으며 , 게임을 하거나 엄청난 증거와 사실로 그들을 유혹 해야합니다 . 이 보일 수도 있지만 공정을 위한 미션 크리티컬 관련 문제 , 해당되는 사소한 불편 아무도, 심지어 그것을 제기 하나, 정말 지금에 대해 걱정해야하지, 그리고 ...에 통신 지옥에 오신 것을 환영합니다 .

외부 세계 (판매 물건 / 거래 거래 / 악수 세계) 에서 바이트를 얻은 경우 큐비클 전체에서 프로그래머가 경험 하는 일종의 ( 어떤 청소년, 다소 학업 적 인) 상호 작용 에 적응하기가 실제로 어렵습니다 .

고양이를 태우는 것보다 관리 사다리를 더 빨리 올라갈 수있는 방법을 찾지 못하면 커리큘럼 의 비즈니스 부분이 많이 낭비 됩니다.


0

의사 소통 기술은 도움이되지만 기술 역량은 개발자에게 필요한 모든 것보다 우선합니다.

응용 프로그램 엔지니어, 즉 고객이 '헤드 다운 (heads down)'개발자가 생성 한 소프트웨어 제품을 채택하고 활용할 수 있도록 도와주는 엔지니어로서 더 행복 할 것입니다. 그렇게하면 소프트웨어로 작업 할 수 있지만 대부분의 시간을 대화에 소비 할 수 있습니다.


0

의사 소통에 대한 해석 (사람과 논의)과 프로그래밍을 분리하고 80 %의 시간을 사람들과 이야기하고 싶기 때문에 프로그래밍은 좋은 선택이 아닙니다. 풀 타임 분석가, 건축가, 관리자 또는 고객 연락 담당자가 될 수있는 상황에 처한 경우 (고객 및 프로그래머와 대화를 나눈다면 통역사 일 것입니다. 약간의 Office Space 유머입니다.)

하루 종일 이사회에서 보낼 수있는 프로젝트 단계가 있지만 결국에는 코드를 작성해야합니다. 이것은 의사 소통의 형태이지만 설명 된 것과 다릅니다. 페어 프로그래밍 샵에서 코딩하는 동안 많은 대화를 나눌 수 있습니다. 대부분의 경우 키보드에 집중해야합니다. 헤드폰을 착용한다는 것은 너무 많은 사람들에게 둘러싸여 있음을 의미합니다.

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