프로젝트를 진행할 것인지 어떻게 결정합니까?


11

나는 상당히 새로운 개발자입니다. 전문적으로 저는 C #에서 2 년 동안 인턴으로, 6 개월은 주니어 개발자로 프로그램했습니다. 우리 가족의 친구는 VB.net으로 작성된 프로젝트에 도움이 필요합니다. VB.net을 사용한 적이 없으므로 조금 걱정됩니다.

그러나 실제 질문은 일단 프로젝트의 문서를 보았을 때 실제로 좋은 것이 아무것도 없다는 느낌이 들었습니다. 나는 그것이 내 인생에서 현재 갖고 싶어하는 것보다 더 많은 스트레스를 유발할 것이라는 느낌이 있습니다.

숙련 된 개발자는 프로젝트를 진행할 것인지 아니면 그냥 놓을 것인지를 어떻게 결정합니까? 더 쉽게 결정을 내릴 수있는 좋은 지표는 무엇입니까?

편집하다

이것은 실제로 그가 작업하기를 원하는 매우 큰 ERP처럼 보이며, 그가 프로그래밍에 대해 아는 것이 없다고 생각합니다.


10
어려운 결정입니까? 당신은 사양을 좋아하지 않으며 그들을 믿지 않습니다. 왜이 프로젝트를 원하십니까?
Vitor Py

2
이것은 내가 지금 가지고있는 실제 사례이지만 비슷한 질문이 없기 때문에 프로젝트를 선택하는 방법에 대한 토론을 여는 것이 일반적으로 도움이 될 것이라고 생각했습니다.
J Lundberg

@ J Lundberg : 귀하의 업데이트에 따라 답변을 업데이트했습니다.
FrustratedWithFormsDesigner

3
그가 프로그래밍을 모른다면 왜 VB.NET을 고집합니까? 그는 분명히 당신과 함께 프로젝트를 진행하지 않을 것입니다. .NET에서 C #을 통해 사용할 이유가 없습니다. 기존 VB.NET을 컴파일하여이를 C # 코드의 라이브러리로 사용하거나 그 반대로 사용할 수 있습니다.
Jonathan Henson

"도움이 필요합니다"– 이것이 유급입니까?

답변:


11

내 경험으로는 : 휴가를 보내야하는 가족이나 친구와 함께 지내고 자하는 돈을 절대로 사용하지 마십시오. 관련된 당사자 중 하나는 상대방이 너무 많이 청구하거나 충분히 지불하지 않고 상대방에게 호의를 보인 것처럼 항상 느낄 것입니다. 마감일이 다가 오면 일반적으로 이해도가 가장 낮으며 베타 테스트 중에는 일반적으로 엉덩이 구멍이 있습니다. 버그가있는 경우 이해하지 못할 수 있기 때문입니다. 항상 혼란입니다.

나는 이상 주의적이었고 다른 모든 사람들은 더 나은 사람들의 기술이 필요하다고 생각했지만, 그렇지 않습니다. 소프트웨어 개발 프로세스를 이해하지 못하는 사람들은 처음 본 순간에 무언가가 기대에 미치지 못할 때 항상 놀라게 될 것입니다. 이것은 가족과 마찬가지로 프로젝트 관리자와의 비즈니스에서도 마찬가지입니다. 문제는 가족 및 친구와의 관계를 유지해야하며 일이 엄격히 비즈니스라는 것은 아닙니다.

즉, 프로젝트가 스트레스 수준을 높이고 돈이 필요 없다면 왜 그것을 가져 가야합니까? 특히 당신이 이미 뛰어나고 자하는 소프트웨어 개발 직업을 가지고 있다면, 나는 당신이 궁극적으로 양질의 작업에 대한 보상을받을 수있는 곳이기 때문에 당신의 일상적인 일을 훌륭하게하기 위해 많은 노력을 기울여야한다고 말하고 싶습니다.

돈이 필요하고 가족 친구를 잃을 가능성이 있다면 직업을 가지십시오. 앞에서 언급 한 것 이외의 상황에서 발생할 수있는 최악의 상황은 자신이 무엇을 잘하고 잘하지 못했는지, 또는 프로젝트를 나쁘게 만드는 것을 씹을 수있는 것보다 더 많이 물었다는 것입니다. 경험 부족으로 인한 두통. 나는 현재 직장에서 두 번이나했으며, 다행히도 고용주를 매우 잘 알고 있습니다. 물속에서 죽은 느낌이들 때 비참했지만, 전보다 훨씬 넓은 기술을 가진 훨씬 더 나은 프로그래머가되었습니다.

