소프트웨어 개발자에서 소프트웨어 관리자 또는 팀 리더로 진행하려면 어떻게해야합니까? [닫은]


42

저는 거의 3 년 동안 소프트웨어 개발자 (시간제 또는 풀 타임)였습니다. 나는 항상 일에 앞장서고 일을 끝내는 조직을 제공하기 위해 그 요령을 가진 사람이었습니다. 대학에서 수석 디자인 프로젝트를 이끌었던 이래로 저는 이것이 책상 코딩 뒤에 앉아 있지 않은 것이 진정한 소명이라고 생각했습니다. 이제 다른 개발자가 진정으로 나를 존중하도록 코딩하는 방법을 이해해야한다는 것을 알고 있습니다. 또한, 나는 정말로 코딩을 좋아합니다. 나는 집 밖에서 집 밖에서 많은 부수적 프로젝트를 수행하고, 최상의 코딩 관행을 따라하며, 도메인에 대한 나의 지식을 지속적으로 발전 시키려고 노력합니다.

나의 주요 질문은, 어떤 종류의 것들이나 기회를 찾아야하는지, 코딩 역할이 아닌보다 관리적인 역할로 경력을 발전시키는 데 도움이 될 것입니다. 내가 말했듯이, 나는 코딩을 좋아하지만, 높은 수준에서 일을 디자인하고, 일을 끝내고 진행 상황을 모니터링하는 방식으로 팀을 구성하여 기술을 지원하면서 훨씬 더 많은 것을 원합니다. 여기저기서 결정. 하루 종일 코딩하는 책상 뒤에 앉아있는 것이 아니라 이러한 유형의 것들이 진정으로 나를 행복하게 만듭니다.

분명히 내 주요 꿈 중 하나는 결국 스스로 날려 버릴 수있는 일종의 소프트웨어를 자체적으로 생산하는 것입니다. 그런 다음 팀을 고용하고 직접 모든 일을 시작하지만 그 일이 일어날 확률이 훨씬 더 나쁜 것처럼 느낍니다. 내가 가고 싶은 곳으로 가기 위해 경력 경로를 조금 바꾸는 것보다 나 자신보다는 고용주에게도 똑같은 만족감을 줄 수 있다고 생각합니다. 이전에는 그런 느낌이 들지 않았지만, 나는 정말로 내가하고 싶은 일을하지 않기 때문에 그 느낌이 온 것 같습니다.

팁, 조언 또는 명심해야 할 사항이 있습니까? 이 작업을 수행 한 사람이 있다면 어떻게 했습니까?


어떤 종류의 교육이 있습니까? 현재 위치에 얼마나 있었습니까?
Thomas Owens

컴퓨터 과학 학사 학위를 받았습니다. 나는 약 1 년 동안 현재 위치에있었습니다.

1
@slandau 나는 당신이 PM 역할에 들어가고 싶지 않다는 것을 분명히 부를 것입니다. 그것이 명백한 방향으로 나타날 수 있지만; 귀하의 설명과 희망은 PM 역할과 다르며 PM 역할이 궁극적으로 뒤따를 것이라고 생각하지 않습니다.
Aaron McIver

1
@AaronMcIver 작업 장소에 따라 다릅니다. 일부 PM은 업무 적이며 일부 PM은 본질적으로 기술적 인 부분입니다. 어떤 곳에서는 "엔지니어링 관리자"가 더 일반적인 제목 일 수도 있고 다른 곳에서는 단순히 "소프트웨어 엔지니어"일 수도 있습니다.
Thomas Owens

2
글쎄, 먼저, 당신의 영혼을 포기 ... :-)
Paul Tomblin

답변:


41

소프트웨어 개발 역할에서 관리 또는 리더십 역할로 전환하는 데는 시간이 걸립니다. 소프트웨어 엔지니어링을 전공하고 소프트웨어 엔지니어링 프로세스를 강조했으며 비즈니스 관리 및 커뮤니케이션을 전공했습니다. 소프트웨어 프로젝트를 관리하는 방법, 채용 및 고용 방법, 팀을 이끄는 방법, 그룹과 구두 및 서면으로 의사 소통하는 방법에 대한 학문적 경험에도 불구하고, 특히 내가 원하는 산업에서 대부분의 관리 및 리더십 역할을 발견했습니다. 일을하려면 소프트웨어 엔지니어링 분야에서 5 년 이상의 경험이 필요합니다 (협동 조합과 인턴쉽을 포함한 2 명).

