릴리스 규모 산정
보내주시는 모든 피드백에 대해 감사드립니다. 대부분의 피드백들이 긍적적이라 더욱 감사하게 됩니다. 저는 댓글을 통해 함께 토론해 왔던 팀원들과 더불어 보내주신 메일에 답장을 드리기 위해 최선을 다하고 있습니다. 모든 분들이 너무나 훌륭하게도 특정 문제에 대해서 바라는 점이나 요구 사항에 대해서 본인들의 견해를 공유하여 주고 계십니다. 저는 그러한 메일들을 받거나 댓글들을 읽는 것이 너무 좋습니다. 정말 환상적인 일입니다. 다만, 보내주신 메일에 제가 일일이 답장한다는 것이 불가능하다는 것을 여러분들이 알아주셨으면 합니다. 이러한 메일이나 댓글은 저희가 앞으로 어떤 글을 블로그에 올려야 하는지를 제시해주는 하나의 기준으로 소중히 활용될 것입니다. 저희와 함께 해주시는 여러분들의 따뜻한 성원에 팀 전체가 감사드리고 있습니다. 저희는 앞으로도 계속해서 많은 열정적인 토론들이 진행되리라는 것을 알고 있으며, 그런 토론들을 시작하게 되어서 정말 기쁩니다.
이 글을 올리면서 저는 “Windows 7팀 내부에서” 저희가 생각하는 방식으로 대화를 계속해 나가기를 희망합니다. 이것은 팀을 확장하는 것이며 릴리스를 계획함에 있어 저희가 진행하는 토론의 많은 부분에 있어 여러분들이 참여할 수 있는 기회를 만드는 것입니다. 주요 릴리스 또는 소규모 릴리스와 관련해서 여러분들과 나누는 이런 대화는 계획을 시작하면서 제가 제 상사와 나눈 것과 거의 똑같습니다. :-)
릴리스에 대한 계획 수립을 시작했을 때 저희가 첫번째로 결정해야하는 것은 Windows 7 클라이언트가 “주요 릴리스”가 될 것인지의 여부라고 생각하실 수 있습니다. 제가 “주요 릴리스”라고 인용 부호를 사용하여 강조한 것은 이것은 실제로 여러분들이 결정하는 것이 아니며 또한 하나의 정답만으로 결론지어질 수 있는 것이 아니기 때문입니다. 릴리스의 규모는 그 제품에 포함되는 기능 그 자체뿐만 아니라 그 기능들에 대한 여러분들의 관점과 관련된 것이기도 합니다. 주요 릴리스라고 선언하는 것이 의례적인 게 아니냐고 하실 수도 있습니다. 제품을 계획하는 엔지니어로서 저희들은 우선 이번 제품을 위해 일하게 될 저희 개발팀의 비율과 일정의 범위를 정하였습니다. 당연히 저희들도 이번 제품이 주요 릴리스인지 아닌지에 대한 의견을 내고 싶긴 하지만, 고객 개개인이 그 결과물을 손에 놓고 각자의 기준에 따라서 이번 제품이 주요 릴리스인지 아닌지를 판단할 것입니다. Server blog를 통해서 저희들은 일정에 관해 논의한 바 있으며 또한 Windows 7 클라이언트와 서버 제품에 대한 저희들의 의견을 공유하였습니다.
저희들의 목표는 Windows 7이라는 릴리스를 성공적으로 출시하는 것입니다.
어느 고객이든 항상 다음과 같은 관점을 가지고 있는 것을 볼 수 있습니다. 즉, 실질적으로 자신을 위한, 자신에게 필요한 기능들을 갖추고 있으면 주요 릴리스라고 보고, 자신을 위한 기능이 아무것도 없으면 소규모 릴리스라고 보는 것입니다. 그렇게 본다면 주요 릴리스를 계획하는 것은 사실 무척 쉬운 일이 되어야 합니다. 즉, 모든 사람들을 만족시킬 수 있는 바로 그 기능들을 갖추기만 하면 되는 것입니다. 그리고 성능에만 촛점을 둔다면, 비록 다른 사람들이 원한다 할지라도 그 릴리스는 어떠한 부가 기능도 가질 수 없는 것입니다. 엔지니어로서 이와 같은 디자인 프로세스는 실제로 불가능하다는 것을 저희는 잘 알고 있습니다. 정확히 반대의 기능들을 원하는 고객들을 종종 발견할 수 있기 때문입니다. 사실, 이 글을 쓰면서 저는 두 통의 메일을 잇따라 받았는데, 하나는 “아무도 터치 스크린에 대해서는 신경쓰지 않습니다. 무의미해요.”라는 내용이었고, 다른 하나는 “Windows 7에는 좀 더 기술적으로 진보되고 견고한 터치 기능이 필요합니다.”라는 내용을 담고 있었습니다. 여러분들이 체계적이지 못하고 불필요한 입력 체계만을 가지고 있다면, 이와 같이 정반대의 의견들을 꽤 보시게 될 것입니다. 저는 여러분들이 블로그의 댓글을 통해서도 이것을 인지할 수 있으리라 확신합니다.
자, 그럼 고객 유형별로 릴리스 규모에 대해 어떻게 생각하는지 그 다양성에 대해 살펴보도록 하겠습니다. 여기서는 최종 사용자, 개발자, 파트너, IT전문가 그리고 영향력 집단 (influentials)이라는 유형의 고객들을 살펴볼 것입니다. 물론 이들이 고객 유형의 전부는 아닙니다.
최종 사용자는 릴리스의 규모를 결정하는 관점에서 보면 일반적으로 가장 명확한 고객 유형입니다. 만약 최종 사용자들이 새 PC를 사거나 업그레이드하기를 원하고 있다면, 그들에게 릴리스는 아주 중요한 것이 되고 우리는 그것을 주요 릴리스라고 부를 수 있을 것입니다. 이 기준은 정말 간단해 보이고 주요 릴리스는 모든 사람에게 적합한 것이 됩니다. 반면에 어떤 제품이 진짜 훌륭해서 사람들이 모두 그 제품을 구입하기를 원하지만, 동시에 그들은 기존의 PC를 계속해서 사용하기를 원하고 그 릴리스는 더 많은 메모리, 호환되지 않을 수도 있는 드라이버 업데이트, 또는 완전히 인식 가능한 특정 하드웨어를 필요로 하는 상황을 생각해 볼 수 있습니다. 그렇다면, 주요 릴리스는 긍정적이라기보다는 일종의 시도처럼 되어 버려서 약간 빛이 바래져 보일 것입니다. 물론, 우리 모두는 사용자들이 진짜 원하는 것은 그들이 원하는 하드웨어 상에서 그들이 원하는 모든 것이 작동되는 것이라는 것을 알고 있습니다. 그런 제품을 만들어 낸다면 주요 릴리스인지 아닌지에 상관없이 정말로 구입할 만한 가치가 있는 대단한 제품이겠지요.
개발자들은 릴리스를 조금 다른 시각으로 바라봅니다. 개발자들은 어떤 제품이 그들의 소프트웨어에서 이용할 만한 새로운 API들과 성능들을 가지고 있다면 그것을 메이저 릴리스로 생각할 것이 분명합니다. 이러한 관점에서 보면 개발자들도 명확한 기준을 가진 고객이라 부르기에 충분합니다. 또한 이전 릴리스가 많은 새로운 API들을 가지고 있었고 개발자들은 그것들을 사용하는 데 점점 익숙해져 가고 있어서, 그들이 실제로 원하는 것은 API들을 아주 잘 다루게 되고 성능을 향상시킬 수 있도록 하는 것이라는 상황도 가능합니다. 따라서 어떤 분들은 첫번째 릴리스는 주요 릴리스이고 두번째 것은 소규모 릴리스라고 생각하실 수도 있습니다. 그러나 소프트웨어 제품들의 역사를 보면 이런 소규모 릴리스 자체가 주요 릴리스가 되었던 경우가 있습니다. Windows 3.1, Office 4.2 또는 심지어 Windows XP SP2도 이 범주에 속한다고 볼 수 있습니다. 이런 제품들은 어느 경우에서나 개발자들 대상으로는 “소규모” 릴리스였지만 시장의 관점에서는 “주요” 릴리스였습니다. 개발자들이 새로운 API들을 사용하기 원하는 이유는 제품을 차별화거나 그들의 에너지를 자신의 전문 영역에 집중하려는 것이지, 단순히 호출하기 위해 그저 아무 생각없이 새로운 API들을 호출하는 것이 아닙니다. 이런 의미에서 만약 ISV가 새로운API들을 사용하여 그들에게 중요한 사항들에 집중적으로 공략할 수 있는 충분한 시간이 주어진다면 그 릴리스는 주요 릴리스가 될것입니다.
파트너는Windows 에코시스템 상에서 PC, 하드웨어 및 인프라를 만드는 사람들의 광범위한 집합을 대표합니다. 파트너들은 주요 릴리스에 대해 그것이 창출하는 기회의 관점에서 생각하는 경향이 있습니다. 그래서 그들에게 주요 릴리스란 바뀐 게 많아서 고객들에게 새로운 하드웨어나 인프라를 제공할 기회를 줄 수 있는 것입니다. 반면, 어떤 파트너에게는 주요 릴리스라는 것이 새로운 Windows제품의 호환성을 갖추기 위해서 과거의 기술이나 제품을 계속 사용할 수 없고 수정 과정을 거쳐야 하는 것이라면, 이전 제품이나 기술과 호환되지 않는다는 것은 결코 긍정적으로 보여지지 않을 것입니다. 어떤 이유에서든 파트너들이 그 릴리스를 위해 필요한 작업을 수행하지 않기로 결정한다면, Windows 에코시스템의 지원이 없기 때문에 그 릴리스는 주요 릴리스로 간주되지 않을 것입니다. 따라서 어떤 변경이 이루어졌는지에 따라 주요 릴리스인지 아닌지의 여부가 결정된다고 할 수 있습니다.
IT전문가들은는 대부분 본질적으로 보수적인 특성을 가진 사람들이어서 변경에 대해서도 보수적인 시각을 가지고 있습니다. 역할의 본질에 촛점을 둔 비지니스이기 때문에, 어떤 소프트웨어 제품이든 투자에 대한 수익이라는 맥락에서 이를 평가하게 될것입니다. 따라서 IT전문가들에게 주요 릴리스란 중요한 비지니스 가치를 가져다 주는 어떤 것이 될 것입니다. 예를 들어 이런 비지니스 가치는 소프트웨어의 개발과 관리에 대한 중요한 투자로 정의될 수 있을 것입니다. 그러나 이와 같은 특징들은 최종 사용자들이나 개발자들에게는 주요 릴리스인지 아닌지를 평가하는 데 있어 전혀 가치가 없는 것일 수도 있습니다.
영향력 집단(Influentials) 은 우리가 만드는 소프트웨어에 대해 그들의 견해나 분석, 조언을 제공하는 비지니스에 종사하는 모든 사람들을 말합니다. 이런 사람들은 흔히 변경이라는 잣대로 릴리스를 평가합니다. 즉 대규모 변경은 주요 릴리스를 의미하는 것이 됩니다. 대규모 변경이란 우리가 Windows 9x에서 Windows 2000으로의 전환에서 본 것과 같은 구조 변경이 될 수도 있습니다. 겉으로 볼 땐 똑같았을지 몰라도, 뚜껑을 열어보면 엄청난 변경 사항들이 있었습니다. 따라서 평론가들이나 분석가들에게 그것은 분명히 주요 릴리스였습니다. 대규모 변경이란 사용자 인터페이스에 대한 대규모 변경이 될 수도 있습니다. 왜냐하면 사용자 인터페이스에 대한 변경은 수많은 토론을 유발하고 이를 통해 무엇이 바뀌었는지를 쉽게 알 수 있기 때문입니다. 그러나 구조 변경이든 사용자 인터페이스 변경이든, 주요 릴리스는 긍정적인 것으로 여겨지지 않을 수도 있습니다. 구조 변경은 잠재적으로 호환성의 불일치를 의미하는 것이고, 새로운 사용자 인터페이스란 친숙한 것으로부터 벗어나 새로운 것을 배워야 한다는 것을 의미할 수 있기 때문입니다.
저희는 주요 릴리스라는 의미에서 Windows구조 변경에 대해 이야기하는 많은 댓글을 보았고 수많은 전자 메일을 받았습니다. 저희는 또한 이전의 릴리스를 완벽히 지원하면서 변화를 불러오는 새로운 제품을 어떻게 만들 것인가에 대한 많은 피드백을 받았습니다. 일반적으로, 사람들은 흔히 우리가 그와 같은 일을 할 수 있다면 수많은 다른 혜택들이 뒤따를 것이라고 은연중에 생각하기 마련합니다. 예를 들면 “구조 변경을 하면 성능이 더 좋아질 것이고,” “이전 릴리스를 대신하여 새 릴리스를 사용하면 더 적은 메모리를 사용할 수 있을 것”이라고 합니다. 이것은 언제나 논쟁하기 쉽지 않은 부분입니다. 왜냐하면 저희는 이미 알려진 상태와 우리가 수정한다고 알고 있는 모든 것들을 수정하고 있는 중의 상태를 비교하고 있지만, 저희는 어떤 것을 새로 도입하고 그 기능에 어떤 문제가 있으며 어떤 문제를 수정하지 않을 것인지에 대해 아직은 모릅니다. 따라서 완성이라는 것에 비례하여 주요 릴리스를 정의하기보다는 무엇이 되었든 완성을 통해서 얻게 되는 것들의 혜택에 비례해서 릴리스의 성공을 정의하는 것이 보다 합리적이라고 생각합니다. 저희는 분명히 이런 부분에 대하여 해야할 이야기들이 참 많기 때문에 이와 관련된 내용을 지속적으로 다룰 것입니다.
핵심은 언제나 균형입니다. 변경된 내용들을 잘 소화할 수 있도록 모든 필수 고객들을 준비시킬 수 있다면, 저희는 모든 고객들을 위해 대규모의 변경을 진행할 수 있을 것입니다. 적절한 때에 적절한 변경을 한다면 작은 변경으로도 큰 효과를 만들 수 있고, 그것들은 시간이 지나면 주요 릴리스로 기록될 것입니다.
지금까지 팀을 구성하는 시점과 방법에 대해 이야기했습니다. 따라서 여러분들은 어떤 과정을 통해 프로젝트가 수행되는지 어느 정도 이해하셨을 것입니다. 만약 우리가 제대로 귀를 기울였고 정확하게 우리의 노력에 집중했다면, 각 유형의 고객들에게 제품을 가치있게 만드는 무언가를 제공하게 될 것입니다. 그리고 만약 우리가 제품에 관해 효과적으로 커뮤니케이션하면서 일을 한다면, 소수의 사람들만이 혜택을 보고 있을 때 모든 사람들이 함께 혜택을 볼 수 있는 에코시스템이라는 보다 광범위한 환경에서 “문제”가 될 수도 있는 것들을 바라볼 수 있을 것입니다.
저희의 관점에 입각해서 말씀드리자면, 저희는 모든 엔지니어링 팀과 상당한 시간을 Windows 7 클라이언트 OS를 만드는 데 바쳤습니다. 그러한 헌신이 모든 면에서 Windows 7 클라이언트 OS를 중요한 제품이 되도록 하고 있습니다. 저희는 Windows 7이 정말 대단한 제품이 되도록 최선을 다할 것입니다.
저는 이 글이 각 유형의 고객 입장에서 릴리스의 규모가 어느 정도가 될지를 결정하는 것과 관련하여 관점이라는 것이 얼마나 중요한지를 이해하는 데 도움이 되었기를 바랍니다.
--Steven