스토리 홈

인터뷰

피드

뉴스

매니지먼트에 관심있다면 꼭 읽어야하는 글
조회수 4077

[H2W@NL] 이런 문화를 만들고 이런 사람을 찾습니다, People팀

네이버랩스에서 가장 즐거운 팀은 People팀이라는 소문이 있습니다. 인사, 채용, 조직 문화 등을 담당하는 이들이 먼저 즐겁게 회사를 다니고 있습니다. People팀 이두성 리더는 네이버랩스에 관심을 갖고 있거나, 채용 지원을 고려하는 이들에게 전하고 싶은 이야기도 많습니다. 가감없이 솔직한 1문1답을 해보았습니다.Q. 네이버랩스는 박사급 인력만 채용한다는 이야기가 있습니다. 그런가요?채용 활동 중에 정말 자주 받는 질문이에요. 가장 해소하고 싶은 오해이기도 하죠. 결론부터 말하자면, 채용 과정과 결과 모두 학력은 고르게 분포되어 있습니다.왜 그런지를 말씀드릴게요. 채용을 진행하는 팀들이 함께 일을 잘 할 수 있는 사람이라는 본질 외에는 크게 관심을 두지 않기 때문입니다. 어느 팀이든 비슷해요. 핏(fit)이 잘 맞는 분을 찾는 것이 학위보다 더 희소하고 귀합니다. 학력은 참고 자료이지 필수 요소가 아닙니다.Q. (그 핏(fit)이라는 것이 무엇인지는 잠시 후 질문하고) 처우는 어떤가요?실제로 채용 인터뷰를 하는 과정에서 상세하게 말씀을 드릴 수 있다는 걸 전제로 이야기하자면, 고수하고자 하는 원칙은 '우수한 인재는 놓치지 않는다'입니다. 우리의 기술 목표를 어디에 설정하고 있느냐를 생각해보면, 당연한 이야기입니다.Q. 채용 인터뷰 과정 중엔 어떤 이야기를 나누시나요?우리 회사의 단단한 토대와 성장의 방향성을 잘 확인하시라고 합니다. 일에 있어서도, 실제로 그 역량을 잘 펼칠 수 있는 합리적 조직 문화가 뒷받침된 회사인지가 중요할 수 있습니다. 정말 자신에게 괜찮은 회사인지 종합적으로 꼼꼼하게 따져 보길 권합니다.Q. 그런 면에서 네이버랩스는 지원할만한 회사인가요?굳이 이런 말씀을 드렸던 건, 자신이 있기 때문이죠.Q. 좀 더 구체적으로 말씀해주세요.얼마 전, 입사자 한 분이 제게 해주신 말인데요.“네이버랩스에서는, 미팅에서 이견이 있으면 누구든 스스럼없이 말해요. 그러면서 건전한 회의가 이어지는 것이 인상적이에요.”수평적 조직 문화가 일종의 트렌드죠. 그런데 실제로 정착시킨 곳이 많진 않습니다. 애초에 의지가 없었거나, 시행착오 비용을 소모하지 않으니까요. 우리는 그 과정이 이미 끝난 상태입니다. 네이버랩스에 오시는 분들은, 미팅이나 협력 상황에서 좋은 경험을 하게 됩니다. 의견을 자유롭게 개진하더라도, 상대방이 그것을 자신의 권위에 대한 챌린지로 받아들이지 않기 때문이죠. 호칭도 서로 ‘~님’으로 부릅니다. 그래서 네이버랩스 대표는 ‘대표님’이 아니라 ‘상옥님’입니다. 이런 문화가 그저 형식적인 것이 아니기 때문에 아주 자연스럽죠. 각자가 전문가라는 존중, 스스로에 대한 자신감, 더 나은 결과물을 위한 경계없는 협력이 네이버랩스의 조직 문화입니다.Q. 그게 다인가요?계속 고민하고 노력하죠. 제가 속한 People팀의 기본적인 방향성은 단순합니다. 지금 다니는 회사가, 지금 일하는 환경이 만족스럽나? 이 질문에 동료들이 'No'라고 할 것들이 있다면, 'Yes'로 변화시키는 것입니다.복리후생을 예로 들어보겠습니다. 현재 대한민국을 대표할만한 회사들은 대체로 상향평준화 되었습니다. 본인 및 가족 상해보험, 리프레시 휴가, 대출이자지원, 교육/문화 지원, 어학/운동 지원, 종합검진, 어린이집, 휴양시설, 심리상담지원 등등, 다른 곳과 비교해도 비슷합니다. 정해진 출퇴근 시간이 없는 자율적 근무 제도 역시 지금은 많은 회사에 정착되어 있죠. 그런데 정말로 느껴지는 만족감은 디테일에 있습니다. 동료들을 진심으로 신경을 쓰고 있는지에 대한 것입니다.일례로 우리는 실제 일하는 공간에 많은 신경을 기울였습니다. 집 다음으로 가장 많은 시간을 보내는 장소입니다. 편하면서도 마음껏 일에 몰입할 수 있도록 설계와 인테리어, 동선과 시설을 꼼꼼하게 만들었습니다. 혼자 있을 때 집중이 더 잘되는 분들을 위한 Holo방(1인룸)이나 심신을 릴렉스하는 Yolo방(안마의자), 쉐프님의 훌륭한 레시피를 매일 맛볼 수 있는 키친, 최고의 원두로 바리스타님이 커피를 내려주시는 사내 카페테리아, 전문 트레이너님이 상주하며 세심하게 건강을 관리해주는 GYM과 운동 프로그램, 원어민 강사님들의 1:1 영어 클래스 등은 동료들 뿐 아니라 당장 저부터 정말 좋다고 느끼는 것들입니다.공유와 성장도 네이버랩스에서 아주 중요하게 생각하는 가치입니다. 특히 내부 커뮤니케이션에 더 신경을 씁니다. 우리는 매주 금요일 네이버랩스 전직원이 모여서 회사의 아젠다를 공유하는 all-hands meeting을 합니다. 이 자리에서 각 프로젝트 경과나 회사의 중요 이슈를 공유합니다. 단순한 공지가 아닌 설명회 방식으로 진행하죠.또한, 사내 세미나도 활발합니다. 뛰어난 외부 전문가를 선별해 모시고 최신의 트렌드나 연구 결과 등을 공유하는 SLED가 연중 끊임없이 진행됩니다. 참고로 SLED는 공유(share), 배움(learn), 토론(discuss)의 약자입니다.Q. 네이버랩스와 핏(fit)이 맞는 인재는 어떤 사람일까요?지금까지 말씀드린 네이버랩스의 조직 문화는 뭔가 이상적인 것 같죠? 실제로 모두에게 좋은 환경일까요? 아닙니다. 자유롭고 편할 것 같지만, 실제로는 스스로 방향을 잡지 못하거나 헤맬 수도 있는 환경이라고 생각합니다. 그만큼 스스로 주도할 수 있어야 합니다. 게다가 팀이 없는 것처럼 협업하기 위한 유연함도 필수입니다. 경계없이 서로의 분야를 이해하며, 시너지를 높이기 위해서입니다. 우리가 인재상으로 규정하고 있는 ‘self-motivated team player’가 바로 이런 의미입니다. 이를 위해 신규 입사자의 온보딩 프로그램에도 당연히 많은 신경을 쓰고 있습니다.Q. 채용 절차와 방법은 어떤가요?홈페이지의 Career 페이지에서 현재 모집 현황을 확인하거나 채용 문의를 하고, 지원도 할 수 있습니다. 일반적인 절차는 서류 검토, 전화 면접 (필요시 코딩 테스트 진행), 1차 면접, 2차 면접, 처우 협의와 채용 검진, 채용 순으로 진행됩니다. 지원 직무를 잘 수행할 수 있는지를 확인하기 위해 경험 및 경력을 검증하는 기술 인터뷰 위주로 진행하고, 이때 우리의 조직 문화와 잘 맞는지도 면밀하게 파악합니다. 지원자 역시 네이버랩스가 어떤 곳인지 파악할 수 있는 기회이기도 하고요.Q. 마지막으로 외부의 우수한 인재들에게 전하고 싶은 이야기가 있다면?우리는 각자가 온전히 일에 몰입할 수 있도록 모든 지원을 집중하고 있습니다. 좋은 문화를 만들어 왔습니다. 그보다 좋은 건, 여전히 계속 변화하려 노력한다는 점입니다. 네이버랩스가 모든 이에게 최고의 선택은 아닐 것입니다. 다만 치열함과 열정을 잃지 않으면서도 수평적이고 자율적인 분위기에서 새로운 도전에 몰입할 수 있는 회사를 찾는 분이라면, 그곳이 네이버랩스입니다.네이버랩스의 인재상은 passionate self-motivated team player입니다. 어쩌면 '자기주도적 팀플레이어'라는 말은 형용모순(形容矛盾)일 지도 모릅니다. 하지만 우린 계속 시도했고, 문화는 계속 쌓여갑니다. 다양한 분야의 전문가들이 경계없이 협력하고 스스로 결정하며 함께 도전하는 곳의 이야기를 전합니다. How to work at NAVER LABSH2W@NL 시리즈 전체보기
조회수 2840

