민첩한 프로젝트에서 고객 / 개발자 문화 불일치 처리


11

민첩성의 신조 중 하나는 ...

계약 협상을 통한 고객 협업

... 또 다른 하나는 ...

프로세스 및 도구에 대한 개인 및 상호 작용

그러나 적어도 고객과의 상호 작용과 관련하여 볼 때 근본적인 문제가 있습니다.

고객의 사고 방식은 소프트웨어 엔지니어의 사고 방식과 다릅니다

그것은 약간의 일반화 일 수 있습니다. 논란의 여지가 있는 이 반드시 사실이 아니다 어디 비즈니스 도메인 --- 이들은 극소수 불구 사이. 많은 분야에서 일반적인 고객은 다음과 같습니다.

  1. 일일 운영 문제에 관심이 있습니다. 단거리 전술 ... 반드시 전략은 아닙니다.
  2. 당연히 즉각적인 해결책에만 관심이 있습니다.
  3. 실용적 사상가, 추상적 사상가;
  4. 솔루션이 미래의 관심사를 어떻게 지원할 것인지를 고려하는 것보다 "일을 끝내는"것에 훨씬 더 관심이 있습니다.

반면에 이상적으로 민첩성을 실천하는 소프트웨어 엔지니어는 다음과 같습니다.

  1. 품질에 대해 많이 생각하는 사람들;
  2. 약간의 선행 작업이 얼마나 많은 노력을 절약 할 수 있는지에 대해 감사하는 개인;
  3. 경험 있고 분석적인 사상가.

따라서 "고객 협업"을 방해하는 문화 불일치가있는 것 같습니다.

이것을 해결하는 가장 좋은 방법은 무엇입니까?


1
조건화 형성 - en.wikipedia.org/wiki/Shaping_%28psychology%29 - 힌트 : 당신이 그 (것)들에게 도넛을 제공하기 전에 당신이 리모콘을 사용하는 경우 너무 명백하다.
jfrankcarr

3
나는 이것을 투표하고 싶었다. 그러나 나는 당신이 이것을 시도하려는 고정 관념을 읽습니다. 애자일하고 좋은 고객을 만드는 나쁜 프로그래머도 있습니다. 아마도 당신은 당신이 가진 편견에 대한 편견 대신에 당신이 겪고있는 어려움을 포함시키기 위해 질문을 재 작업 할 수있을 것입니다.
SoylentGray

3
당신의 고정 관념은 당신의 큰 자기애 적 의견을 배신합니다. 나는 당신이 어떤 고객을 성공적으로 다룰 수 있다고 생각하는 사람은 생각하지 않습니다 . 엔지니어와 함께 일하는 것은 나쁜 이름을주는 일종의 쇼비니즘 적 태도 일뿐입니다. 좋은 성과 있길 바래요.

1
@Chad 이것은 질문자의 선입견에서 비롯된 것이 든 아니든 질문에 유용한 관점이 될 수 있습니다. 좋은 엔지니어가 나쁜 클라이언트와 상호 작용하는 방법에 대한 생각은 관련이 있고 흥미로운 사례입니다. 어쨌든 우리는 엔지니어가 제품을 열등 히 다루고 좋은 클라이언트가 필요를 없애기 때문에 나쁜 엔지니어가 이것을 처리하는 방법에 신경 쓰지 않을 것이라고 주장 할 수 있습니다 이 질문. 이는 좋은 개발자가 나쁜 클라이언트를 어떻게 다루어야 하는가에 대한 문제로 남게됩니다. 어쩌면 그 말은 강력하게 들리지만 질문은 여전히 ​​유용합니다.
Chris Bye

@Slothsberry-질문은 해당 하위 집합에 대한 범위를 지정할 수 있음을 이해합니다. 그것이 단계적인 방식이 아닙니다. 민첩하게 연습하는 모든 개발자가 좋고 대부분의 고객이 나쁘다는 것을 읽었습니다.
SoylentGray

답변:


27

많은 분야에서 일반적인 고객은 다음과 같습니다.

  • 일일 운영 문제에 관심이 있습니다. 전략이 아닌 근거리 전술.
  • 즉각적인 해결책에만 관심이 있습니다.
  • 일반적으로 일차원적이고 비 추상적 인 사상가;
  • 오래 지속되는 양질의 솔루션을 찾는 것과는 반대로 "일을 끝내는 데"관심이 있습니다.

솔직히 말해서, 그들은 보통 이런 생각을해야 할 충분한 이유가 있습니다. 우선, 그들은 먼 미래가 아닌 오늘과 내일 수익을 창출 해야하는 사업을 운영하고 있습니다. 둘째, 그들은 기술 전문가가 아닙니다. 그들은 무엇이 가능하고 무엇이 불가능하며, 특정 건축 / 디자인 / 구현 선택의 결과가 무엇인지 모릅니다. 이것이 우리가 아는 것입니다.