그동안 프로젝트 관리 주제에 대한 연구를 계속했습니다.

내가 추천하는 첫 번째 것은 좋은 의사 소통과 협상가가되는 것입니다. 중요한 대화를 나누는 방법에 대해 알아보십시오. 개발자라도 동료, 고객 및 사용자와 함께 결정을 내려야합니다. 때때로 당신은 어려운 대화를 나누고 모든 사람에게 유익한 합의에 도달해야합니다. 쉬운 목표는 아니지만 어려운 대화 : 문제를 토론하는 방법 책에서 가장 많이 다루는 것이 이것입니다. 과거에 거절 하기 와 예에 가기 : 포기하지 않고 협상 하기와 같은 다른 것들도 도움이 될 것입니다. 현재 위치에 관계없이 관련이 있습니다.

보다 기술적 인 측면에서 소프트웨어 팀을 이끌고 관리하려면 소프트웨어 개발 수명주기에 대한 이해가 중요합니다. 리더십 직책은 요구 사항 엔지니어링, 소프트웨어 시스템 아키텍처, 설계, 구현, 테스트 및 품질 보증 및 유지 관리 작업과 관련이 있음을 의미합니다. 이들 모두에 대해 전문가가 될 수는 없지만 관리자 나 리더는 적어도 모든 것을 이해해야합니다. 개발자는 아마도 테스트와 함께 대부분의 디자인, 구현 및 유지 관리 작업을 수행 할 것입니다. 나는 소프트웨어 요구 사항 (및 동반자, 소프트웨어 요구 사항에 대한 추가 정보 ), 실제 소프트웨어 아키텍처 와 같은 책을 추천 합니다.소프트웨어 시스템 아키텍처 : 아키텍처 과정을 수강 한 후 관점과 관점사용하여 이해 관계자와 함께 작업 하며 소프트웨어 품질 엔지니어링의 메트릭스 및 모델 )을 권장합니다 .

프로젝트 관리 관점에서 프로세스 모델 및 방법론에 대해 배울 수 있습니다. Scrum 및 Extreme Programming과 같은 민첩한 방법과 Waterfall 및 Spiral과 같은 계획 중심 방법이 있습니다. CMMI 및 개인 소프트웨어 프로세스 / 팀 소프트웨어 프로세스와 같은 방법론 프레임 워크도 있습니다. 귀하와 관련된 것은 산업 및 회사 측면에서 근무지에 따라 다릅니다. 다양한 방법론과 프레임 워크에 관한 책이 많이 있지만, 일반적인 소프트웨어 엔지니어링 관리 및 소프트웨어 엔지니어링 프로세스에 대해서는 신속한 개발 : 길들이기 야생 소프트웨어 스케줄 을 권장 합니다.

교육을 계속하려면 더 많은 기술 관리 트랙과 더 많은 비즈니스 관리 트랙을 살펴보십시오. 기술 관리 직책을 원한다면 소프트웨어 엔지니어링, 소프트웨어 엔지니어링 관리 및 엔지니어링 관리 프로그램을 살펴보십시오. 더 많은 비즈니스 관리 트랙의 경우 MBA 프로그램, 비즈니스 관리 또는 경제 또는 재무 요소가 강한 일부 엔지니어링 관리 프로그램을 고려할 수 있습니다.


1
네,하지만 실제로 수석 소프트웨어 엔지니어에서 관리자로 어떻게 이동합니까? 나는 위에 나열된 모든 내용을 알고 있다고 생각하면 공식 관리자 역할 경험이 없으며 실제로 모든 것을 알고 있다는 느낌만으로도 그것을 할 수 있음을 증명하기 위해 무엇을해야합니까? 이 단계를 어떻게 수행합니까?
trusktr

19

이 다른 답변은 훌륭하지만 $ 0.02를 넣을 것입니다. 나는 현재 회사의 주니어 개발자에서 고위 개발자로 팀을 이끌고 현재는 건축가로 이사했습니다. 몇 년이 걸렸습니다. 승진을 할 때마다 이미 직무 측면을 수행하고 있었기 때문에 경영진이이를 인식하고 적절한 직책을 부여했습니다. 따라서 제 조언은 기술 책임자 또는 관리자라는 말을 기다리지 않는 것입니다. 그 역할을 가진 사람들이 가진 책임을 맡기 시작하십시오. 몇 개월 또는 1 년 후 기본적으로 목표로하는 작업을 수행하고 있다는 사실을 알게되며, 관리자가이를 눈치 채지 못한 경우이를 지적 할 수 있습니다.