어떤 직업을 가고 유지할지 결정하기위한 미적분학은 없으며 경험과 성격 만 있습니다. 당신이 원하는 것을 결정하고 추구하기 만하면됩니다. 고려해야 할 사항 :

이 프로젝트는 내가 즐길 수있는 프로젝트입니까? 팀은 내가 함께 즐길 수있는 팀입니까?

어떤 종류의 지불을 제공합니까? 그렇지 않다면 어떤 전문성 개발을받을 수 있습니까? 그들은 어떤 종류의 공유 ​​위험을 제공합니까 (즉, 주식 옵션, 이윤율)? 이것은 저에게 큰 설득력이 있습니다.

어쨌든, 이것은 의사 결정에 사용할 원칙입니다. 그것은 모두 당신이 중요하게 생각하는 것에 달려 있습니다. 예를 들어, 나는 가족과 함께 지적 과제와 시간을 소중하게 생각하기 때문에 보통 프로젝트가 무엇인지, 그렇게 할 때 배우는 기술에 우선 순위를 둡니다. 그러나, 나는 이미 하루 종일 일하고 있기 때문에 아내와 자녀들과 시간을 보낼 수 있도록 일주일에 2 ~ 3 일 밤 일하고 있다고 미리 진술해야합니다. 이 요구를 충족시키기 위해 마감일을 조정합니다. 그들이 마음에 들지 않으면 나는 일을하지 않습니다.

당신이 무엇을 하든지, 당신이 무엇을 하든지하지 않겠다고 명확하게 진술하고, 직업을 갖기 전에 그들이 기대하는 바를 분명히 밝히십시오. 발생할 수있는 최악의 상황은 고객이 예측하지 않은 기대를하고 그 기대치를 과소 평가 한 것입니다.

추신 : 저는이 글을 경력 초기에 읽었 으면 좋겠습니다. 마지막 단락에 적용됩니다. http://www.joelonsoftware.com/articles/fog0000000356.html


5
"가족을 위해 일하지 마십시오"+1 어느 쪽도 그것에 너무 많은 투자를하지 않고 순수한 재미로 보지 않는다면 조심해야합니다.
Ethel Evans

11

숙련 된 개발자는 프로젝트를 진행할 것인지 아니면 그냥 놓을 것인지를 어떻게 결정합니까?

직업이 필요합니까? 그렇다면 프로젝트를 "수집"합니다.

더 쉽게 결정을 내릴 수있는 좋은 지표는 무엇입니까?

몇 개의 선택이 있습니까? 1 이상? 대안 중에서 선택할 수 있습니다.

단 1? 잘. 그게 다야.

"내 인생의 스트레스"문제는 헛소리입니다. 프로젝트를 수행하지 않으면 고용을 유지하지 못하는 것을 의미합니다. 그것은 비참한 결과를 초래합니다.

"스트레스"가 결정적인 요소 인 재정적 자유가 있다면 정말 좋습니다.


3
+1 : 당신은 그것보다 더 많은 것이 있다고 생각할 것입니다. 그러나 그것은 매번 요약되는 것입니다.
Ryan Hayes

@ S.Lott- 여러 프로젝트에서 자주 작업 할 기회가 있다고 확신합니다. 귀하가 "do or die"유형의 상황에 처한 것 같지는 않습니다. 나는 너무 많이 가정 할 수도 있지만, 경험이있는 누군가가 분명히 프로젝트를 거절하기로 결정했기 때문에 약간의 밀짚 사람 인 것 같습니다. "현금을 위해 갇혀"의미.
Morgan Herlocker

1
@ironcode : "너무 많이 가정 할 수 있습니다." 진실. 스트레스 때문에 프로젝트를 중단 할 기회가 없었습니다.
S.Lott

@ S.Lott 나는 이미 직업을 가지고 있고 이와 같은 일을하면 가족에게 제로 시간을주지 않을 것이라는 점에서 스트레스를 의미합니다.
J Lundberg