따라서 대답은 거의 놀라운 의사 소통이 아닙니다 .

상대방의 관점을 최소한 기본 수준으로 이해하도록하려면 많은 것을 의사 소통하고 서로를 교육해야합니다. 가능한 대안의 단기 및 장기 결과를 설명해야합니다. 그리고 당신은 그들이 이해하는 언어를 사용해야합니다 .

  • 당신이 말한다면 "이 코드가 덜 읽을 및 확장하게 해킹 될 것" , 그들은 말한다 "그래, 무엇이든" .
  • 당신이 말한다면 "이 장기적으로 개발 및 유지 보수 비용이 많이 드는 만들고, 버그 도입의 위험을 증가시킬 단기 수정 될 것" , 그들이 말하는 "는 하는의 고려하자" .
  • 당신이 말한다면 이 솔루션은 지금 $ 100의 비용이 "하지만 조만간 관심 유료 다시 결합하는 기술 채무 소개합니다 $ (500), OTOH를이 다른 솔루션은 당신에게 지금 $ 400, 잎 어떤 기술 부채 비용, 사람에게 당신을 선택 원하는 " , 그들은 "지금 우리 얘기하고있다! " .

OTOH 그들은 비즈니스 관점에 대해 한두 가지를 가르쳐 줄 수 있습니다. 비즈니스 원하는 가능 하고 충분한을 - 거의 완벽하지 - 솔루션. 그리고 그들은 "완벽한 사람이 선의 적"이라는 것을 누구보다 잘 알고있을 것입니다. 따라서 기술적으로 완벽한 소프트웨어를 생산하는 것이 아니라 고객의 문제에 대한 솔루션을 제공하는 것이 우리의 임무라는 점을 명심해야합니다. 때때로이 두 가지는 동일하게 수렴하지만 더 자주는 그렇지 않습니다. 이것은 많은 사람들에게 슬픈 것으로 보일지 모르지만 그것은 비즈니스 현실입니다. 저에게있어 고객의 문제를 해결할 수 있었는데도 고객의 삶이 눈에 띄게 쉬워 졌다는 것을 알게된다면 행복합니다. OTOH 내가 생각했던 완벽한 디자인을 구현할 수 있었지만 다음 주에 회사가 파산했다면, 그것은 누구에게도 이기지 않습니까?

합리적인 비즈니스 소유자는 자신의 언어를 사용하여 설명하면 소프트웨어를 깨끗하게 유지하고, 단위 테스트를 작성하고, 리팩터링하는 것이 중요한 이유를 이해할 것입니다. 장기적인 유지 관리에 필수적입니다. 현명한 고객은 비즈니스의 장기적인 유지 관리 가능성을 염두에두고 투자 가치를 볼 때 기꺼이 투자 할 것입니다. 그러나 그들의 자원과 시간이 제한되어 있으므로 가장 중요한 것들에 우선 순위를두고 집중해야합니다. 그러나 두 사람 모두 에게 중요한 경우에만 중요 합니다.

코드가 끔찍하기 때문에 모듈 A를 리팩터링하고 싶을 수도 있습니다. 방금 읽은 디자인 패턴을 사용하여 코드를 간결하고 우아하며 깔끔하게 리팩터링하는 방법에 대해 놀라운 아이디어가 있습니다. 그러나 그 모듈을 수년간 다루지 않았고 안정적으로 작동한다면 다음 주에 매우 중요한 새로운 기능으로 확장 될 모듈 B에 집중하는 것이 가장 좋으며 많은 버그가 포함되어 있습니다. 이미.


3
와, 실제로 기술 부채를 피할 고객이 있습니까? 내가 가진 것의 대부분은 '100 달러가 될 것입니다. 그래요.
sevenseacat

글쎄, 그게 까다 롭지 않습니까? "충분히 좋은"것이 무엇이며, 비즈니스 제품 / 시스템의 중장기 건강에 시간을 투자 할 때 수익이 감소하기 시작하는 곳은 어디입니까? 나는 그것이 전문가가 전화를 걸기위한 것이라고 주장 할 것이다.
Eric Smith

2
@Karpie, 그렇습니다. 기술 부채가 실제로 무엇을 의미하는지 (일반적으로 어려운 방법) 배운 고객이 있습니다.
Péter Török