2
당신이 한 회사에서 말한 것을 정확하게 해고당했습니다. (나를 해고 한 관리자도 나중에 회사를 떠났습니다). 적합하지 않았습니다. 경쟁이 치열하고 자기 중심적인 회사에서 최고의 자리에 오르는 것이 항상 싸움 인 것처럼 느껴졌습니다. 사람들이 이미 더 높은 사람들로부터 지원, 격려 및 지시를 받기 전에 사람들이 수행 한 것보다 더 큰 일을 시도하고 성취하려고 시도하는 회사에있는 것이 훨씬 낫습니다.
trusktr

9

Thomas Owens가 이미 좋은 조언을했기 때문에 완전한 답변을 제공하지는 않겠습니다 (+1).

몇 가지 팁 / 제안을 추가하고 싶었습니다.

  1. 누군가가 당신을 인도 할 때까지 기다리지 마십시오. 그냥 시작해 나는 당신의 현재 상사를 대항하는 것이 아니라 그를 도와주기 위해 주도권을 행사하는 것을 의미합니다. 당신의 상사가 내 것과 같은 것이면, 그는 일반적으로 자신의 접시에 너무 많은 작업 / 회의가 과부하되어 있습니다. 만약 당신이 시간을 충분히 갖지 못할 수있는 방향을 제시하고있는 것을 알게된다면 기꺼이 관리 책임을 맡게 될 것입니다. 시간이 지남에 따라, 당신이 이것을 올바르게하면, 당신의 상사는 점점 더 당신에게 위임 할 것입니다 (그가 걱정할 것입니다). 그리고 당신이 공식적인 지도자가 될 때까지 더 많은 책임을지게 할 것입니다.
  2. 팀 구축과 리더십은 기술보다는 사회학에 관한 것임을 명심하십시오. 리더로서 목표는 사람들과 사람들의 행동 방식을 이해하는 것입니다. 이는 컴퓨터 작동 방식을 이해하는 것과는 매우 다릅니다. 이러한 실현이 없다면, 훌륭한 엔지니어는 이러한 정신적 전환을하지 않고 기계를 제어하는 ​​것과 같은 방식으로 사람들을 통제 할 수 없다는 사실을 깨닫기 때문에 최악의 팀 리더를 만듭니다. 실제로, 효과적인 것으로 보이는 유일한 접근 방식은 사람들을 전혀 통제하는 것이 아니라 방향을 제시하는 것입니다. 지도력에 관한 책 / 기사 / 블로그를 읽고 읽고 계속 읽습니다. 제가 추천 할 수있는 한 권의 책은 Management 3.0입니다

... 그리고 이제 토마스가 게시 한 링크를 검토하겠습니다.



이것은 나쁜 충고로서, 누군가가 그들의 상사에게 요청하지 않은 일을하고 있음을 시사합니다.
프로그래밍 교수,

5 년 전 개발자 였을 때이 질문에 대답했습니다. 이제 다시 돌아와서 관리자의 관점에서 읽습니다. @Bonner-당신이 맞아요. 다양한 스타일의 관리자가 있습니다. 당신이하도록 지시받지 않은 일을한다면 어떤 사람들은 당신에게 눈살을 찌푸리게됩니다. 이 경우 귀하에 대한 저의 조언은 해당 관리자로부터 멀어집니다. 내가 리드가 된 이후로, 내가 한 모든 일은 내 직원들에게 독립적으로 생각하고 나를 교체 할 수있게하는 것입니다. 나는 각자 자신의 과제의 좁은 초점 사이에 균형을 맞추도록 요청하지만 자신을 미리 찾고 더 넓은 그림을 봅니다.
DXM

5

개인적으로 현재의 현재 위치를 떠나고 싶지는 않지만 릴리스주기의 어느 위치에 따라 코딩 이외의 작업에 시간의 10 %에서 거의 100 %를 소비합니다. 인내심과 관찰력이 있다면 현재 위치에서 "그냥 코딩"이외의 작업을 수행 할 수있는 많은 기회가 있습니다. 예를 들면 다음과 같습니다.

  • 새로운 팀원을 멘토링하기위한 자원 봉사.
  • 회사에서 채택 할 새로운 도구, 프로세스 또는 기술에 대한 전문가가 되십시오.
  • 부서 간위원회를위한 자원 봉사.
  • 가지고있는 아이디어에 대해 이야기하십시오.
  • 향후 기능에 대한 회의를 디자인하도록 자신을 초대하십시오.

