Microsoft가 좋은 소프트웨어를 만들수 밖에 없는 이유
늦은 Summit 후기네요. Summit의 꽉꽉찬 스케줄로 인해 이제셔야 포스팅을 올립니다.
행사 둘째/셋째날은 직접 Visual Studio Team System (VSTS)을 만든 개발자들과의 세미나, 미팅, 회의 시간을 가지는 날입니다. VSTS 관련 제품의 신기능과 이야기를 알려드리고 싶지만.. 내부 기밀이라 어떻게 말씀드릴수가 없네요. 기밀 사항을 외부로 알려 미국 MVP중 한명이 벌써 제명되었다고 합니다. 아쉽게도 여러분에게 드릴수 있는 말씀은 놀라운 기능들이 추가되었기 때문에, 정식 버젼을 기대하라는 말씀 밖에는 드릴수 밖에 없을듯 합니다.
대신 이 글을 통해서 Microsoft의 내부 개발자들, 환경, 문화에 대해서 언급하고자 합니다. 구글이 최고의 식사, 문화 환경을 제공한다면 Microsoft는 최고의 개발 환경을 제공합니다.
개발자 1인을 위한 개별 방, 우리 나라에서는 상상할수 없는 ‘ㄱ’자의 넓은 책상들.., 그리고 좋은 자연 경관을 볼수 있는 창문이 있을 뿐만 아니라, 휼룡한 멘토들과 많은 회의를 하면서 고급 개발자, 테스터 등으로 성장할 수 있는 회사입니다. 경력 관리로는 가장 이상적인 회사라고 생각이 듭니다. 물론 봉급은 다른 회사가 더 많이 줄수도 있겠죠 ^^.
Microsoft사의 거대한 제품들 하나 하나가 단지 몇명의 개발자들로 인해 만들어지고 있다는 점이 놀라웠습니다. 우리나라에서는 몇십명이 해야 될일은 단 한명의 개발자가 만들다니.. PM 1명에 각 Edition (DataBase , Architecture, Test ) 별로 1~2 명의 개발자가 개발하고 있다니…. 개발자의 개인 역량이 매우 대단하다는 것을 느낄수 있었습니다. 그리고 PM은 단지 개발자가 좋은 프로그램을 만들수 있는 환경과 다른 팀들 (WCF, WPF)과 협의를 할때 창구가 되어줌으로써 최대한 개발자를 고려한 문화가 매우 부러웠습니다. Project Management 보다는 People Management에 가까운 문화라고 할까요..
그 만큼 개발자들에게 많은 자유를 부여해, 세부적인 기획, 설계, 구현을 다 담당하기 때문에.. 개발하는 개발자 역시 자신이 만든 프로그램이 전세계의 개발자들이 다 사용할 것이라는 기쁨, 이러한 것들이 큰 동기부여가 되어 정말 즐겁게 개발하는 모습을 본거 같습니다. 그럼 이 면에 숨어있는 개발 프로세스에 대해서 애기를 나누어 보도록 하죠.
MIcrosoft 제품은 한 Iteration 마다 끊임없이 고객의 피드백을 받게 되어 있고, 아주 체계적으로 프로세스화 되어 있는 회사이죠.
Code Complete에서 언급하는 것과 같이, 총 10개의 기능을 구현해야 한다면 먼저 2개의 기능을 구현합니다. 그냥 모듈이 아니라 소프트웨어로 동작하는 형태로 일부 기능을 먼저 만들어 낸다는 것입니다. 그래서 이 2개의 기능을 만든 다음 CTP 버젼을 만들어 MVP나 관심있는 고객에게 배포를 합니다. 그래서 피드백을 받는 거죠. 그리고 다음 Iteration에서는 고객의 피드백을 받아 기존의 2개의 기능을 수정하고 추가적으로 새로운 2개의 기능을 추가해 4가지의 기능이 동작하는 제품을 만듭니다. 그 다음 또 피드백을 받아서 4개의 기능을 수정하고 2개의 기능을 추가해 6개의 기능을 구현하는 형태로 진행되어 집니다. 당연히 고객과 MVP의 피드백을 끊임없이 받았으니 소프트웨어의 질은 매우 좋을수 밖에 없죠.. 위 그림의 Iternal Release가 여기에 해당되는 것입니다.
그런데 이런 프로세스는 또 하나의 장점을 가져 옵니다. 동작하는 소프트웨어 기반으로 기능을 계속해서 추가하다 보니 시장의 변화에 탄력있게 대처할수 있다는 것입니다 . 예를 들어 총 10개중 6개의 기능을 구현하고 다음 Iteration에 들어갈려는 순간 경쟁사가 비슷한 기능의 소프트웨어를 내 놓았습니다. 그럼 경쟁사가 제공하는 어떤 기능만을 빨리 추가하고 바로 제품으로 내놓는다는 것입니다. 원래의 목적인 10개의 기능을 구현하지 않고 바로 경쟁사의 요구에 탄력적으로 대응한다는 것이지요.
그리고 Microsoft는 우리나라에서 상상도 못하는 품질 위주의 Software 정책을 추구하고 있다는 점입니다.
Time = Quality + Function
소프트웨어의 많은 기능과 양질을 추구 할수록 더 많은 시간을 요구한다는 절대적인 진리를 한번은 들어보셨을 겁니다. 우리나라의 많은 프로젝트들은 제한적인 시간이 주어진다면 위 두 요소중에 무엇을 선택할까요? 정답은 Function 입니다. 우리나라는 기초 기술보다 SI 위주의 소프트웨어가 많기 때문에, 당연히 갑과의 계약을 위반하지 않을려면 어떠한 일이 있더라도 모든 기능을 다 구현해야 됩니다. 그렇기 때문에 소프트웨어의 질(Quality)에 상대적으로 집중할수가 없습니다 .
반면 Microsoft는 기반 기술 위주의 SW를 개발하기 때문에, Quality를 중요시하는 형태로 소프트웨어 정책을 가져갈수 있습니다. 그 예로 윈도우즈 2000과 같이 Testing을 통과하지 못하면 1년동안 출시 시간을 지연하거나 Vista와 같이 출시 시간이 맞추지 못하면 File System 의 기능을 빼 버리기도 합니다. 이것은 매우 신선한 선택입니다. 어쩔수 없는 상황에서도 품질을 중요시 하는 소프트웨어를 만들겠다는 철학이 담겨 있기 때문입니다.
이러한 기업문화를 가졌기 때문에 지금의 Microsoft가 있지 않았을 까요?
이글의 연장 선상으로 과거 Microsoft 직원이 경험했던 제품 출시 이야기인 Shipping Software: The End Game 을 읽어 보시길 바랍니다.
잡담 ..
제품 Feedback 때문에 MVP들과 실제 제품을 만드는 개발자 간에 혈전에 가까운 말다툼이 있었습니다. 이러한 기능을 왜 추가하지 않았냐고 당당히 요구하기도 하면서 20분간의 Dabate가 있었습니다. 이것이 고객의 피드백이다 라고 확실히 비판하고 요구하는 모습이 너무 멋있었습니다.
Microsoft VSTS 팀이 약간 소극적인 답변을 주자 자신의 의견을 관철 시키기 위해 참가한 수많은 MVP들에게 내 말에 동의하는 사람 손을 들어보라고 요청을 했습니다. 그후 80%가 넘는 사람이 손을 듣자 그는 이것이 우리의 피드백이다. 라고 소리쳤습니다. 좋은 소프트웨어를 만들기 위해 압력을 행사할 수 있는 권한이 MVP에게 주어지다니 신선한 충격이었습니다.
그리고 때로는 우리가 생각지도 못하는 엄청난 기능들에 다 일어서서 기립박수를 치면서 감사함을 표시하는 모습까지 ,당근과 채찍을 겸하면서 자신의 요구를 관철시키는 MVP의 힘 역시 색다른 경험이었습니다.
우와! 정말 흥미로운 경험이셨을 것 같아요!
뒤쪽에 팔짱끼고 있는 분들이 VSTS팀 분들인가요?
와아
역시 그렇군요
좀 프리해보입니다 -_
하이 리원군 그렇다네. 진짜 VSTS 팀이야!!
날 믿어줘~~ 속고만 살았니 ^^
Digital Angel Master님 방문해 주셔서 감사합니다.
모든 분야를 다 섭렵하시는 군요.~~
대단하십니다.~~
9개 플랫폼 53가지 언어로 Hello world를 찍었다고 해서 모든 분야를 “섭렵”한거라 보시면 곤란합니다.
관심분야가 많은만큼.. 겉핥기식이 되어버렸으니까요..
마이스터가 되고 싶습니다..
제 블로그 방문해 주셔서 감사합니다..
멋집니다.
저런곳 한번 방문할 기회를 가졌으면….
>>황제펭귄님..
Microsoft MVP가 되면 가능해집니다. ^^ 열심히 지식을 외부로 공유하시고 활동하시게 되면 말씀해 주세요.
추천해 드리도록 하겠습니다. ^^
그럼 수고하시구요.
방문해 주셔서 감사합니다…
[…] 포스팅인 “Microsoft 가 좋은 소프트웨어를 만들수 밖에 없는 이유“에서 언급한 것과 같이 땅콩 버터 (기본적인 기능부터 구현해서 […]
다시 봐도 멋지고,,우리나라의 수 많은 개발자들이 바라고 바라는 그러한 환경이 아닐까요?