페이스북 광고 5가지 A/B 테스트 방법_콘텐츠편

# 이 광고 콘텐츠가 더 좋을 줄 알았는데'이 광고 콘텐츠 잘 먹힐 거 같애~' 퍼포먼스 마케터로 성장하는 과정 속에서 혼자 생각에 꽤나 괜찮은 디자인이 나오거나, 꽤나 괜찮은 카피가 나오거나, 꽤나 새로운 형태의 광고 콘텐츠를 제작했을 때 항상 속으로 위와 같은 말들을 내뱉는다. '이번 광고는 사이트 유입 단가가 낮을 거 같애, 내가 원하는 목표 전환당 비용이 꽤나 저렴해질 거 같애, 목표 전환율이 높아질 거 같애~' 라는 생각으로 광고를 집행해보면 막상 내가 예상했던 그림대로 안 움직이는 경우가 많다. 나의 감이 성과를 가져다 주지는 않았던 것이다. 주어진 시간 내에 빠르게 성과는 내야 하고 예산은 정해져 있고... 목표 전환율이 높은 광고 콘텐츠 형태를 찾기 위해서 광고 콘텐츠에도 A/B 테스트를 도입할 수밖에 없었다. 감이 아닌, 감 to the  검증을 위해서 말이다. # 광고 콘텐츠 A/B 테스트(페이스북과 인스타그램을 전제로)실험의 형태는 정말로 다양하다. 다양한 실험의 형태에서 브랜드의 서비스에 유효할 것 같은 실험 형태를 정해 놓고 보통 실험을 한다.(실험을 하는 주체에 따라서 많이 달라질 수 있을 것 같다.) 개인적으로 진행해봤던 실험들을 생각해보고 정리를 해보았다.(1) 광고 콘텐츠의 형태 단일 배너, 정사각 슬라이드, 간단한 영상, 콜랙션 광고, 인스타그램 스토리 광고 등 최초에는 리소스가 많이 들어가지 않는 선에서 실험을 진행하는 경우가 많다. 광고의 형태에 따라 광고 노출 영역이 다소 달라지긴 해서 리소스를 최소화하는 단일 배너 및 정사각 슬라이드, 소유하고 있는 영상이 있다면 영상까지 함께 집행한다. (영상이 잠재고객의 참여도가 좋다는 건 많이들 이야기 하지만, 기대하는 최종 kpi가 매체 효율뿐만 아니라 웹사이트에서의 특정 행동 전환율과 전환 단가 이기 때문에 크게 상관하지 않고 실험을 진행하는 편이다.)(2) 카피 베리에이션 동일한 디자인에서 배너에 들어가는 카피만 여러 개로 나눠서 실험을 진행하기도 한다. 그렇게 하는 이유는 광고를 집행하는 나도 어떤 메시지가 광고 매체 효율이 좋을지, kpi는 어떤 게 좋을지 사실 알 수 없기 때문이다. 실패의 확률을 줄이면서 리소스를 최소화해서 실험하는 방법 중의 하나이다. 보통 동일한 배너 디자인에 카피를 3개로 나누어 A/B/C 테스트를 한다.(3) 디자인 같은 카피 다른 디자인, 예를 들어 설명해주면 아기 화장품 제품을 광고하는데 소재에 들어가는 카피는 동일하되 디자인이 아기가 들어간 게 좋을지, 제품만 들어간 게 좋을지, 아기와 제품이 함께 들어가는 게 좋을지, 혹은 아기가 들어가는데 아기 실사가 들어가는 게 좋을지, 일러스트 느낌의 아기 이미지가 들어가는 게 좋을지를 실험해볼 수 있다. 매번 이렇게 진행할 수는 없지만, 우리에게 성과를 가져다주는 광고 콘텐츠의 형태를 찾는 단계에서 필수적이다.(4) 전면사진슬라이드 형태나, 영상 광고 집행할 때 많이 해봤던 것 같다. 영상이라 한다면 영상의 썸네일 이미지를 어떤 걸로 선택해서 하는 게 좋을지 실험을 해보는 것이고, 슬라이드 형태는 전면 슬라이드 이미지(첫 번째 카드 이미지)를 여러 개로 구분해서 실험을 해보는 것이다. 예를 들어 여성 쇼핑몰에서 여름휴가에 필요한 옷을 광고하는데 a 제품을 전면에 내세우는 게 좋을지, b 제품을 전면에 내세우는 게 좋을지 실험을 해보는 것이다.  총 5개의 카드 이미지가 있다고 가정하고, 그 중에서 전면에 배치하기에 좋은 카드 이미지가 3개가 있다고 한다면 아래 방법처럼 진행해볼 수 있다.a-b-c-d-eb-a-c-d-ec-a-b-d-e=> 초반 최적화 작업이 끝난 후에 광고 효율이 좋은 광고에 예산을 증액하고 나머지 광고는 off 하면 된다.(5) key 메시지앞서 언급했던 카피 베리에이션과 유사한 형태일 수도 있는데 조금은 다른 느낌의 실험이다. 우리 제품이나 서비스가 잠재고객에게 어필할 수 있는 요소가 다양한데 어떤 걸 보여주는 게 성과가 가장 좋을지 알아보는 것이다. 제품이나 서비스의 장점을 언급할까? 아니면, 이미 만족해서 사용하는 사용자의 후기를 보여줄까?, 아니면 할인에 대한 언급을 해줄까? 아니면 할인과 다른 내용을 합쳐서 보여줄까? 할인을 하면 할인하는 %를 보여줄까? 아니면 할인된 가격을 보여줄까 등등 카피 베리에이션과 비슷하면서도 조금은 다른 실험을 진행할 수도 있다. 예를 들어 후기의 형태로 광고를 한다면 이 것 또한 구분을 할 수 있을 것이다. 여러 명의 짧은 코멘트 후기를 나열해서 보여줄까? 아니면, 가장 괜찮은 후기 1개를 보여줄까? #실험의 전제 조건(1) KPI는 명확해야 한다. 그렇지 않으면 의사결정은 산으로 갈 수가 있다. 매체의 효율을 볼 것인가, 아니면 사이트에 유입된 후 회원가입률을 볼 것인가, 구매 전환율을 볼 것인가?, 다른 고객 행동 전환을 볼 것인가? 명확한 KPI는 정해져 있어야 한다. 광고주와 에이전시에 입장이라면 상호 간의 공유가 필요하고, 인하우스 마케터라 한다면 적어도 광고에 관여하는 누군가와는 명확한 kpi 공유가 이루어져야 한다. 그래야 데이터를 본 후 명확한 의사결정을 할 수 있고, 서로 얼굴 붉힐 일도 없을 것이다.(2) 분석할 수 있는 데이터 분석 툴이 필요하다 페이스북 픽셀을 설치해서 전환당 효과를 보든, 구글 애널리틱스로 광고 콘텐츠 별 성과 데이터를 보든, 광고 콘텐츠 A/B  테스트를 진행할 때에는 (개인적으로) 반드시 로그 분석 툴로 데이터 분석이 뒷받침 되어야 한다.(3) 상처받지 않는 기술 필요하다. 실험을 돌렸을 때 성과가 좋은 실험도 있고, 성과가 좋지 않은 실험도 있다. 반복적으로 좋지 못한 성과들을 마주할 수도 있는데 A/B 테스트에서 좋은 결과를 보기 전까지는 상처받지 않는 기술이 필요하지 않나 싶다. 퍼포먼스 마케터라면 광고를 집행하고 몇 시간마다 한 번씩 모니터링하는 경우가 많을 텐데 상처받지 말고 성공을 위한 실패로 받아들이는 기술이 필요할 것 같다. 그리고 실패에 대해서 이해할 수 있는 문화는 내부적으로나 에이전시와 광고주간에 꼭 필요하다. 개인적으로 성과가 좋지 못할 때는 잠시 이어폰을 꽂고 명상을 듣는다. 마음이 차분해진다. NEXT를 생각하게 된다. 쉽지 않지만 말이다^^광고 콘텐츠 A/B 테스트는 하면 할수록 유용하고 필수적이라는 생각이 든다. 적어도 퍼포먼서 마케터에게는 말이다. 최근에 진행해봤던 광고 콘텐츠 A/B 테스트, 그리고 A/B 테스트 후 다음 단계에서 유효한 타겟을 넓히는 작업을 진행해본 사례가 있는데 글이 너무 길어질 것 같아 다음에 다시 한번 정리를 해볼 생각이다. 누군가 이 글을 보고  광고 집행에 도움이 되길 바라는 마음이다. 그리고 추후엔 광고 콘텐츠 A/B 테스트뿐만 아니라 다양한 실험 사례들도 소개할 예정이다. 퍼포먼스 마케팅 에이전시, 오피노 바로가기
조회수 2602

