소프트웨어 프로젝트 아웃소싱 — 갈등 해결 [폐쇄]


11

일부 우크라이나 개발자에게 아웃소싱 한 프로젝트를 관리하는 일을 맡았습니다.

회사는 Elance 를 통해 고정 가격으로 고용했습니다 . 그 시점에서 상사는 나를 처리하고 작업을 완료하기 위해 나를 내버려 두었 습니다. 완료해야 할 완전한 일에 대한 자세한 사양을 만들었습니다.

이 프로젝트에는 XMPP, RabbitMQ 및 Database와 같은 것들이 포함되었습니다. 그들과의 첫 만남에서 (항상 IM) 나는 그들이해야 할 일을 철저히 설명했다 . 그들은 그것을 이해하는 것처럼 보였으며, 그것이 쉽게 이루어질 것이라고 확신했습니다.

여태까지는 그런대로 잘됐다. 그러나 일주일 후 다시 만났을 때 그들은해야 할 일에 대한 오해로 가득 차있었습니다. 개발자 중 한 사람에게 XMPP를 알고 있는지 물었을 때 그는 처음으로 XMPP를 사용하고 있다고 말했습니다. 첫 회의에서 프로젝트의 복잡성과 관련된 기술에 대해 구체적으로 언급했습니다. 또한, 나는 그들이 어떻게해야하는지에 대한 기능 사양 을 작성하도록 반복해서 요청했다 . 그러나 그들은 NO라고 말하고 오히려 코드를 작성한다고 주장했다. 나는 말했다.

프로젝트는 3 주 후에 완료되었고 필요한 것을 제공했습니다. 그 시점에서 코드를 검토하기 시작했습니다. 대부분 괜찮 았지만 몇 가지 중요한 문제가 있습니다.

  • 그들은 구성 파일로 분리해야 할 것들을 하드 코딩했습니다.
  • 하나의 파일로 통합해야 할 여러 구성 파일이 있습니다.
  • 그들은 전혀 문서를 작성하지 않았다
  • 다른 사소한 변경

나는 그들에게 이러한 변경을 요청했다 (문서를 제외하고)-그리고 우리는 논쟁을했다.

그들은 가격이 고정되어 있기 때문에 작업 코드를 완료하면 변경을 요청하는 것이 불공평하다고 말했다. 그들이 프로젝트에서 불합리한 시간 동안 일했고 지금은 아무것도 요구하는 것이 잘못되었습니다.

마침내 그들은 변경을했고 프로젝트는 끝났습니다. 그러나 그것은 내 마음에 몇 가지 질문을 남깁니다 ...

  • 그들은 필요한 것을 행했지만 제대로 수행 해야 했기 때문에 변경이 필요했습니다 . 정말 불공평 했어?

  • 기능 사양없이 코드를 작성하는 데 동의 한 이유는 무엇입니까?

  • 그들이 처음으로 모든 것을 이해했는지 확인하지 못한 이유는 무엇입니까?

누구나 같은 입장에서 자신을 찾으십니까? 아웃소싱 프로젝트를 관리하는 더 좋은 방법이 있다고 생각하십니까?

-업데이트-

모든 의견에 감사드립니다. 전체 경험을 반영한 후 결론을 내릴 수 있습니다 ...

  • 나는 내 측면에서 사양이 모호하지 않았지만 제안 된대로 분명히 말끔 하게 만들지 않았습니다 . 따라서 가능한 한 구체적으로 설명해야합니다. 사양에서 스펙을 읽고 무언가를 놓쳤는 지 확인하십시오. 적어도 세 번 반복하십시오.

  • 코드가 충분하지 않은 것을 지정하기 만하면됩니다. 코드의 모양을 지정해야합니다. 디렉토리 구조는 무엇인가; 가능한 경우 파일 이름까지도. 이것은 나중에 많은 성가심에서 당신을 구할 것입니다. 코딩 지침, 변수 명명 규칙, 내부 문서 형식 등을 엄격하게 지정하십시오. 해당 지침을 준수하는지 확인하십시오.

  • 기능적 사양을 요구하십시오. 코드보다 먼저 작성해야합니다. 이렇게하면 많은 혼란과 오해가 생길 것입니다.

  • 이상 징후를 조기에 식별하여 수정하기 위해 개발중인 코드를 검토하십시오. 적어도 하루에 한 번 그들과 대화하십시오.

  • 마지막으로 그들과 좋은 관계를 유지하십시오. 그들이 당신의 작업에 감사한다고 느끼게하십시오. 지침에 맞게 과장하지 말고 대신 요청하면 프로젝트를 완료하면 코드를 훨씬 쉽게 유지 관리 할 수 ​​있다고 알려주십시오.