@ J Lundberg : 모든 사실을 포함하도록 질문을 업데이트 하십시오.
S.Lott

5

이 프로젝트에서 무엇을 얻을 수 있습니까? 돈? 경험? 다른 것?

  • 돈 : 그것은 가족 구성원 (나는 가족과 사업을하지 않으려 고 노력하지만 다른 모든 토론입니다), 작습니다 (그렇게 들리게 함), 당신은 상당히 후배이므로 많은 것을 기대하지 마십시오. 그것으로부터 돈 ( 경험에 근거 ).

  • 경험 : 새로운 언어를 배울 수 있습니다! 미래에는 가치가있을 수 있습니다. C # 만 알고있는 .NET 개발자보다 약간 우위를 점할 수 있습니다.

그러나 당신의 직감은이 프로젝트가 나쁠 것이라고 말한다 . 왜 그런 겁니까? 적어도 이것으로부터 경험을 얻을 수있는 것 같습니다.

대부분의 계약 업체는 프로젝트에 참여하기로 결정한 금액을 살펴 보는 것으로 시작합니다. 이상적으로 어려운 프로젝트는 더 많은 돈을 벌게됩니다. 이것이 어려운 경우, 잘 지불해야하지만 실제로 당신이 실제로 돈을 잘 받을지 알 수있는 세부 사항을 모르겠습니다 ...


업데이트의 세부 사항에 대한 응답으로, 이는 단일 주니어 프로그래머의 범위를 벗어난 것입니다. 몇 분 동안 조사를 수행하고 원하는 것을 수행 할 수있는 기존 제품이 있는지 확인하고 "기능"페이지에서 사용자 정의 / 플러그인 / 확장성에 대해 이야기하는지 확인할 수 있습니다. 기존 제품이 없거나 광범위한 플러그인 프로그래밍 작업을 수행해야하는 경우 사용자 지정 소프트웨어 상점에 문의 할 수도 있습니다. 프로젝트가 너무 커서 처리하기가 어렵다는 것을 인정하는 데 아무런 문제가 없습니다. 프로젝트를 수행하고 완전히 실패하는 것보다 훨씬 낫습니다 (특히 가족 구성원 인 경우 가족 기능이 수년 동안 어색하고 긴장 될 수 있음).


3
A friend of my family

개인적으로이 문구가 관련되어 있으면 프로젝트를 수행하지 않습니다.


2

프리랜서로서, 예산, 품질, 시간 내에 완료 할 수 있다고 확신하는 프로젝트 만 받아들입니다. 프로젝트를 거부한다고해서 적어도 영원히는 아니지만 실업을 의미하는 것은 아닙니다. 프로젝트를 수락하면 돈, 명성, 건강 등 모든 비용을 지불 할 수 없습니다.

좋은 고객이 내 기술에 맞지 않는 새로운 프로젝트에 도움을 필요로 할 때 때때로 조금 더 어려워집니다. 그럼에도 불구하고 정직하고 다른 사람이 그렇게하는 것이 좋습니다.

귀하의 경우 프로젝트를 거부 할 수 있으며 거부해야합니다. 경험이 충분하지 않으며 언어를 모릅니다. 너무 큽니다.


1

저는 20 년 넘게 프리랜서 프로그래밍을 해왔습니다. 프로젝트가 실제로 성공하려면 최소한 다음이 필요합니다.

  1. 배포에 사용 된 프로그래밍, 소프트웨어 및 하드웨어 기술 또는 배포 기술을 빠르게 배울 수있을 정도로 유사한 기술을 알고있는 사람
  2. 문제 영역을 알고 프로그래머가 사용할 수있는 사양으로 변환 할 수있는 사람. (프로그래머도 도메인 전문가이고 프로젝트가 충분히 단순하다면 사양은 헤드 또는 비공식 메모에있을 수 있습니다.)
  3. 프로젝트 작업, 타임 라인 등을 잘 관리 할 수 ​​있고, 기꺼이, 경험이 있고, 추정과 피하는 방법으로 얻을 수있는 함정의 종류를 알고있는 사람
  4. 프로그래머 및 고객을 포함한 모든 프로젝트 이해 관계자 간의 커뮤니케이션 및 관계를 관리하는 사람
  5. 계약 및 돈을 포함하여 진행중인 비즈니스 문제를 견고하게 유지하는 데 경험이있는 컨설턴트, 고객 및 컨설턴트 이 경험이없는 경우에는 경험이 풍부한 조언자와 상담하십시오.
  6. 어려운 비즈니스 결정을 내려야한다면 업무 외 문제가없는 완벽한 비즈니스 관계
  7. 필요한 타임 라인 내에 양질의 제품을 제공하기 위해 전문 지식, 도구 및 리소스를 적절히 조합 한 대규모 팀

