많은 분야에서 일반적인 고객은 다음과 같습니다.
- 일일 운영 문제에 관심이 있습니다. 전략이 아닌 근거리 전술.
- 즉각적인 해결책에만 관심이 있습니다.
- 일반적으로 일차원적이고 비 추상적 인 사상가;
- 오래 지속되는 양질의 솔루션을 찾는 것과는 반대로 "일을 끝내는 데"관심이 있습니다.
솔직히 말해서, 그들은 보통 이런 생각을해야 할 충분한 이유가 있습니다. 우선, 그들은 먼 미래가 아닌 오늘과 내일 수익을 창출 해야하는 사업을 운영하고 있습니다. 둘째, 그들은 기술 전문가가 아닙니다. 그들은 무엇이 가능하고 무엇이 불가능하며, 특정 건축 / 디자인 / 구현 선택의 결과가 무엇인지 모릅니다. 이것이 우리가 아는 것입니다.
따라서 대답은 거의 놀라운 의사 소통이 아닙니다 .
상대방의 관점을 최소한 기본 수준으로 이해하도록하려면 많은 것을 의사 소통하고 서로를 교육해야합니다. 가능한 대안의 단기 및 장기 결과를 설명해야합니다. 그리고 당신은 그들이 이해하는 언어를 사용해야합니다 .
- 당신이 말한다면 "이 코드가 덜 읽을 및 확장하게 해킹 될 것" , 그들은 말한다 "그래, 무엇이든" .
- 당신이 말한다면 "이 장기적으로 개발 및 유지 보수 비용이 많이 드는 만들고, 버그 도입의 위험을 증가시킬 단기 수정 될 것" , 그들이 말하는 "는 하는의 고려하자" .
- 당신이 말한다면 이 솔루션은 지금 $ 100의 비용이 "하지만 조만간 관심 유료 다시 결합하는 기술 채무 소개합니다 $ (500), OTOH를이 다른 솔루션은 당신에게 지금 $ 400, 잎 어떤 기술 부채 비용, 사람에게 당신을 선택 원하는 " , 그들은 "지금 우리 얘기하고있다! " .
OTOH 그들은 비즈니스 관점에 대해 한두 가지를 가르쳐 줄 수 있습니다. 비즈니스 원하는 가능 하고 충분한을 - 거의 완벽하지 - 솔루션. 그리고 그들은 "완벽한 사람이 선의 적"이라는 것을 누구보다 잘 알고있을 것입니다. 따라서 기술적으로 완벽한 소프트웨어를 생산하는 것이 아니라 고객의 문제에 대한 솔루션을 제공하는 것이 우리의 임무라는 점을 명심해야합니다. 때때로이 두 가지는 동일하게 수렴하지만 더 자주는 그렇지 않습니다. 이것은 많은 사람들에게 슬픈 것으로 보일지 모르지만 그것은 비즈니스 현실입니다. 저에게있어 고객의 문제를 해결할 수 있었는데도 고객의 삶이 눈에 띄게 쉬워 졌다는 것을 알게된다면 행복합니다. OTOH 내가 생각했던 완벽한 디자인을 구현할 수 있었지만 다음 주에 회사가 파산했다면, 그것은 누구에게도 이기지 않습니까?
합리적인 비즈니스 소유자는 자신의 언어를 사용하여 설명하면 소프트웨어를 깨끗하게 유지하고, 단위 테스트를 작성하고, 리팩터링하는 것이 중요한 이유를 이해할 것입니다. 장기적인 유지 관리에 필수적입니다. 현명한 고객은 비즈니스의 장기적인 유지 관리 가능성을 염두에두고 투자 가치를 볼 때 기꺼이 투자 할 것입니다. 그러나 그들의 자원과 시간이 제한되어 있으므로 가장 중요한 것들에 우선 순위를두고 집중해야합니다. 그러나 두 사람 모두 에게 중요한 경우에만 중요 합니다.
코드가 끔찍하기 때문에 모듈 A를 리팩터링하고 싶을 수도 있습니다. 방금 읽은 디자인 패턴을 사용하여 코드를 간결하고 우아하며 깔끔하게 리팩터링하는 방법에 대해 놀라운 아이디어가 있습니다. 그러나 그 모듈을 수년간 다루지 않았고 안정적으로 작동한다면 다음 주에 매우 중요한 새로운 기능으로 확장 될 모듈 B에 집중하는 것이 가장 좋으며 많은 버그가 포함되어 있습니다. 이미.