1
해외 프로젝트가 잘 진행되는 것을 본 적이 없습니다. 나는 이것을 읽기 시작할 때 전쟁 이야기에 들어갔다고 생각했다.
smp7d

답변:


13

우선 , 이것은 오프 쇼어 링 문제가 아니라 벤더 관리 문제입니다.

예, 제작 을 많이 실수 ...

그들은 필요한 일을했지만 제대로 수행해야했기 때문에 변경했습니다. 정말 불공평 했어?

예, 공평합니다. 특정 방식으로 원한다면 가격이 합의되기 전에 입찰에 응할 수 있다고 말했을 것입니다.

기능 사양없이 코드를 작성하는 데 동의 한 이유는 무엇입니까? 스펙 을 지불 하고 싶지 않았기 때문에 ! 문서는 시간과 비용이 많이 들며 무료로 제공해야합니까?

그들이 처음으로 모든 것을 이해했는지 확인하지 못한 이유는 무엇입니까?

그들은 이해했다. 그러나 계약을 체결 한 후 주먹 회의 에서 계약을 체결 한 후에는 고정 가격이 합의되었습니다. 따라서 가능한 모든 곳에서 비용 (시간)을 줄일 필요가있었습니다. 기본적으로 일주일에 한 번만 회의를 개최하여 혼란 옵션을 제공하지 않습니다.

다음에이 작업을 수행하는 방법은 다음과 같습니다.

1 단계 : 요구 사항 수집, 시스템 분석 수행 및 기술 설계 및 / 또는 기능 사양 작성 (또는 직접 작성) 이 단계의 가격에 동의하십시오. 그들에게 개발 단계를 제공하겠다는 약속이 없다고 설명하십시오. 가격에 회의 시간을 포함시켜야합니다.

2 단계 : 현재 (및 귀하) 보유한 사양에 따라 개발 된 입찰에 참여하도록하고 노력이 실제로 포함되어 있음을 알도록하십시오. 가격에 회의 시간을 다시 포함시켜야합니다. 작은 변경 예산을 포함하기 때문입니다.


편집 : 추가 포인트를 추가하고 싶습니다. 공급 업체도 여기에 결함이 있습니다. 작업의 일부는 프로젝트 관리를 안내하는 데 너무 도움이되며 프로세스에서 부족한 부분을 알려줍니다.


2
3 단계와 4 단계를 잊어 버렸습니다. ??? and Profit :-)
Ramhound

3
외부 기관에 기능 사양을 작성하도록 요청할 수있는 방법은 무엇입니까? 기능 사양 작업하려는 프로젝트 의 요구 사항 입니다. 그렇지 않으면 당신은 그들에게 돈을주고 그들에게 "문제 해결, ... 모르겠다. 소프트웨어가 무엇을해야하는지 알아 내고, 귀찮게 할 수 없다"고 말했다.
maple_shaft

1
@maple_Shaft 좋은 점, 요구 사항 수집은 1 단계의 일부입니다. 답변을 업데이트하겠습니다.
Morons

1
오래된 폭포 도그마

3
@JarrodRoberson 저는 특정한 방법론의 팬이 아닙니다. 각각의 장점이 있지만, 애자일을 사용하지 않았기 때문에 단순히 실패했다고 말합니다.
Morons

17

제대로해야 했어요

그런 다음 아웃소싱하지 않거나 프로젝트 팀에서 근무하고 당시 코드 검토에 참여하는지 확인하십시오.

프로젝트는 3 주 후에 완료되었고 필요한 것을 제공했습니다. 그 시점에서 코드를 검토하기 시작했습니다.

다시 한 번, 프로젝트가 진행되는 동안 코드를 검토해야했습니다.

그들은 가격이 고정되어 있기 때문에 작업 코드를 완료하면 변경을 요청하는 것이 불공평하다고 말했다.

작업 코드에 대해 고정 가격을 지불했습니다. 죄송합니다. 그것은 그들의 잘못이 아닙니다. 자신이 통제하는 스프린트에 참여할 시간을 지불하면이 문제가 발생하지 않습니다. 코드가 아닌 시간과 승인 된 사용자 스토리에 대해 비용을 지불해야합니다.