2
@EricSmith, 예. 정답이없는 퍼지 결정입니다. 우리 개발자들은 사물의 기술적 결과를 이해합니다. 고객은 예산 및 비즈니스 한계를 알고 있습니다. 이상적으로는 각 기능 / 작업 비용이 얼마인지를 알려줍니다. 고객은 각각의 가치와 비용에 따라 우선 순위를 정합니다. 가장 시급한 문제를 하나씩 해결하면서 시스템을 계속 작동시켜야 할 때 항상 타협이 있습니다.
Péter Török

3
사용자가 의사 소통을 거부하는 회사 문화에 부딪 혔음에도 불구하고 여기서 말하는 내용에 동의합니다. 양방향 거리 여야합니다. 그렇지 않으면 성공하지 못합니다. 나는 위의 의견에서 컨디셔닝을 위해 도넛을 사용하는 것에 대해 반 농담했습니다. 때때로 당신은 참여를 얻기 위해 긍정적 또는 부정적인 강화를 사용해야합니다.
jfrankcarr

4

고객이 자신을 보는 방식 :

  • 최대한 빨리 완료해야하는 프로젝트가 있습니다
  • 나는 내 비즈니스 요구를 알고
  • 현재 비즈니스 관행을 방해하지 않는 방식으로 문제를 해결해야합니다.
  • 이 작업을 수행하기 위해 예산이 충분하지 않습니다.

반면에, 그들은 당신의 그룹을 다음과 같이 본다 :

  • 그들이 내 예산에서 돈을 빠는 것을 얻지 못하는 사람들.
  • 우리 사업의 요구를 이해하지 못한다
  • 비즈니스에서 구현하기가 더 어려워도 모든 것을 재 설계하고 싶습니다.
  • 예산이 모두 기능적이고 효과적 일 때 영리하고 매끄러운 솔루션을 원합니다.

귀하의 주요 문제는 상대방의 필요 사항을 이해하는 것이 아닙니다.


3

무엇보다도 애자일은 프로젝트의 모든 문제에 대한 해결책이 아닙니다.

고객의 사고 방식은 소프트웨어 엔지니어의 사고 방식과 근본적으로 다릅니다.

예. 때로는 사실입니다. 고객이 무엇을 어떻게 원하는지 알지 못하는 경우도 있습니다 (예 : 요구 사항이 명확하지 않음). 이제까지 무엇, 당신은 당신이 각 전력 질주 후 결과를 얻을 민첩 경우 (2 주 말) 당신은 고객의 피드백을 얻을 수있는 기회를 얻을 수와 동일한 페이지에있는 모든 있는지 확인하십시오. 이를 통해 내부적으로 신뢰 구축에 도움이되는 문제를 조기에 식별하고 해결하는 데 도움이됩니다.

또한 사용자는 미친 아이들과 같다는 말이 있습니다. 그래서 총을 요구할 때 그것이 안전하지 않다는 것을 알면 장난감 총을주는 것이 좋습니다.

이것을 해결하는 가장 좋은 방법은 무엇입니까?

내가 이미 말했듯이 모든 문제를 해결할 수있는 마술 지팡이없다 . 서로의 활동에 대해 잘 이해하려면 고객과 더 많은 관계를 맺어야합니다. 현장 방문 홍보, 피드백 공개 등

제품 소유자와 스테이크 소유자 가 스프린트 데모에 참석 하고 제품을 개선하기위한 귀중한 제안을하도록하십시오 .


1

고객으로부터 구매하지 않으면 Agile이 거의 불가능할 수 있습니다.

매수로 말하면, 주당 또는 월별 고객 대표 시간의 일정 비율을 보장받을 수 있습니다. 이 비율은 프로젝트에 따라 다릅니다.

분명히 그들은 하루 종일 일을하기 때문에 고객 담당자에게만 국한된 것이 아니라 시간을 내야하는 것은 경영진의 몫입니다.

따라서 고객 측 경영진의 동의를 얻는 것이이 문제의 핵심입니다


어떤 방법으로도 고객이 구매하지 않으면 거의 불가능합니다
Ryathal

@Ryathal-글쎄요, 그러나 Agile에 대해 설명하는 방식에서 특히 중요합니다.
ozz

0

애자일이 고객이 매일 스탠드 업 또는 다른 일상적인 애자일에 관여한다는 것을 의미하지는 않습니다. 고객 관점에서 볼 때 민첩성은 의사 소통에 관한 것입니다. 그렇다고해서 구현 세부 사항에 대해 엔지니어와 의사 소통하는 것은 아닙니다.

고객은 제품 소유자와 협력하여 지속적인 피드백을 받고 제공합니다. 주제는 기능이지만 구현 방법은 아닙니다. 적절한 기능을 제공하고 있습니까? 당신은 일정에 있습니까? 적응해야 할 요구 사항이 변경 되었습니까?

민첩한 당신과 당신의 고객이 그 질문에 대답하는 데 도움이됩니다.

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