Fan을 만드는 개발자의 대화법 시리즈 03
이전글
우리가 아는 유명한 속담 중에 "지피지기면 백전백승(백전불태)"라는 말이 있습니다.
즉, 적을 알고 나를 알면 백번 싸워도 백 번을 이긴다(위태롭지 않다)는 뜻이죠
상대방의 대화법 및 업무 스타일을 파악하고 있다면 우리의 요구사항을 전달하고 협의를 하는 과정이 순탄할 것입니다. 아쉽게도 우리는 상대방이 어떤 대화법을 가지고 있는지 바로 파악하기 쉽지 않습니다. 그렇기 때문에 먼저 우리가 어떤 대화법을 가지고 있는지 알아보고 내가 원하는 방향으로 대화를 리드할 수 있도록 대화법을 개선하기 위해서는 스스로를 알아가는 것 역시 중요합니다.
개발자가 프로그래밍을 하기 위해서는 필요한 플랫폼에 맞는 언어의 사용을 통해 개발을 진행하게 됩니다.
원하는 결과물을 얻기 위해서 우리는 각 언어의 문법과 플랫폼의 특징을 파악하고 사용하게 되죠. 하지만
개발을 진행하면서 문법에 맞지 않는 형태로 코드를 작성하게 되면 어떻게 될까요?
위의 이미지처럼 문법에 맞지 않게 사용하게 되면 바로 해당 코드에 빨간색으로 에러임을 표시해 주기 때문에 '아! 이렇게 하면 안 되는구나' , '내가 잘 못썼구나'라고 생각하고 빠르게 수정할 수 있습니다.
이처럼 개발을 위해서는 필요한 언어를 공부하고 사용법이 틀렸을 때는 고쳐 나가는 것에 있어서 최선을 다하지만, 프로젝트의 성공을 위해 같은 마음으로 모인 동료들과 대화를 나누는 회의에서 이런 고민을 해보신 적이 있나요?
어떻게 대화를 시작하면 좋을까?
상대방 의견에 대한 나의 입장을 어떻게 효과적으로 전달할 수 있을까?
대화를 어떻게 마무리를 지으면 좋을까?
이에 대한 방법을 고민해 보고 적절한 대화법을 찾아 사용하는 것이 필요하고 중요합니다. 잘못된 코드를 작성하게 되면 해당 코드를 지워버리면 그만이지만 잘못된 대화법 인해서 남겨지는 '나' 라는 사람의 자취는 쉽게 바꿀 수 없기 때문이죠.
다양한 대화유형들을 통해 스스로 어떤 스타일의 대화를 해왔었는지 알아가는 시간과 병행하여 어떤 대화법이 필요한지 알아가 보도록 하겠습니다.
개발팀에 요구되는 사항에 열정적으로 다 들어주고 싶어 하는 스타일입니다.
기획자: 내 정보 페이지에서 버전 및 사용자 정보 수정 등의 기능을 추가하고 싶은데 괜찮을까요?
개발자: 네! 가능합니다. 바로 작업 진행 할 수 있어요.
디자이너 : 전달드린 디자인에서 애니메이션을 넣고 싶은데 가능할까요?
개발자: 네! 어떤 애니메이션인지 알려주시면 제가 찾아보고 바로 해볼게요!
기획자 & 디자이너 : 저기..
개발자 : 네네! 말씀만 하세요 일단 다 해볼게요!
기획자 & 디자이너 :???
기획팀과 디자인팀 또는 다른 팀의 요구사항을 일단 수락하는 대화법으로 다른 협업팀에서는 좋게 보일 수도 있지만 어느 정도 경력 및 경험이 있는 협업팀에서는 '진짜 다 가능할까? 이거 까지는 힘들 거 같은데'라고 가늠할 수 있어서 자칫하면 신뢰도가 떨어질 수도 있고 실제 개발을 같이 진행하는 팀이 있는 경우는 개발팀끼리 내부논의도 없이 다 가능하다고 자신감을 보여놔서 피곤하게 느껴지는 대화법 중 하나입니다.
모든 프로젝트 진행에 있어서는 시간과의 싸움이기 때문에 팀이 있는 경우에는 모든 내용에 YES를 하기보다 '가능할 거 같긴 하다, 하지만 현재 진행 중인 업무도 있기 때문에 내부적을 확인을 한번 해보겠다'라고 의사를 전달해도 좋습니다.
부정적인 의사를 전달하는 대화법입니다. 충분한 근거를 가지고 있다고 해도 상대방입장에서는 난감해하고 당황할 수 있습니다.
기획자 : 이번 스프린트에서 상세페이지에서 페이징 기능과 필터 기능을 추가하고 싶은데 가능할까요?
개발자 : 아니, 근데 스프린트를 진행한 시점에서는 다른 추가기능에 대한 검토는 다음 스프린트에 반영하는 게 좋지 않을까요?
디자이너 : 팝업 디자인을 변경하려고 합니다.
개발자 : 아니 이미 작업 다해놨는데 지금 와서 변경하시면 안 되죠. 다음 스프린트에 반영하도록 해주세요.
아마 대부분의 회사생활을 하시는 모든 분들이 이런 대화법을 가지신 분 들하고는 일하기 힘들다고 생각하실 것입니다. 개발자 사이에서도 역시 이런 대화법을 가지신 분 들하고는 협업하기가 쉽지 않습니다.
본인의 경험을 바탕으로 조언 및 가이드를 해주기 위한 대화 스타일입니다.
pm : 강제 업데이트 기능을 넣으려고 하는데 각 플랫폼 별로 스토어 캐시를 저희가 삭제할 수 있는 방법이 없을까요?
개발자 : 각 플랫폼에서 강제업데이트에 대해서는 권장하지 않고 있고, 스토어의 캐시를 저희가 컨트롤할 수 없습니다. 다른 대안을 마련해야 할 거 것 같습니다.
pm : 제가 예전에 개발했을 때는 되었던 거 같은데... 아닌가...
현업에서 같이 개발을 하는 입장에서는 조언이 될 수 있고, 크게 이질 감 없이 대화를 이어갈 수 있지만 만약 포지션을 전환을 하여 개발에 참여하지 않은지 오래된 분들에게서 흔히 우리가 "라떼는 말이야~"라고 시전 하시는 스타일을 마주할 수도 있습니다. 그런 경우 실무 개발진들은 속은 고구마 x 10000 개의 답답함이 느껴질 수 있습니다.
이 대화법은 서로 간에 오고 가는 대화를 다시 한번 정리하여 양쪽에 전달하고 확인하는 스타일입니다.
기획자 : 이번 스프린트에 마케팅 용도로 딥링크를 생성 및 관리하는 기능을 추가하고 싶은데 진행할 수 있을까요?
모바일 개발자 : 네, 모바일 입장에서는 해당 링크를 통해서 접근 시 어떤 페이지로 이동해야 하는지 정리해서 알려 주신다면 큰 이슈 없이 작업진행이 가능합니다.
웹 개발자 : 관리자 페이지에 딥링크 생성하는 버튼을 추가하는 것은 금방 할 것 같고 서버팀에서 API 작업해 주시면 연동하면 될 거 같습니다.
서버 개발자 : 네, 딥링크 생성하는 API 제작하는 것도 스프린트 기간 내에 작업 가능 할 거 같습니다.
*
말씀 나누신 내용을 정리해 보자면, 딥링크 생성 및 관리하는 기능 추가에 대해 개발팀에서 일정 상 진행하는 부분에서는 무리가 없지만, 기획팀에서 딥링크로 접근할 수 있는 페이지에 대해서는 정의하여 전달해 주시길 요청드리고, 혹시 개발팀에서도 기획팀에서 정의하는 동안에 다른 이슈사항은 없을지 확인 한번 부탁드리겠습니다.
대화 중간의 흐름을 놓치는 일이 있더라도 이런 사회자 대화법을 진행한다면 간략하게 한 줄 요약 느낌으로 필요한 정보만 다시 리마인드를 할 수 있고, 적당히 대화를 마무리 지음과 동시에 정리하여 양쪽에 확인 및 동의를 얻을 수 있습니다.
기획과 디자인이 리뷰 및 결정이 되어 전달받는 대로 개발을 진행하겠다는 스타일입니다.
기획자 : 이번에 진행할 로그인 페이지에 대해서 개발팀의 의견 있으실까요?
개발자 : 저희는 따로 없습니다. 디자인 시간 정해 주시면 그대로 개발 진행하겠습니다.
디자이너 : 그럼 기획팀과 따로 내부적으로 논의 후 결정하고 알려드릴게요
--- 며칠 후 ---
디자이너 : 기획팀과 내부 논의하여 A안으로 진행하기로 결정되어 전달드립니다~
개발자 : 네, 디자인 완성되면 다시 한번 공유 부탁드립니다.
진행하는 회의에 결정에 따라서 개발을 진행하고자 하는 스타일의 대화법으로 큰 의견을 내지 않고 기획과 디자인팀의 결정에 맞춰 개발을 진행할 수 있습니다. 어느 정도 개발공수가 확보되어 있다면 다른 팀과 크게 의견 대립 없이 진행하기 때문에 순조롭게 진행은 되지만 협업하는 팀의 입장에서는 의견도 조금 내면 좋겠다는 의견을 들을 수도 있습니다.
서로의 요구사항이 다른 상황에서 프로젝트를 성공적으로 이끌어 가기 위해 서로가 만족하는 합리적인 대안을 찾으려는 대화 스타일입니다.
기획자 : 사용자들의 편의 개선을 위해 홈화면의 배너들의 위치를 변경하고자 합니다.
다음 배포에 적용하고 싶은데 이번 주에 디자인 결정 후 공유드리면 다음 주까지 개발이 가능할까요?
개발자 : 디자인이 완료되어 공유를 먼저 해주셔야 개발팀 내부적으로 작업공수에 대한 논의가 이루어져야 할 것 같습니다.
기획자 : 그렇다면 디자인이 먼저 나와야겠네요.
개발자 : 현재 진행 중인 작업 마무리도 지어야 하다 보니, 작업량이 적지 않다면 다음 스프린트에 논의를 해보는 것도 좋을 것 같고, 스프린트 기간을 조금 연장하여 반영을 하는 방향으로 진행하는 것도 고려해 볼 수 있을 거 같습니다. 어떻게 진행하면 좋을까요?
기획자: 이번 스프린트에 작업 중인 내용들을 연장하기보다 다음 스프린트에 하는 게 좋을 거 같네요.
턴제 게임처럼 스텝바이스텝으로 한 턴씩 기획자의 의견을 듣고, 그에 대한 본인의 의견을 상대방이 이해할 수 있도록 합리적인 근거를 이야기하면서 서로가 합의할 수 있는 방안을 찾아갈 수 있는 대화법입니다.
우리의 요구사항을 상대방도 공감하게 만들기 위해 현재 바로 진행할 수 없는 개발상황을 전달함으로써 요구사항을 당장 진행할 수 없더라도 이해를 받을 수 있고 해당 요구사항을 진행하기 위한 다른 대안을 제안함으로써 상대방은 차선책을 고민하게 하여 서로가 합리적인 효율적인 회의를 이어 갈 수 있습니다.
다양한 대안을 제안하기도 하고 개발 진행에 필요한 부분을 부탁, 권유형으로 대화하는 스타일입니다.
개발자 : 이번 로그인 페이지에서 로그인 시도 버튼을 클릭 시 에러가 발생하는 상황에 따라 어떤 에러메시지를 고객에게 보여줘야 하는지 공유해 주신 기획서 및 디자인에서 확인할 수가 없는데 혹시 관련해서 논의 한 내용이 있으시다면 전달받을 수 있을까요?
기획자 : 죄송해요. 그 부분이 누락되었네요. 해당 상황에 있어 아직 논의를 진행하지 않았습니다. 에러가 발생할 때 이전 프로젝트에서는 어떻게 진행하셨나요?
개발자 : 괜찮습니다. 요즘 바빠 보이시던데 고생 많으십니다.ㅠ 저번 프로젝트에서는 각 입력 필드에 대한 기본 유효성 검사는 프론트에서 진행을 하여 입력값이 공백이거나 입력조건에 맞지 않을 시에는 페이지 상단에 레이어 팝업형식으로 어떤 필드의 입력값을 확인해야 하는지 고객에게 가이드했었고, API 통신으로 입력값들에 대한 정보가 일치하지 않을 시에는 하단에서 올라오는 시트형식의 팝업으로 에러에 대한 메시지를 전달하고 있었습니다.
각 에러 상황에 따른 에러 메시지를 동일하게 사용해도 괜찮다면 이대로 반영하겠습니다. 한번 검토하시고 말씀부탁드리겠습니다.
기획자 : 아 알겠습니다. 그러면 한번 디자인팀하고 논의하고 공유드리도록 할게요! 미리 확인해 주셔서 감사합니다!
개발을 진행하기 전에 개발자들은 모든 예외상황들을 한번 머릿속에서 시뮬레이션을 돌려봅니다. "이런 경우에는 어떻게 진행하면 될까?" , "저런 경우에는 어떻게 보여야 할까?" 하면서 말이죠.
대화를 이어나가면서 개발팀에서 대응할 수 있는 대안을 제안함으로써 개발자의 전문성에 신뢰감이 상승하게 되고 상대방 실수를 질책을 하기보다 상대방의 위로하고 응원하는 말 한마디를 보탬으로서 친밀감도 높일 수 있습니다. 이런 대화법 지속적으로 이어나감으로써 상대방은 나와 일하는 것에 즐거움을 느끼게 될 것입니다.
여러분은 어떤 대화스타일로 이야기를 하고 계신 것 같나요?
대화를 진행하는 상대방의 감정, 억양, 말투의 따라 듣고 있는 사람도 동일한 감정, 억양 말투로 이야기를 하게 됩니다. 회의 중 대화에서 내가 보이는 모습에 따라서 상대방 역시 그 모습 그대로 나에게 보일 수 있다는 것을 명심하셔야 합니다.