그들과의 첫 만남에서 (항상 IM) 나는 그들이해야 할 일을 철저히 설명했다. 그들은 그것을 이해하는 것처럼 보였으며, 그것이 쉽게 이루어질 것이라고 확신했습니다.

완전히 아웃소싱 된 프로젝트를 처리 할 때는 사양이 철저한 지 확인해야합니다. 몇 문장보다 오래 걸리는 내용을 설명해야 할 경우 사양이 완성되지 않은 것입니다. 이것이 그들이 사양에서 비난 한 이유입니다.

개발자 중 한 사람에게 XMPP를 알고 있는지 물었을 때 그는 처음으로 XMPP를 사용하고 있다고 말했습니다.

개발자가 이력서와 기술을 과도하게 팽창 시켜서 일자리를 착륙시킬 수 있도록 인기있는 저렴한 해외 아웃소싱 국가에 아웃소싱하는 것이 일반적입니다. 그들은 많은 사람들이 실제로 편안한 생활 임금을 지불하는 공연을 착륙하기 위해 건물을 재개하기 때문에 자신의 능력에 대해 걱정하지 않는 경우가 많습니다.

기능 사양없이 코드를 작성하는 데 동의 한 이유는 무엇입니까?

이 질문에 대한 답변은 본인 만받을 수 있지만 다음 번에는 학습 경험으로 삼으십시오.


2
"정확하게 수행하려면 소스를 제공하지 마십시오"에 동의하지 않습니다.
Morons

1
@Morons 당신의 권리는 말할 것도없이 게으른 일이었습니다. 오프 쇼어 가능성에 가장 큰 관심을 가진 회사가 제대로 할 수있는 원칙이 가장 부족한 회사이기 때문에 저는 그 마음가짐을 기본으로 삼았습니다. 그들이 내부 문제를 올바르게 해결할 수있는 곳으로 해결했다면, 아마도 해외에서 처음부터 덜 필요했을 것입니다.
maple_shaft

3
이 말을해야 "당신이 그것을 제대로 수행하려면 가장 낮은 입찰자로부터 품질을 기대하지 않는다" , 프리랜서 사진 작가는 말한다있는 친구 "가장 비현실적인 expections이, 가장 싼 고객을"

1
나는 또한 그 진술에 동의하지 않습니다. 당신은 내부 팀이나 지역 개발 상점에서 똑같은 문제를 겪을 수 있습니다.

7

회사는 Elance를 통해 고정 가격으로 고용했습니다. 그 시점에서 상사는 나를 처리하고 작업을 완료하기 위해 나를 내버려 두었습니다. 완료해야 할 완전한 일에 대한 자세한 사양을 만들었습니다.

두 사람이 먼저 계약을 맺은 다음 사양을 작성하도록 허용하고 해당 사양을 계약의 일부로 수락 했습니까? 그것이 그랬다면 그것은 당신의 잘못이 아니라 계약자의 잘못입니다. 동일한 가격으로 3 주 대신 3 개월 동안 작업 할 수있는 사양을 쉽게 작성할 수 있습니다.

대부분 괜찮 았지만 몇 가지 중요한 문제가 있습니다.

  • 그들은 구성 파일로 분리해야 할 것들을 하드 코딩했습니다.
  • 하나의 파일로 통합해야 할 여러 구성 파일이 있습니다.
  • 그들은 전혀 문서를 작성하지 않았다
  • 다른 사소한 변경

이러한 것들이 당신의 스펙의 일부입니까? 그들이 있었다면, 그것은 그들의 잘못입니다. 그렇지 않다면 그것은 당신의 것입니다. 이러한 사항이 사양에 포함되어 있는지 확실하지 않은 경우 문서를 작성했기 때문에 귀하의 잘못이기도합니다. 다음에 더 나은 사양을 작성하십시오.


3

나는 얼마 전에 오프쇼어링에 관한 프리젠 테이션을했다. "글로벌 아웃소싱, 비즈니스 역량 강화를위한 10 가지 팁"이라고합니다. 다음은 10 가지 팁을 요약 한 것입니다 (이것은 최대 400 개의 아웃소싱 프로젝트에서 나옵니다).

선택

  1. 최저 및 최고 입찰자를 피하십시오 . 이는 입찰자가 낮을수록 위험을 감수하고 싶지 않으며 입찰가가 높을수록 중앙값보다 가치가 낮습니다 (가치 / 가격).

  2. 등급 (또는 참조)을 확인하십시오 . 나는 항상 참조 및 등급을 확인합니다.

  3. 동기 부여의 우선 순위 . 동일한 가격으로 동기 부여 된 입찰을 선택합니다. 예를 들어 입찰자가 프로젝트에 대해 올바르게 이야기하는 것은 매우 좋은 신호입니다.

