프로그래밍 대 계획 [닫기]


15

최근에는 팀을 이끄는 수석 개발자로 인해 더 높은 수준의 계획 업무를 맡았습니다. 나는 장기 계획이 싫다. 내 두뇌는 자연스럽게 유선으로 보이지 않으며, 그것을 배우는 데 시간을 할애 할만큼 관심이 없다 (그림의 프로그래밍 측면을 따라 잡기에는 어렵다).

높은 수준의 계획을 세우지 않고도 여전히 훌륭한 프로그래머가 될 수 있습니까?

선임 프로그래머로서 전체 제품을 계획하고 완료 날짜를 선택하는 데 능숙한 사람이 있습니까?


귀하의 직책이 개발자 인 경우 왜 계획해야합니까? 아마도 추정하지만 계획은 아님
superM

네 가능합니다. 이 경우 생산성은 관리자 / 팀장의
우수성

1
이것은 정말 흥미로운 질문입니다. 애자일 개발에서 새로운 시스템이나 프로젝트의 많은 기능이 등장하기 위해서는 많은 기술 사양을 수행 할 필요가 없다고 생각합니다. 자세한 내용은 내 답변을 참조하십시오.
Robin Winslow

1
그 인용구는 어떻습니까? "코딩 일은 계획 시간을 절약 할 수 있습니다"또는 그 영향을 미칩니다.
Drake Clarris

답변:


17

자세한 장기 프로젝트 계획은 일반적으로 매우 부정확 한 것으로 악명이 높습니다. 시스템의 기능은 출시 전에 필연적으로 변경 될 것입니다. 사람들은 일반적으로 이해 관계자에게 최대한의 시각을주기 위해 사양에 들어가는 세부 사항을 해결하는 데 오랜 시간을 소비합니다.

애자일 계획 에 대해 더 읽어보아야 합니다. 사고 방식에 더 적합 할 수 있습니다. 많은 애자일 방법론은 상세하고 장기적인 계획에서 벗어나는 방법을 찾으려고합니다.

민첩한 방법론 은 자체 문서화 코드격리 된 원자 사용자 스토리 및 궁극적으로 작동하는 소프트웨어 를 위해 세부적인 기술 사양문서 를 최소화하려고 합니다. 효율적인 애자일 팀에서는 계획 수립에 최소의 시간이 소요됩니다.

민첩한 선언문을 읽고 스크럼을 살펴보십시오 . 사용 반복 개발동적 시스템 개발 방법은 프로젝트를 안내합니다.

애자일 접근 방식의 주요 단점은 프로젝트의 정확한 범위를 알지 못한다는 것을 공개적으로 인정 해야 한다는 것 입니다.이 아이디어에 대한 경영진 인수는 매우 어려울 수 있으며 보통 시간이 걸립니다. 이에 대한 팁 은 이 질문과 답변이 게시물 을 참조하십시오 .

그러나 상급 프로그래머가되면 코딩을 적게 할 것이지만, 애자일 팀에서는 더 많은 기술 사양을 작성한다는 의미가 아니라면 관리 및 개인지도에 더 많은 시간을 할애한다고 생각합니다. 팀원과 코드에 대한 아키텍처 결정을 내립니다.


4
"자세한 장기 프로젝트 계획은 일반적으로 매우 부정확 한 것으로 악명이 높습니다." DING DING DING +1
Ryan Kinal

11

네 가능합니다. 그러나 훌륭한 소프트웨어 엔지니어 나 소프트웨어 아키텍트가되고 싶다면 높은 수준의 계획을 세우십시오. 나에게 프로그래머와 엔지니어의 주요 차이점은 큰 그림을 볼 수있는 능력이었습니다.


1
내가 지금하고있는 작업을 계획하는 것은 괜찮습니다. 의미, 내가 작성하려고하는 내용이 여러 조각으로 구성되어 있다면, 그것을 높은 수준에서 계획 한 다음 수행하는 것이 마음에 들지 않습니다. 나는 앞으로 몇 달 동안 데이트를 시도하는 데 성공하지 못합니다. 그런 다음 왜 우리가 그것을 치지 않을지 알아 내려고 노력합니다. 그것이 나의 개인적 좌절이 절정에 달하는 곳입니다.
MattW

나는 개인적으로 좌절하지 않도록 노력합니다. 나는 프로젝트 관리자에게 그런 종류의 물건을 고정하려고 노력한다.;).
Blaise Swanwick