[아마존 성공 사례] 2. 일일 매출 1억의 기적!

안녕하세요 대한민국 셀러들의 성공적인 아마존 진출을 도와주는 컨설팅 회사이자 대행사인 컨택틱의 이이삭 대표입니다.아마존에서 만족할만한 성과를 거둔 업체들은 각각 특정한 시점에 ‘흐름’을 타는 게 통상적입니다. 여기서 ‘흐름’이라고 했을 때, 솔직히 어느 정도 운도 필요하지만, 그 운 자체를 발생시키기 위한 사전의 노력이 들어가지 않았다고 할 수는 없습니다. 그리고 무엇보다 제가 항상 강조하지만 애초에 ‘상품 및 시장’이 좋아야 이런 기회도 생깁니다. 오늘 소개해드릴 R사는 평소에 일일 판매량이 10~20개 수준이었지만 특정한 계기로 기존의 일일 판매량이 5~10개에 비해 일일 판매량이 1200개가 나왔습니다. 이 업체에게 무슨 일이 있던 걸까요? 아마존에서 매출을 증폭시키기 위해 해볼 수 있는 것들이 몇 가지 있습니다. 그중에 이 업체는 아마존의 ‘딜’을 활용하여 매출을 증폭시킨 경우입니다.아마존 딜 이란 무엇인가?아마존에서는 딜 종류가 3가지가 있습니다: Lightning Deal, Best Deal, Deal of the Day. 각각의 딜 종류마다 특징이 다르고 장단점도 다릅니다. 간단하게만 소개해드리자면 Lightning Deal은 승인이 된다면 약속된 기일에 2~4시간 동안 활성화되며, 그 시간 동안에 소진율을 눈으로도 화면에 볼 수 있습니다. 아래에 사진으로 보여드립니다:위와 같이 특정 lightning deal이 몇 % 정도 claim (소진) 되었는지 알 수 있으며, 언제 끝나는지도 나와있습니다. Lightning deal은 신청비가 발생하며, 어느 시즌에 신청하는지에 따라 신청 비용은 $150 ~ $500 정도 발생합니다. 아무래도 Q4 시즌에는 트래픽이 급증하기 때문에 신청 비용도 그만큼 상승하기 마련입니다. 가장 큰 단점은 본인이 원한다고 해서 lightning deal을 할 수가 없다는 것입니다. 아마존 시스템이 내 상품에 대하여 역제안이 들어와야 하며, 그때에서야 비로소 역제안 들어온 나의 특정 상품에 대해서만 lightning deal 신청이 가능합니다.Best Deal과 DOTD (Deal of the Day)는 신청 비용은 없지만, 아마존 코리아를 통해서만 신청이 가능한 ‘제한적인’ 딜 구좌입니다. 각 딜 종류마다 할인 조건과 자격조건 등이 다양합니다. 딜에 대한 자세한 포스트는 다른 칼럼에서 다루기 때문에 이 포스팅에서는 이 정도로만 소개하겠습니다.아마존 딜을 활용한 매출 증폭 사례R사는 자격조건이 가장 까다롭고 맞춰야 하는 할인율이 가장 높은 DOTD를 신청했고 승인까지 되었습니다. 이 업체는 평소 일일 판매량이 5~10개 수준이었으나, 이 하루 동안 1200개 정도의 상품이 팔렸으며 단 하루 동안 발생한 매출이 무려 대략 10만 불(1억 원)이었습니다.이 사례를 통해 제가 개인적으로 느끼고 여러분들께 말씀드리고 싶은 것은, ‘반응이 있는 상품은 어느 정도 판매량이 일어나야 반응이 있다는 판단을 할 수 있는 걸까?’에 대한 답변과, 그런 ‘반응이 있는 제품’을 대상으로 바라봐야 할 마음가짐과 행동지침입니다. 3개월, 6개월 동안 기본적으로 PPC도 해보고, 랭킹 작업도 해보고, 후기도 어느 정도 쌓였음에도 불구하고 일일 판매량이 꾸준하게 5~10개조차 나오지 않는다면, 이런 제품은 Off-Amazon 마케팅을 해도, 딜을 돌려도 반응이 좋지 않을 확률이 그만큼 높습니다. 하지만 만약 그렇게 꾸준하게 판매량이 받쳐준다면? 그럼 적극적으로 밀어볼 가치가 있습니다.그럼 내 상품이 내가 속한 시장에서 ‘반응’이 있다는 것을 어떻게 제대로 확인하고 확신을 가질 수 있을까요? 그리고 만약 밀어보겠다고 결정했다면 컨설팅이나 가이드 없이는 어렵고 막막하고 두려울 것입니다. 컨택틱에서는 1:1 컨설팅(자문) 서비스도 제공하고 있지만, 기초 지식과 아마존 판매에 대한 상식을 갖출 수 있도록 도와주는 아마존 기초과정과 심화과정이 준비되어 있고 글로벌셀러 창업연구소와 협력하여 여러분들께 배움의 기회를 제공하고 있습니다. 교육 후기들을 보시면 아시겠지만 처음에는 비용을 부담스러워하더라도 모두 매우 만족하며 강의 듣기를 잘했다고 얘기를 하고 있습니다. 무엇이든 혼자 공부해서 못할 것은 없다고 생각합니다. 하지만 그 시행착오와 자료를 찾아가며 공부하는 비효율적으로 소비된 시간보다 차라리 다소의 비용을 투자해서 아마존에 대한 전체적인 이해를 완벽하게 하는 강의를 듣는 게 시간적으로도 효율적일 뿐만 아니라 결국 시간이 돈이기 때문에 금전적으로도 여러분들에게 이익이 될 거라 확신합니다. 관심이 있으신 분들은 글로벌셀러 창업연구소에서 컨택틱과 함께하는 아마존 입문/기초/심화 교육과정들을 살펴보시고 신청해보세요. 가능하신 분은 가급적이면 오프라인 교육을 신청해주시고, 시간적인 여유가 없으시거나 거리가 멀어서 참석하지 못하시는 분들은 온라인 교육도 준비되어 있으니 온라인 교육에도 관심 가져주시기 바랍니다.오프라인 아마존 입문 과정오프라인 아마존 기초/심화 과정온라인 아마존 입문 과정그럼 오늘도 즐거운 글로벌 셀링 되세요!감사합니다.컨택틱  서울특별시 강남구 강남대로 62길 11, 8층 (역삼동, 유타워)   대표 전화: 02-538-3939   이메일: [email protected]   홈페이지: https://www.kontactic.com 네이버블로그: https://blog.naver.com/kontactic  카카오브런치: https://brunch.co.kr/@allaboutamazon
조회수 5289