B. 감독

  1. 지적 재산을 보호하십시오 . 이것은 가장 큰 실수 중 하나입니다. 일반적으로 사용하는 플랫폼 (예 : vworker 또는 elance)에서 처리합니다.

  2. 사용자 정의 프레임 워크를 거부 . 또는 당신은 그것, 또는 더 구체적으로 그것을 쓴 개발자에게 묶여있을 위험이 있습니다.)

  3. 기준을 부과하십시오 . 이전 팁과 관련이 있습니다. 표준을 사용하면 많은 개발자가 이해할 수 있으므로 소스 코드의 가치가 높아집니다.

  4. 일찍 검토하고 자주 검토하십시오 . 첫 주 또는 작업 후에 소스 코드를 검토하면 대부분의 문제는 "조정"될 수 있습니다.

C. 전략

  1. 소규모 프로젝트의 테스트 제공 업체 . 제공자에게 큰 프로젝트를 제공하기 전에 하나 또는 두 개의 작은 프로젝트로 테스트합니다.

  2. 여러 입찰자를 수락하여 위험을 줄 입니다. 중요한 프로젝트의 경우 2 ~ 3 개의 입찰자를 선택한 다음 최상의 구현을 수행합니다. 소규모 프로젝트 (5000 달러 미만)에서 가장 효과적입니다.

  3. 구성 요소를 조립하십시오 . 또 다른 전략은 나중에 조립 한 구성 요소를 아웃소싱하는 것입니다. 한 가지 장점은 공급자간에 쉽게 전환 할 수 있고 실제로 모든 것에 액세스 할 수 없다는 것입니다 (지적 재산권 위험 감소).


1

나는 maple_shaft의 답변에 전적으로 동의합니다.

코드를 수락하고 수표를 작성한 다음 코드를 검토 한 후 모든 것을 거꾸로 수행했다고 가정합니다.

기능 사양없이 코드를 작성하는 데 동의 한 이유는 무엇입니까?

계약서에 작성하지 않았기 때문입니다. 일을 끝내고 싶었 기 때문에 문제를 일으킨 이유가 있지만 그 이유를 받아 들였습니다.

그들이 처음으로 모든 것을 이해했는지 확인하지 못한 이유는 무엇입니까?

당신은 그들에게 효과가 있다고 생각한 디자인을 제공해야합니다. 그렇다면 그들이 완전히 이해하지 못한다면 실제로 중요하지 않을 것입니다. 누가 그렇게하려고했는지 지불하지 않았나요? 이 코드는 설명서 및 디자인 사양없이 유지 관리되는 방법입니다. 대답 은 아닐 것 입니다.

그들은 가격이 고정되어 있기 때문에 작업 코드를 완료하면 변경을 요청하는 것이 불공평하다고 말했다.

그들이 원하는대로 변경 한 것은 운이 좋다. 그들은 말할 수 있었다 : 힘든 운

누구나 같은 입장에서 자신을 찾으십니까? 아웃소싱 프로젝트를 관리하는 더 좋은 방법이 있다고 생각하십니까?

물론 다른 사람들이 당신의 입장에 있다면, "아웃소싱"산업 전체가 아프지 않을 것입니다. 많은 회사들이 그것을하기 위해 지불해야하는 것을 깨닫기 시작했습니다. .

최소한 직접 수행하면 매일 프로젝트 상태를 확인할 수 있습니다. 당신이 뒤에 있다면 적어도 이론 상으로는 피해를 통제하기 위해 할 수있는 일이 있습니다.


1
companies are starting to realize having to pay ... to do it 3 and 4 times is more expensive then doing it right once.그것은보기보다, 난 그냥 소프트웨어 개발을 해외 아웃소싱과 업계 신혼 여행 단계가 끝나 가고 많은 기업은 그들이 생각했던 것을 금 송아지가 아니라는 것을 깨닫기 시작하고있다 (생각 하거나 것이라고 들었다 컨설턴트에 의한 것 ). 대부분의 경영진은 짜증을 내며 이유를 모릅니다. 따라서 모든 문제를 해결하기 위해은 총알을 찾습니다. 제대로 수행하면 아웃소싱은 훌륭하지만 대부분 그런 종류의 훈련이 없습니다.
maple_shaft
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.