Blaise의 의견을 추가합니다. 나쁜 관리자들은 일정을 준수해야한다고 주장하고 누락 된 "약속"에 대해 팀을 비난합니다. 그러한 환경에서는 일정이 확실히 실망 스럽습니다. 훌륭한 관리자는 초기 일정이 기본 추측이며 약속이 아님을 알고 있습니다. 그들은 일부 작업은 더 오래 걸리고 더 짧아 질 것임을 알고 있습니다. 그들이 가장 관심을 갖는 것은 장기 추세입니다. 예를 들어, 현재 3 개월 동안 기준 일정에서 20 % 뒤쳐져 있습니다. 이는 나머지 유사한 작업에 대해 20 % 이상을 실행한다는 의미입니다. 그런 다음이 새로운 일정을 사용하여 프로젝트를 관리합니다.
덩크

9

훌륭한 프로그래머가 될 수 있습니까?

잠시만 요 이것을 오랫동안 할 수 있습니까? 아니.

오늘날 많은 고용주들과 함께 생활 산업 경쟁력을 높이는 것이 표준 운영 절차 입니다. 자신을 개선하지 않고 더 크고 어려운 문제를 해결하려고 시도하지 않으면 업계 경쟁이 치열한 인상으로 5 ~ 10 년 안에 시장에서 가격이 책정됩니다. 이것을 유지하면 고용주는 결국 당신을 제거해야 할 이유를 찾기 시작하고 다른 곳에서도 고용률이 급격히 떨어질 것입니다.


혼란 스러워요. 이론적으로 COL 인상은 인플레이션 율과 일치해야합니다. 소프트웨어 개발자에게 지불하는 실제 비용이 시간이 지남에 따라 점차 감소하고 있다고 제안하고 있습니까? 아니면 COL 인상은 일반적으로 실제 생활비의 증가보다 더 많은가? 더 큰 관심사는 성장을 입증 할 수 없다는 것이 그 자체로 일반적으로 부정적인 것으로 간주된다는 것입니다. 그러나 기술 폭이 넓거나 심도있는 것과 같이 성장을 입증하는 다른 방법이 있습니다.
Ethel Evans

1
나는 생계비 인상보다는 산업 경쟁력있는 인상이라고 말 했어야했다. 나는 그 대답을 편집했다. 이러한 업계 경쟁력있는 인상은 젊은이들에게는 꽤 달콤하며 일반적으로 인플레이션보다 훨씬 좋습니다. 생계비는 오래된 포모를위한 것입니다. 누군가가 인플레이션보다 더 높아질 때 문제가 있지만 그 기술은 신선함을 유지합니다.
David Hammen

잡았다! 명확하게 해주셔서 감사합니다.
Ethel Evans

슬프게도 시간이 지남에 따라 프로그래밍 기술이 배우기 쉬워지고 있기 때문에 엔지니어의 기존 비 성장 기술은 COL보다 가치가 떨어집니다.
새로운 Alexandria

6

물론 프로그래머의 관점에서 보면 좋은 프로그래머가 될 수 있습니다. 경영진의 관점에서 보면 완전히 다른 질문입니다. 내 경험상 계획 프로세스에 참여하는 것이 1) 더 흥미로운 프로그래밍 과제를 얻고 2) 원하는 방식으로 수행하는 가장 좋은 방법입니다.

즉, 일단 단기 계획으로 넘어 가면 많은 옵션이 제공되지 않습니다. 원하는 솔루션이 6 주가 걸리지 만 예산이 2 주 밖에 안된다면 그들이 결정한 바에 얽매이게됩니다. 장기 계획에서 이미 논의한 사항에 대해 우려가있는 경우에는이를 다시 해시하지 않을 것입니다.

당신이 그 상태에 만족한다면, 당신에게 더 많은 힘을 줄 것입니다. 대부분의 사람들은 경험이 많을수록 만족도가 떨어집니다.

더러운 작은 비밀은 장기 계획 및 평가에 매우 좋은 사람없습니다 . 더 나은 플래너는 자신의 한계를 알고있는 사람들입니다. 그러므로 믿거 나 말거나, 당신은 곡선보다 앞서 있습니다. 추정 불확실성에 대한 회계 교육을받습니다. 증거 기반 일정 또는 스크럼과 같은 기술을 살펴보십시오.이 데이터는 과거 데이터를 바탕으로 견적의 정확성을 보여줍니다. 일에 대해 더 큰 말을하면 장기적으로 더 행복해질 것입니다.