이러한 종류의 기회에 관심이 있다는 것을 관리자에게 알리고 현재의 책임을 잘 수행하고 있다고 가정하면 기회가 생길 때 귀하에게 기회를 제공 할 것입니다. 이니셔티브는 많이 계산됩니다. 대부분의 관리자는 지금 당장 자격이 없다고 생각하더라도 최소한 귀하를 관찰하게 할 것입니다.


4

프로젝트 관리 역할로 옮기고 싶다면 야간 수업을 듣고 MBA를 향해 노력하는 것이 절대 아프지 않습니다.

또 다른 옵션은 PMBOK 프로젝트 관리 지식 인증을 조사하는 것입니다. 실제 지도력 경험이 몇 년이 아니거나 위에 나열된 두 항목 중 하나가 없다면 많은 곳에서 고려하지 않을 것입니다.

PMBOK는 매우 어려운 시험이며 합격하려면 많은 공부가 필요합니다. 또한 실제 프로젝트 관리 및 리더십 경험에 대한 요구 사항이 테스트를받을 자격이 있다고 생각합니다.


3
어쩌면 나일지도 모르지만, 특히 기술 관리 또는 리더십을 원한다면 소프트웨어 엔지니어링 관리 학위 또는 엔지니어링 관리 학위를 원할 것입니다. 엔지니어가 MBA를 취득하고 실제로 엔지니어를 관리하거나 이끌지 않고 소프트웨어 프로그램의 비즈니스 측면으로 밀려 드는 것을 보았습니다.
Thomas Owens

@ThomasOwens, 그건 좋은 메모입니다. 나는 그것이 대부분의 기술적 인 장소로 번역 될지 확실하지 않기 때문에 항상 MBA를받는 것을 망설였습니다.
slandau

PMP 시험이 그렇게 어려운 것은 아닙니다.
Morons

@ 모론 나는 몇 PM이 그들의 경험에 대해 나에게 말한 것을 계속하고있다. 하지만 이제 저는이 두 사람이 그렇게 밝지는 않았습니다.
maple_shaft

2

프로젝트 관리를 위해 노력하고 싶을 것 같습니다. 소프트웨어 개발에서 많은 PM 위치는 코딩 경험도 필요합니다.

나는 당신이 당신이 원하는 관리 / 리더 선을 가져갈 책임으로 성장할 수있는 위치를 찾을 것입니다. 사다리를 올라가면 작업중인 작업 방식에 따라 다르게 보일 수 있습니다. 그러나 코딩 경험이 적은 경우에도 리더십, 관리 경험이 있으면 PM 위치를 사용할 수 있습니다.


이것은 원래의 질문에서 언급되었습니다 : "... 코딩 역할이 아닌보다 관리적인 역할로 경력을 발전시키는 데 도움이되는 어떤 유형의 물건이나 기회를 찾아야합니다 ...". @slandau는이 작업을 수행하는 방법에 대한 조언을 찾고 있습니다.
Thomas Owens

1
그래, 난 동의. 내가 그 일을 시작하는 방법에 대한 팁이 있습니까?
slandau

예, 실수로 게시 버튼을 눌렀습니다.
D ..

@D .., 나는 약간의 리더십 경험이 있지만 대학에서 다시 한 번의 부수적 인 프로젝트와 프로젝트에있었습니다 ... 충분한 지 확실하지 않습니다. 그렇습니까?
slandau

대부분의 경우, 그러한 경험을 제공하는 전문적인 업무 경험을 지향해야합니다. 어떤 곳에서는 선임 개발자 역할을 수행하기가 더 쉬울 수 있습니다. 나는 당신이 원하는 것을하고있는 열린 자세에주의를 기울이고, 요구 사항을보고, 가장 일반적인 것을 얻을 수있는 기회를가집니다. 내가 일한 대부분의 장소는 작았으며 많은 노력없이 깔끔하게 다음 단계로 올라갈 수있었습니다. 당신의 현재 직업을보십시오. 당신은 거기로 올라갈 수 있습니까? 어쩌면 당신은 지금 당신이 활용할 수있는 정의 된 경로를 가지고있을 것입니다.
D ..
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.