프로그래밍에 대해 전혀 모르고 경험이없는 프로그래머 인 자신이 모르는 기술을 사용하여 ERP 시스템을 구축하기를 원하는 가족을 설명합니다.

이 상황이 # 1, # 3, # 6 및 # 7에서 분명히 그리워하는 것처럼 들립니다. Adam은 Mythbusters에서 "이것은 재앙의 요리법입니다."라고 말합니다.

도대체, 나는 10 발 극으로 이것을 만지지 않을 것입니다. 나는 여기서 볼 수있는 다른 붉은 깃발들에 관해 계속 갈 수 있지만, 기본적으로, 당신에 대한 나의 충고는 당신이 옳다는 것이기 때문에 당신의 직감을 느낍니다.

이것이 가족의 친구이기 때문에, 내가 당신이라면, 나는 단지 "당신은 훌륭한 프로젝트를 가지고 있고 당신은 정말 좋은 사람이 필요합니다. 나는 당신에게 당신이 가져야 할 결과를 줄 수있는 경험이 너무 없습니다"라고 말하고 그대로 두십시오.

또한 한 분야에서 문제가있는 고객이 있으면 다른 지역에서도 문제가 될 가능성이 있음을 알게되었습니다. 하급 프로그래머가 설계하고 구현 한 ERP 시스템을 가지고 있다고 생각하는 잠재 고객은 자신과 타인에게 위험 할 정도로 무지하거나 엄청나게 저렴하며 둘 중 하나를 내 "숙박"목록에 포함시킬 것입니다 .


FWIW는 컨설턴트 / 프리랜서로서 아내의 조언을 받아 내 역할을 맡게되었습니다. 우리는 프로젝트가 부족하여 프로젝트가 실패하는 것을 보면서 모든 항목이 무엇인지 알아 냈습니다. 때로는 자체 프로젝트였습니다. 그리고 20 년이 지난 후에도 이러한 기준을 확인했지만 여전히 효과가없는 가끔 프로젝트를 시작합니다. 위험은 항상 비즈니스에 속합니다. 나는 내가 잘못한 일 때문에 프로젝트가 실패하지 않고 계약이 구조화되어 다른 쪽이 망칠 경우 지불을 받는다는 것을 확신합니다.


0

다른 사람들과 협력하고 싶습니까?

이 프로젝트는 사람들을 만나고 사귀는 변명 일뿐입니다.


나는 그 관점을 좋아한다. 우리는 함께 프로젝트를 진행해야합니다.
Jonathan Henson

그것은 나를 매우 잘 섬겼다. 프로젝트 세부 사항은 폭풍의 모래처럼 변할 수 있습니다. 사람들은 여전히 ​​당신을 놀라게 할 수 있지만 더 느리게 변화합니다.
bmike

0

내가 개인적으로 취해야 할 것은 그가 원하는 것, 타임 라인, 어떤 종류의 비용이 예상되는지 등을 약간 탐구하는 것입니다. 이것이 실제로 큰 ERP라면 도움이 몇 년 동안 지속될 수 있으며 실제로 못생긴 가능성이 있습니다. 폐기물 관리 대 SAP 는 9 자리의 프로젝트 예산과 같이 실제로 큰 의미가있는 경우 비용이 얼마나 비싸는지 보여주는 예입니다.

탐사를 할 때의 요점은 모래에 선을 그려서 질문을하는 이유와 결과로 무엇을 계획하고 있는지 명확하게하는 것입니다. "이것이 어떻게 가능한지 보여?" 방법론, 예산 및 타임 라인을 미리 질문 한 다음에 어떤 질문이 있을지, 어떤 것이 유능한 지 아닌지 또는 일부 IT 유머 사이트에서 발생할 수있는 것인지 여부를 확인하기 위해 약간의 연구를 수행합니다. 매일 WTF 처럼 .

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