"더러운 작은 비밀은 아무도 장기 계획 및 평가에 매우 적합하지 않습니다." 그게 진실이 아니야! 그냥 +1하십시오. 역사가 좋더라도 다음 프로젝트는 이전 프로젝트의 정확한 사본이 아니기 때문에 맑고 푸른 하늘에서 뽑아야 할 숫자가 많이 있습니다. 만약 그렇다면, 우리는 모든 코드를있는 그대로 재사용하고 최대한 빨리 처리 할 수있을 것입니다. 항상 새로운 것이 있으며 과거의 성과가 항상 새로운 노력에 필요한 노력을 나타내는 좋은 지표는 아닙니다.
David Hammen

좋아, 아마도 좌절 (그리고 심지어 자아 )은 내가 관리해야 할 것 이상입니다. 내가 너무 심하게 이길 수없고 시간이 지남에 따라 더 좋아질 수 있다면 ( "나는 이것을 좋아하지 않는다"고 말함) 장기적으로 나아질 것이다. 내가 잘못하고있을 때 나 자신에게 어려움을 줄 수는 있지만 소프트웨어 엔지니어로 계속 일하고 싶다면 잘 해내는 것이 좋을 것 같습니다. 나는 모든 사람의 생각에 감사합니다. 나는 회사에서 아무도 이것을 배울 수있는 사람이 없습니다. 그래서 여기에서 모든 사람의 말을 듣는 것이 큰 도움이됩니다!
MattW

3

훌륭한 프로그래머가 될 수 있습니까?

짧은 답변 : 네 가능합니다.

그러나 관련된 프로젝트 유형에 대한 경험이 많을수록 계획 아이디어가 더 좋습니다. 이상적으로 프로그래머로서 우리는 문제를 해결하는 방법에 대한 접근 방식을 찾거나 찾는 방법이 있습니다. 따라서 접근 방식을 알고 있다면 계획에 대해 생각해 볼 수 있습니다.

또 다른 가능한 경로는 좋은 계획을 세우는 프로그래머가 결국 프로젝트 관리를 향하고 있다는 것입니다. 따라서 프로젝트 관리에 관심이있는 경우 해당 방향으로 추가 노력을 기울일 수 있습니다.


1

예, 아니오는 당신의 대답입니다.

한편으로, 당신은 프로젝트 관리에 대해 애 쓰고 있습니다. IMO, 모든 훌륭한 프로그래머는 어느 정도의 프로젝트 관리 기능을 가지고 있지만 기술은 다릅니다. 장기 계획 기능은 실제 프로젝트 관리와의 의사 소통 능력을 향상시킵니다. 따라서 "아니오"는 장기적인 계획을 세우는 능력 없이는 훌륭한 프로그래머가 될 수 없습니다.

이미 말했듯이 프로젝트 관리는 프로그래밍과는 관련이 있지만 다른 측면에 호소하는 다른 기술 세트입니다. 여기에 "예"가 등장합니다. 훌륭한 프로그래머가되기 위해 프로젝트 관리자 일 필요는 없습니다.

특정 상황에 따라 회사가 필요로하는 것과 귀하가 즐기는 것을 더 객관적으로 만드십시오. 귀하의 질문에 자아가 너무 많이 반영되어 있어이 상황을 볼 수있는 능력을 왜곡하고 있습니다. 여전히 즐기는 일을하면서 고용주에게 더 ​​많은 기여를 할 수있는 방법을 찾을 수 있다면,이를 고려하여 상사와상의해야합니다.


1

계획과 번지 보스

딜버트는 번지 보스에 대해 많은 스트립을 가지고 있습니다. 계획에 대한 우리의 도전과 기대는 지도력의 원인이자 결과 일 수 있습니다. 포춘지 선정 100 대 기업에서 일한 경험은 1 년 만에 프로젝트 리더로 1 년을 시작한 모든 사람이 퇴사 한 것입니다. 아마도 이것은 계획 문제 때문일 것입니다. 전직 책임자가 이런 이유로 떠났는지는 확실하지 않지만, 귀하의 역할에 따라 약속으로 계획을 세워야 할 때, 약속을 지키지 않으면 마감일 관련 종료가 종종 발생합니다.

계획의 조직적 맥락

계획이 불편한 경우 해결해야 할 문제를 문서화하거나 이해하기 전에 마케팅 또는 기타 이해 관계자에 대한 약속에 대해 책임을지는 것이 불편할 수 있습니다. 이것은 좋은 본능입니다.

계획은 중요한 도구입니다. 그것을 무시하지 마십시오. 오해하지 마십시오.

