- Michael Nygard
우리는 모두 예산 문제에 봉착합니다. 이 순간이 타당한 기술 선택이 비용 절감이라는 원칙 때문에 창 밖으로 던져지는 순간입니다. 대화는 다음과 같이 진행됩니다.
프로젝트 후원자는 “정말로 X가 필요합니까?” 라고 질문합니다.
“X”에 대해서는 시스템을 운영하기 위해 절대적으로 필요한 다른 것으로 거의 대체 가능합니다. 예를 들어, 소프트웨어 라이선스, 서버 중복, 오프라인 백업, 전원 공급 장치 등과 같은 것입니다. 마치 어른이 우리들의 모든 주머니 돈을 만화책과 풍선껌에 소진하는 것을 발견한 듯이 온정주의적인 어투로 항상 질문하지만, 진지한 어른들은 이익을 가져오는 더 많은 것을 구매하려고 합니다.
이와 같은 질문에 답하는 적절한 방식은 “예, 필요합니다.”라고 하는 것입니다. 하지만, 거의 이와 같이 답하지 않습니다.
결국, 우리는 엔지니어로 교육받았으며, 엔지니어링은 선택을 하는 것에 관한 것들입니다. 데이터 센터에 수동 전력과 값싼 인턴만 있다면 전원 공급 장치와 같은 사치가 정말로 필요하지 않다는 것을 너무나도 잘 알고 있습니다. 따라서 “예, 필요합니다” 라고 말하는 대신에, 다음과 같이 말합니다. “글쎄요, 만약 일상적인 유지보수 동안 그리고 시스템이 잘못 되어서 오류를 발생할 때마다 서버를 죽이는 것을 기꺼이 수락한다면 2차 서버 없이 할 수는 있을 테지만, 만일 오류 발견 메모리에서 에러가 발생한다면 이를 손보아야 하고, 따라서 OS 가 잘못되는 것까지 신경을 써야하는데, 이는 매 3.9 일 마다 그렇게 해야 해서 밤마다 서버를 재시작해야 할 것입니다. 인턴이 수작업 전원 발생 장치를 돌리고 시간이 날 때 마다 그러한 작업을 할 수 있습니다.”
위의 모든 것이 온전히 사실일 수도 있겠지만, 그렇게 말하는 것은 단호하게 잘못된 것입니다. 비용 담당자는 “글쎄요”라는 말을 들은 후에 바로 듣기를 멈춥니다.
문제는 여러분은 자신의 역할을 엔지니어로 바라보는 반면에, 비용 담당자는 자신이 협상 중이라고 확실하게 이해하고 있다는 것입니다. 우리는 협력 유형의 해결책을 찾는 문제를 추구하고 있는 반면에, 그들은 승패 전략적 수행을 추구합니다. 그리고 협상에서 여러분이 원하는 최종적인 사실은 첫번째 요구에 대한 허가를 얻는 것입니다. 사실, “정말로 필요합니까”라는 적절한 대답은 다음과 같습니다.
“2차 서버가 없다면 전체 시스템은 최소한 하루에 세 번 죽을 것이고, 특히 부하가 가장 많거나 임원진에게 데모를 보여줄 때 더 그렇습니다. 사실, 나머지 한쌍이 예상외로 잘못되어 있는 경우 조차도 100% 기능을 유지하려면 특정 시점에 독립적으로 하나의 고가용성 서버 쌍을 취할 수 있도록 하기 위해 실제로는 4대의 서버가 필요합니다.”
물론 3번째와 4번째 서버는 실제로 필요하지 않다는 것을 여러분과 저는 알고 있습니다. 이는 비용 담당자가 다른 것으로 주제를 변경하도록 하게 하는 역협상 전략입니다. 여러분은 판돈을 올렸고, 스스로가 바닥이 나고, 위험하고 거의 무책임하여 최소한으로 견딜 수 있는 상태에서 이미 게임을 하고 있다는 것을 보여주고 있습니다. 그리고 게다가 추가로 서버를 실제로 얻을 수 있다면 여러분은 분명 QA 환경을 제품화에 맞추도록 서버를 사용할 것이며, 다른 하나는 강력한 빌드 서버로 만들 것입니다.
원문 : 모든 아키텍트가 알아야 하는 97가지 사실 - You're negotiating more often than you think.
우리는 모두 예산 문제에 봉착합니다. 이 순간이 타당한 기술 선택이 비용 절감이라는 원칙 때문에 창 밖으로 던져지는 순간입니다. 대화는 다음과 같이 진행됩니다.
프로젝트 후원자는 “정말로 X가 필요합니까?” 라고 질문합니다.
“X”에 대해서는 시스템을 운영하기 위해 절대적으로 필요한 다른 것으로 거의 대체 가능합니다. 예를 들어, 소프트웨어 라이선스, 서버 중복, 오프라인 백업, 전원 공급 장치 등과 같은 것입니다. 마치 어른이 우리들의 모든 주머니 돈을 만화책과 풍선껌에 소진하는 것을 발견한 듯이 온정주의적인 어투로 항상 질문하지만, 진지한 어른들은 이익을 가져오는 더 많은 것을 구매하려고 합니다.
이와 같은 질문에 답하는 적절한 방식은 “예, 필요합니다.”라고 하는 것입니다. 하지만, 거의 이와 같이 답하지 않습니다.
결국, 우리는 엔지니어로 교육받았으며, 엔지니어링은 선택을 하는 것에 관한 것들입니다. 데이터 센터에 수동 전력과 값싼 인턴만 있다면 전원 공급 장치와 같은 사치가 정말로 필요하지 않다는 것을 너무나도 잘 알고 있습니다. 따라서 “예, 필요합니다” 라고 말하는 대신에, 다음과 같이 말합니다. “글쎄요, 만약 일상적인 유지보수 동안 그리고 시스템이 잘못 되어서 오류를 발생할 때마다 서버를 죽이는 것을 기꺼이 수락한다면 2차 서버 없이 할 수는 있을 테지만, 만일 오류 발견 메모리에서 에러가 발생한다면 이를 손보아야 하고, 따라서 OS 가 잘못되는 것까지 신경을 써야하는데, 이는 매 3.9 일 마다 그렇게 해야 해서 밤마다 서버를 재시작해야 할 것입니다. 인턴이 수작업 전원 발생 장치를 돌리고 시간이 날 때 마다 그러한 작업을 할 수 있습니다.”
위의 모든 것이 온전히 사실일 수도 있겠지만, 그렇게 말하는 것은 단호하게 잘못된 것입니다. 비용 담당자는 “글쎄요”라는 말을 들은 후에 바로 듣기를 멈춥니다.
문제는 여러분은 자신의 역할을 엔지니어로 바라보는 반면에, 비용 담당자는 자신이 협상 중이라고 확실하게 이해하고 있다는 것입니다. 우리는 협력 유형의 해결책을 찾는 문제를 추구하고 있는 반면에, 그들은 승패 전략적 수행을 추구합니다. 그리고 협상에서 여러분이 원하는 최종적인 사실은 첫번째 요구에 대한 허가를 얻는 것입니다. 사실, “정말로 필요합니까”라는 적절한 대답은 다음과 같습니다.
“2차 서버가 없다면 전체 시스템은 최소한 하루에 세 번 죽을 것이고, 특히 부하가 가장 많거나 임원진에게 데모를 보여줄 때 더 그렇습니다. 사실, 나머지 한쌍이 예상외로 잘못되어 있는 경우 조차도 100% 기능을 유지하려면 특정 시점에 독립적으로 하나의 고가용성 서버 쌍을 취할 수 있도록 하기 위해 실제로는 4대의 서버가 필요합니다.”
물론 3번째와 4번째 서버는 실제로 필요하지 않다는 것을 여러분과 저는 알고 있습니다. 이는 비용 담당자가 다른 것으로 주제를 변경하도록 하게 하는 역협상 전략입니다. 여러분은 판돈을 올렸고, 스스로가 바닥이 나고, 위험하고 거의 무책임하여 최소한으로 견딜 수 있는 상태에서 이미 게임을 하고 있다는 것을 보여주고 있습니다. 그리고 게다가 추가로 서버를 실제로 얻을 수 있다면 여러분은 분명 QA 환경을 제품화에 맞추도록 서버를 사용할 것이며, 다른 하나는 강력한 빌드 서버로 만들 것입니다.
원문 : 모든 아키텍트가 알아야 하는 97가지 사실 - You're negotiating more often than you think.
반응형
'Homo Architect > Things Every SW Architect Should Know' 카테고리의 다른 글
한줄의 실행되는 코드가 500줄의 명세 만큼 가치를 한다. (0) | 2009.03.26 |
---|---|
정량화시켜라 (0) | 2009.03.25 |
모든 것은 궁극적으로 실패하게 된다. (0) | 2009.03.24 |
일어서라! (0) | 2009.03.21 |
요구된 기능에서 가치 추구하기 (0) | 2009.03.21 |