실패한 프로젝트, 더 자세히 리뷰하라.

대부분의 프로젝트는 실패한다. 처음 세웠던 계획대로 진행되는 경우는 거의 본적 없다.원숭이도 나무에서 떨어지고, 아키텍트도 당연하게 실패를 자주 만나게 된다. 그리고, 프로젝트는 언제나 성공하지 않는다. 성공과 실패를 거듭할 뿐이다. 여기서, 실패를 어떻게 다루느냐에 따라서 아마추어와 프로의 차이는 극명하게 구분된다.아마추어는 실패를 변명하기에 급급하지만, 프로는 실패를 냉정하게 인정하고, 실패를 하게 된 이유를 찾고, 똑같은 실패를 반복하지 않기 위해서 실패의 원인에 대해서 분석하고 리뷰한다.많은 실패를 거듭할수록 전문가가 된다. 전문가는 실패를 반복하지 않기 위해서 언제나 실패에 대해서 필요한 리뷰 스킬을 높이게 된다. 이번 이야기에서는 필자가 지켜보았던 미니 프로젝트의 하나를 기준으로 실패에 대한 이야기를 해보도록 하겠다.여기서 이야기하는 프로젝트는 처음부터 실패가 될 것으로 예견되었다. 그리고, 그 예견된 결과대로 실패했다. 결론적으로 해당 팀이 해체되었고, 관련된 개발자들은 흥미를 잃고 해당 업체를 떠나게 되는 상황까지 진행되었다.문제가 더욱 심각한 것은 이러한 실패의 이유에 대해서 예견되었고, 그 문제를 지적하고, 향후 그 처리방안을 경영진에게 제시하였지만, 결론적으로 회사의 리더의 생각이 변화하지 않았기 때문에 ‘실패에서 주는 경험’이 제대로 전파되지 못했다. 하지만, 아키텍트는 이러한 실패에 대해서 분명하게 기록해두고, 다시 그러한 실패를 하지 않도록 준비를 하는 것이 전문가로 성장하는 가장 중요한 버릇 중의 하나라고 이야기하겠다. 아키텍트가 아니라고 해도 개발자는 자신만의 노트로 '실패'를 기록해야 한다."어떤 실패한 프로젝트에 대한 리뷰"실패에 대해서 정의할 수 있는가? 이 기준에 대해서 느슨하게 적용하게 되면 대부분의 프로젝트는 실패할 이유가 없어지며, 매우 엄격하게 적용하게 되면 대부분의 프로젝트는 실패라고 기록될 것이다.필자는 프로젝트의 성공과 실패의 요소에 있어 가장 중요한 것은 ‘비용’이 계획보다 많이 투자되었다면 그 프로젝트는 ‘실패’라고 평가를 한다. 가능하다면, 아키텍트를 목표로 하고 있는 개발자라면 모든 프로젝트의 기준과 투입인력, 시간과 하드웨어 리소스들을 모두 ‘비용’으로 환산하는 방법을 터득하는 것이 좋다.가능하다면, 필자는 이 기준으로 프로젝트를 평가한다.이 기준에 따라서 필자가 지켜본 미니 프로젝트를 평가해보자. 소프트웨어 개발자의 실제 일하는 것들이 모두 비용이고, 그들이 투입되고 생각하고, 무언가를 하는 행위들은 대부분 ‘비용’으로 모두 환산할 수 있다. 이러한 비용을 기준으로 프로젝트에 투입되게 되면 초기에 필자가 프로젝트의 기준을 세우는 원칙은 다음과 같다.소프트웨어 디자인과 기획에 30%, 실제 개발에 50%, 테스트에 20%를 투여하는 법칙이다. 다만, 이 수치에서의 약간의 차이는 투입되는 팀원이나 회사의 사정에 따라서 조금씩 달라지기는 하지만, 필자는 가능하면 저 수치를 지키려 한다.그동안의 필자의 경험으로 느껴지는 저 수치는 약간의 조정이 있을 수 있으나, 대부분의 국내의 프로젝트에서는 대부분 일치하거나 근사치로 정의될 것이다. 이번 이야기에서 언급하려는 프로젝트는 2013년도에 필자가 실패한 프로젝트의 사례에 해당한다.이 규칙에서 기획에 30%의 투자가 있었어야 했는데, 실제 초기 기획에 2%도 안 되는 투자 후에 실제 개발이 진행되면서, 프로젝트가 제대로 진행되지 않는 케이스가 발생하였다.물론, 이번의 케이스는 작은 스타트업에서 매우 작은 외주 프로젝트를 진행하는 일이었는데, 실제 프로젝트에 참여할 팀원의 구성이나 팀워크, 주된 목표치에 대한 설정 등이 제대로 서술되지 못하면서 기획이 제대로 진행되지 못한 케이스가 되었다.작은 모바일 프로젝트였고, 필자가 판단하기에 4주면 넉넉하게 해결될 프로젝트가, 필자의 계산착오로 4개월간 뒤틀린 프로젝트가 벌어지게 된 것이다. 필자는 왜 이런 실수를 하게 된 것일까?기본적은 린 개발 방법이나 에자일 방법과 같은 방법론의 문제가 아니라. ‘초기 기획’이 부정확한 상태에서, 팀워크도 갖추어지지 않고, 소통이 안 되는 팀원들이 보고체계가 붕괴된 상태에서 프로젝트가 지속되면서, 팀 자체가 와해되어 버린 아주 엉터리같이 진행된 프로젝트가 되어버렸다.필자도, 이러한 대대적인 실패에 대한 경험을 정말 오래간만에 한 셈이 되었는데, 결론적으로는 프로젝트를 수행할 제대로 된 팀원을 제대로 세팅하지 못한 ‘인사’에서 그 문제는 시작되었다고 프로젝트의 실패 원인 중에 가장 큰 원인을 지적하고 싶다.목표도 불확실한 상태에서 기획이 제대로 진행이 안되었고, 서버 개발자의 능력 부족에 아이폰과 안드로이드 앱 개발자의 자기 멋대로의 전횡과 서버 개발자가 이중으로 서버 인터페이스를 구현하면서 보고체계까지 제멋대로 진행된 아주 최악의 프로젝트가 진행되었다는 것을 거의 프로젝트 후반부에 가서야 알 수 있었다. 말 그대로 전형적닌 실패사례가 된 것이다.결론적으로 이야기하자면, 가장 먼저 이야기한 ‘기획’이란 팀 빌딩과 목표 수립과 같은 부분에 대해서 제대로 된 접근을 수행했어야 했는데, 이 부분에 대한 고려와 협의 없이 진행되면서 프로젝트가 일정에 떠밀려서 진행되면서 프로젝트가 상당히 누더기가 되어버렸다.어떻게든 중간에 올바른 방향으로 유도하려고 하였으나, 언제나 입버릇처럼 말하듯이 ‘한번 기본이 뒤틀린 경우에는 다시 바로 잡을 수 없다’가 정답이고, 그 여파로 인하여, 많은 비용과 시간적인 소모, 정력적인 소비까지 매우 불유쾌하게 진행된 프로젝트였다.결론적으로 이 프로젝트는 마무리는 되었지만, 이 프로젝트를 참여하게 된 팀원들은 모두 해산되고, 서버 개발자만 빼고는 모두 팀에서 해체가 되게 되었다. 물론, 이 프로젝트 이후에 해당 문제들을 보완한 상태에서 다시 프로젝트는 본래의 궤도로 올려놓기는 했지만, 이렇게 진행된 부분에 대해서는 명세 화가 절실하게 필요하고, 이를 리뷰해야 한다.이 프로젝트의 가장 큰 원인은 개발에 참여한 개발자나 디자이나, 기획자나 PM의 문제가 아니라, 전체적인 개발의 틀을 만들어 주어야 하는 ‘개발회사의 경영진’이 가장 큰 문제였다. 말 그대로 ‘인사’ 문제였다. 그중에 몇 가지의 문제들에 대해서 언급해보자."개발자의 의사소통의 문제"후반부에 개발과 관련된 보고체계의 문제점은 서버 개발자와 클라이언트 개발자 간의 의사소통과 의사결정에 대해서 개발자들 간에 ‘숨겨왔던 문제’가 드러났다. 가장 큰 원인은 ‘보고’를 제대로 하지 않았다는 것이다.안드로이드와 iOS의 앱 개발을 동시에 진행하였는데, PM이 인터페이스를 ‘동일’하게 추상화해서 구현하라는 방향성에 대해서 클라이언트 개발자들과 서버 개발자들이 서로 협의한 것이 아니라, 서버 개발자가 클라이언트 개발자들의 요구조건을 모두 받아들여, 인터페이스가 두배로 늘어나고, 테스트와 관련된 처리 방안들이 모두 증가하게 된 것이다.실제, 클라이언트에서 구현해야 하는 상당 부분의 기능들을 서버에서 구현하게 한 것은 향후 Web개발을 일부 처리하기 위한 방안이었는데, 이 부분들이 모두 무시된 채로, 클라이언트 개발자들 간에 자신이 하고 싶은 개발을 추진하면서, 서버 개발자가 의지 없이 끌려다닌 결과물이었다.당연하지만, 개발 일정이 늘어나고, 테스트도 진행되지 못하면서, 품질이 저하되는 것뿐만 아니라, 전체적인 프로젝트가 모두 붕괴되었다. 참으로 애통스러운 상황을 지켜보아야 하는 마음은 참으로 아픈 경험이다.그래도, 최악의 프로젝트였지만 ‘테스트’가 좀 더 명쾌했다면, 이 프로젝트는 초기에 문제를 잡을 수 있을 가능성이 있었다. 그래서, ‘테스트’에 대해서 몇 가지 더 정리해봤다."테스트, 그 계획과 실행의 전부"과연, ‘테스트의 적정선은 어느 정도 인가?’. 소프트웨어 개발에 있어서 테스트에 투입되는 비용이나 기간에 대해서 근접한 수치를 보여주거나 적절한 경험성을 부여하는 경우가 매우 드물다. 다만, 경험자의 직관에 의존하는 경우가 많거나, 각 개발사의 프로세스에 따라서 정형화되어 있는 경우가 많다.실제 자기 자신에게 다음의 화두들을 던져보자.정말로 테스트 커버리지 100%의 테스트란 존재하는가제품 개발 시간과 테스트 코드의 비율은 어느 정도가 적정한가?개발에 착수하기 전에 테스트를 얼마나 준비해야 하는가?통합 테스트는 매번 해야 하는가?테스트 전담자는 있어야 하는가?TDD는 비용 합리적인가?과도한 테스트란 어떤 것을 의미하는가?실제 개발환경에서 테스트란 무엇인가?현장 품질 커버리지란 무엇인가?테스트에 대해서 위의 질문에 대해서 독자들은 얼마나 명쾌하게 답변을 할 수 있을까? 아마도, 다음번 칼럼에는 테스트에 대해서 좀 더 자세한 이야기를 할 것으로 계획을 잡고 있다.테스트에 대한 유명한 Kent Beck의 말을 인용해보자.I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of confidence (I suspect this level of confidence is high compared to industry standards, but that could just be hubris). If I don’t typically make a kind of mistake (like setting the wrong variables in a constructor), I don’t test for it.나는 코드가 작동하는지에 대해 보수를 받지, 테스트를 위해서는 보수를 받지는 않는다. 그래서 나의 철학은 신뢰할 수 있는 수준에 도달하기 위해 가능한 한 테스트를 적게 한다는 것이다.(신뢰할 수 있는 수준이라는 것은 업계 표준에 비해 높다. 조금 거만한 들릴지 모르지만). 만약 전형적인 실수(생성자에서 다른 변수를 설정하는 것 같은)를 하지 않는다면, 나는 테스트하지 않는다.-Kent Beck의 말소프트웨어 개발자들에게 테스트 환경과 테스트 조직, 테스트 문화에 대해서 강요하는 것이 바람직한가?라는 물음에 필자는 이렇게 이야기하고 싶다. ‘개발자’에게 ‘테스트’를 강요하지 말고, ‘테스트한 경과’를 제시하고 ‘수정’과 ‘제대로 된 결과’를 강조하라.일반적인 소프트웨어 개발에 대해서 무지한 사람들의 반복적인 질문은 ‘소프트웨어 개발자들은 왜 테스트를 소홀하게 하는 가?’라는 질문을 버그가 발생할 때마다 이야기를 한다. 대부분의 소프트웨어 개발은 ‘목표’가 불명확하기 때문에 ‘버그’가 발생한다고 생각한다.아마도, ‘개발자’에게 사용자의 ‘제약사항’과 ‘하지 말아야 할 행위’에 대한 언급이 없었다면, 개발자는 문제 해결을 위하여 상당 부분 위험요소를 건너뛰거나 넘어서게 된다. 물론, 적절한 여유시간과 품부 한 리소스를 제공한다면, 당연하겠지만. 튼튼한 소프트웨어를 만들기 위해서 노력한다. 하지만, 일정이 정해지고, 목표가 명확한 SI성의 프로젝트의 경우에는 ‘목표’를 향해서 가장 빠른 코드를 만들기를 강요하기 때문에, 이때에 만들어지는 ‘버그’의 대부분은 개발자의 실수이기보다는, ‘요구사항’에 대한 부정확한 전달 때문이다.별 요구사항이 없는 것 같은 DataGrid를 만들어 달라고 이야기를 했지만, 사실, 고객은 Excel정도의 기능을 원하고 있다. 하지만, 일정과 비용상의 문제 때문에 단순 데이터의 표현을 위한 DataGrid인 것처럼 요구를 하는 경우가 대부분이다.이때에 개발자는 당연한 것처럼 최소한의 제약사항과 요구사항을 통해서, ‘숫자’만을 처리할 수 있는 DataGrid를 만들지만, 고객은 개발에 착수함과 동시에 다양한 요구사항들을 요구한다. 문자열을 처리해달라, 날짜, 함수 등등… 그리고, 종이 출력도 자연스럽게 되게 해달라고 한다.개발자는 중간에 발생한 요구사항과 제약사항에 최대한 맞추려고 기능들을 구현하다 보면, 당연한 것처럼 특정 이슈만 처리하는 기능으로 구현되고, 다른 프로세스에서는 당연한 듯이 버그와 같은 현상을 발생시킨다.그럴 때에 고객은 이야기하고, 개발회사의 사장도 이야기한다. ‘개발자가 테스트도 없이 소프트웨어를 만들고 있다’고. 이것이 현실이다.대부분 소프트웨어 개발에 대해서 무지하기 때문에, 이런 일이 반복된다. 필자도, 이러한 경험을 최소한으로 하려고 하였지만, 역시. 회사의 대표가 되어서 프로젝트의 계약부터 관여하기 전에는 이러한 문제들을 모두 해결할 수 없다는 것이 정답일 것이다.필자는 단언한다. ‘소프트웨어 개발자에게 넉넉한 일정과 풍부한 리소스를 제공하지 못한다면, 소프트웨어 개발자가 모든 것을 해결할 것으로 기대하지 말아라’. 다만, ‘소프트웨어 개발자들이 보다 원활하게 개발에 전념할 수 있도록 다음과 같은 필수조직이 따라붙어야 한다.하나. 요구사항에 대해서 고객과 꾸준하게 소통할 수 있는 담당자나 조직둘. 정해진 일정에 맞추어 기능이 동작할 수 있게 하는 테스트 담당자나 조직하지만, 보통의 스타트업이나 작은 SI를 전담하고 있는 기업의 경우에는 위의 가장 중요한 두 조직이나 담당자들이 대부분 부재중이거나 기능이 모호한 경우가 많으며, 위의 두 가지 기능을 모두 담당 개발자의 책임으로 귀속시킨다.만일 이러한 기능이나 리소스를 모두 담당 개발자에게 귀속시키고 있는 회사나 조직에 있다면, 조직을 다시 만들거나, 해당 기업을 빠른 시일에 빠져나가는 것이 가장 현명한 방법일 것이다. 대부분 소프트웨어 개발에 무지한 경우에 이 두 기능을 너무 소홀하게 하고, 개발자들이 대부분 야근과 휴일근무를 밥먹듯이 하게 되는 경우가 이에 해당된다.실제 필자 또한 경험이 풍부했지만, 실제 기업의 인사권과 경영권이 없었기 때문에 이에 대해서 해결할 수 없는 경우를 또 만났기 때문이다. 그래서, 또 실패했다. 아무리 경험 많은 사람이라고 하더라도, 이미 알고 있는 내용이라고 하더라도. 그것을 실제 바꾸지 못한다면, 필패한다는 것이 소프트웨어 개발의 현장이다.그래서, 필자도 크게 실패한 경험을 또 하나 기록에 남기게 되었다."체계적인 품질관리 지표"개발과정에서 발생되는 요구사항의 지표에 대해서 NIPA의 SW Visualization을 참조하면 요구사항 추적성, 요구사항 달성률, 요구사항 커버리지의 3가지 지표에 대해서 서술하고 있다. 여기서, 달성률과 커버리지는 100% 처리가 되는 것을 목표로 움직이는 정략적인 지표로 보면 되고, 실제 개발현장에서 주목할 부분은 요구사항 추적성을 주목해야 한다.개발 공정별로 요구사항의 일관성이 어떻게 유지되고 있는지 확인하면서, 형상관리가 등록된 내용의 변경률과 비교하면서 요구사항의 변화된 추이를 꾸준하게 주목해야 한다. 대부분, 이 부분 때문에 개발이 뒤틀리는 진입점을 제공하게 된다.품질검증에서 사용되는 정적인 테스트는 ‘코딩 표준 준수율’과 ‘메트릭 만족률’, ‘정적 분석 이행률’을 기반으로 진행된다. 대부분 이 정적인 테스트는 ‘자동화 도구’를 사용하여 코드의 룰과 만족 여부를 확인하기 때문에 결국은 ‘개발 비용’을 얼마나 투자하느냐에 달려있는 부분이라고 할 수 있다. 특히, ‘정적 분석 이행률’과 같은 SW 실행 전에 잠재적인 결함을 분석하는 것은 이러한 투자 없이는 대부분 이룰 수 없는 수치이다. 그래서, 보통 ‘정적 테스트’는 제대로 갖추어진 개발 조직이 아니라면 성립하기 어려운 지표가 된다.보통, 이 ‘정적 테스트’ 지표를 얼마나 진행하고 있느냐에 따라서, 소프트웨어 개발 조직의 성숙도를 체크할 수 있으며, 소프트웨어 개발 조직에 얼마나 투자를 하고 있느냐에 대해서 알 수 있는 지표이기도 하다.보통은 품질검증에서 동적 테스트로써 요구사항 검증방법과 구조 검증방법이 진행되는데, 마찬가지로 구조 검증인 구조적 커버리지 또한 Basic path, Statement, Branch, MD/DC Coverage 등을 선택해야 하므로, 이 또한 개발 조직의 투자 없이는 이루어지기 힘들다. 그래서, 대부분의 개발 조직 현장에 가보면 기능 검증, 비기능 검증, 정형 검증, 사용자 검증 중에 기능 검증과 사용자 검증만을 취해서 품질검증을 하는 경우가 대부분이다.소프트웨어 개발자에게 ‘품질검증’을 제대로 요구하기를 원하는 조직이라면, ‘정적 테스트’를 수행할 수 있는 투자나 일정, 준비 또는 품질 관련 조직이 세팅되어 있어야 한다. 이러한 단계 없이, 개발자에게 ‘테스트’를 제대로 하지 않는다고 강요하는 개발회 사는 정말 크게 잘못된 케이스라고 보면 된다. 그런 회사는 배울 것도 없으니 피하는 것이 최선이다.또한, 기능 검증이나 비기능 검증 또한 테스트 케이스에 대한 자동화된 방법들을 사용하지 않는 다면, 이 또한 개발자에게는 상당히 모호한 테스트들만이 존재하게 된다."좌우지간, 소프트웨어 개발의 시각화"소프트웨어 개발의 경험자라고 하더라도, 소프트웨어 개발 현장에서 일어나는 일들을 모두 파악할 수 있는 방법은 ‘지감’밖에 없을 것이다. 그래서, 소프트웨어 개발에 있어서 적정한 범위까지 개발의 과정을 ‘시각화’하는 기준이 필요하다.하지만, 이 ‘시각화’는 말 그대로 ‘과비용’으로 책정되거나, 소프트웨어 개발을 하기도 어려운 일정과 시간에 촉박한 경우에는 이 시각화의 최소 영역에 대해서 고민하고 결정해야 한다. 완전한 시각화를 이룰 경우에는 소프트웨어 개발 관리조직과 품질조직, 테스트 조직 등의 PM관리체계가 완비되어 있는 경우에만 이러한 과정을 수행하는 것이 최선이다.그리고, 중요한 케이스나 문서 등에 대해서 품질관리 조직과 PM조직이 해당 문서를 작성하는 것이 되어야지, 각 개발자에게 이러한 업무를 전가하는 방식으로 진행되어서는 문제가 해결되지 않는다. 언제나, 품질조직은 옥상옥이 되어서는 안된다.2/2페이지결론적으로 '능력 부족한 개발자'소리를 듣는 것이 대부분이다.대부분 급하다고 일을 의뢰하거나 서비스 론칭을 위해서 급하게 요구하는 경우가 있다. 개발자의 선택은 매우 명쾌하다. 정해진 기간과 인원 숫자로 만들어야 하는 서비스가 특정한 시간 내에 동작하게 하는 방법은 동작시에 제약사항과 커버하지 못하는 품질 이슈를 만드는 것뿐이다.말 그대로 기술적 부채를 만들어 낼 수밖에 없으며, 이 기술적 부채는 결론적으로 반복적인 유지보수 업무와 처리하지 못하는 기능들에 대한 하소연을 만들어 낸다.슬프지만 그렇게 반복되는 과정에서 경영진은 해당 개발자를 신뢰하지 못하게 된다. 그리고, 그렇게 반복적인 유지보수 업무를 만든 것은 개발자의 능력 부족이라고 생각하게 되고, 이 관계는 보고서가 늘어나거나 주간회의시에 디테일하게 보고하라는 식의 결론으로 귀결된다.물론, 이런 상황을 만든 '착한 개발자의 결정'이 문제이기는 하다.대부분 경험이 풍부한 개발자들은 이런 과정들을 반복해 보았기 때문에 처음부터 거부하거나 거절하거나, 적정한 선에서 타협하는 방안들을 제시한다. 물론, 그 과정에서 무지한 경영진과 트러블이 발생하는 것도 다반사이다.이 경우 중간관리자가 개입해서 타협하는 경우가 분명 있다.단언컨대 해당 중간관리자는 둘 중 하나이다. 무지하거나 난파하려는 개발 조직을 재빠르게 떠날 사람이다.소프트웨어 개발에서 '급한 일'이란 없다.정해진 규칙과 기본에 충실하게 하고, 빠진 것 없는지 체크하고 디자인, 설계 후에 미래의 변화에 대해서 적절하게 해당 조직의 규모와 형태에 따라서 반영한 후에 '개발'하는 것이다.지금 이상황에도...'급한 일'이라면서 일을 가져다주는 경영진을 만나고 있을 슬픈 개발자들을 위해서...끄적끄적...#와탭랩스 #와탭 #프로젝트 #인사이트 #경험공유 #조언

기업문화 엿볼 때, 더팀스

로그인

/