계획은 약속, 책임 및 협상력과 필수적으로 연결됩니다. 민첩한 계획에는 많은 장점이 있습니다. 계획된 방법론의 기술뿐만 아니라 그 기술을 알아야합니다. 귀하의 조직은 자체 접근 방식을 가지고 조언을 받고 많은 프로젝트의 리더십을 유지 한 사람과 협력하는 것이 놀라 울 정도로 도움이 될 수 있습니다.

간단한 계획 예-소프트웨어에 관한해서는 안됩니다 ...

지붕 회사가 교체를 위해 입찰하기 위해 우리 집에 왔을 때, 너무 낮게 입찰하면 일자리를 잃을 수도 있지만, 너무 높게 입찰하면 전혀 일자리를 얻지 못합니다. 어느 쪽이든, 그들은 사업에서 벗어났습니다. 새 역할에서 너무 낮 으면 책임이 시작될 때까지 프로젝트를 실행하면 문제가 발생합니다. 마감 기한까지 성공을 보장하기에 충분한 패딩이있는 프로젝트를 추정하면 많은 사람들이 다른 사람을 선택하기 만하면됩니다. 키커는 당신이 루 퍼와 다르다는 것입니다. 그는 지붕이 얼마나 큰지 알 수 있고 그 크기의 지붕이 얼마나 오래 걸리는지에 대한 역사적 데이터를 가지고 있습니다.

더 나은 플래너되기

어떤 종류의 훈련을 고려할 수도 있습니다. 민첩한 방법론과 가장 최근에 계획된 방법론에서 추정은 팀 전체의 활동입니다. 따라서 팀에 대한 교육을받는 것도 고려해야합니다.

경험상 팀 구성원으로부터 견적을 얻거나 요구 사항이나 기능 설명 또는 기존 코드를 참조하지 않고 작업 이름을 기준으로 2 분 안에 견적을 제공하는 것이 실망 스럽다고 말할 수 있습니다. 과거 프로젝트가 비슷한 문제에 몇 주를 보냈지 만 몇 가지 작업을 하루에 몇 분 안에 완료 할 수 있다고 주장합니다.

다양한 프로젝트 관리자 교육 과정과 인증이 있지만 독립적으로 공인 된 과정을 볼 것입니다. 애자일 팀 (또는 다른 방법으로)과 함께 작업 할 계획 인 경우 계획된 방법론에 기반한 접근 방식으로 인증을 선택하기 전에 다시 생각할 가치가 있습니다.

SLIM은 1970 년대 GE와 다른 회사에서 DoD 프로젝트를 수행 한 후 Putnam이 발명 한 방법입니다. SLIM은 영향력이 있으며 그의 회사 QSM은 그들이 만든 도구에서 나오는 것처럼 보이는 인증제공합니다 . 회사에서 도구를 채택했는지에 따라 가치가 없거나 높을 수 있습니다.

Steve McConnell (Code Complete의 저자)은 소프트웨어 평가에 관한 책을 저술했으며, 그의 회사 Construx는 프로젝트 관리 연구소 (Project Management Institute)를 통해 인증 된 PDU 학점에 대한 두 가지 클래스를 가르칩니다 . 나는 그의 책을 가지고 있으며, 교실 훈련을 통해 주제에 대해 배우고 싶다면 Construx를 선택했을 것입니다. 또한 Scrum 교육을 수행하고 Scrum.org를 통해 인증 된 다양한 스크럼 평가를 관리합니다.

소프트웨어 프로젝트 추정에 대한 훌륭한 학문적 훈련을 제공 할 수있는 또 다른 출처 는 USC의 Barry Boehm 그룹으로 , NASA 및 기타 대형 계약 업체에서 매우 큰 프로젝트를 추정하는 데 사용 된 COCOMO 및 COSYSMO 건설 비용 모델링에 대한 광범위한 작업을 기반으로합니다. 나는 COCOMO의 진정한 신자라고 확신하지 못하지만, 일정 기간 동안 규모 및 비용 동인의 효과를 상관시키기 위해 수행 한 경험적 작업을 좋아합니다.

또한 O'Reilly가 출판 한 교재에서 Watts Humphreys PROBE 및 Kent Beck의 계획 게임을 포함한 주요 소프트웨어 평가 방법에 대해 간략하게 설명 하는 장을 찾았 습니다. PROBE에는 엔지니어가 자체 생산성에서 메트릭을 추적 한 다음 새 프로젝트의 할당 부분에 적용한다는 개념이 포함됩니다. 플래닝 게임은 개발자와 다른 이해 관계자간에 매우 협력 적입니다.

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