티스토리 뷰

박현준 님의 블로그에 소개된 "QA: Things I underestimated when I started my career in software development"라는 글을 읽고 공감하는 바가 많아 번역해 봤습니다. 이 글에 언급된 내용들이 모두 어느 시기까지 하면 완성되는 것이 아니라, 필요하다고 판단되면 주니어든 시니어든 끊임없이 더 잘하려고 노력해야 할 부분들이라 생각됩니다. 

번역과 블로그 포스트에 대해서는 원 저자의 승인을 얻었습니다.
Happy Testing!!! :)  


안녕하세요 여러분, 올해는 제가 소프트웨어 개발 분야에서 다양한 QA 포지션을 거치면서 보내는 15년째 되는 해입니다. 이번에는 제가 캐리어를 시작할 때 과소평가했던 것들을 여러분과 공유해 보려 합니다.

 

우선 이 글에서 다루는 모든 것은 저의 개인적인 생각임을 밝힙니다. 또한 저는 무척 외향적인 사람이라는 것도 함께 밝혀둡니다. 따라서 제 의견에 여러분들이 모두 동감하기 어려울 수도 있을 겁니다. 제가 말씀드리는 것들에 대해 여러분들 스스로가 어떻게 생각하는지가 중요합니다.

 

준비되었나요? 이제 시작합니다!

 

자기 개발의 중요함

너무 뻔한 소리라는 거 잘 압니다. 그래서 수도 없이 들어본 이야기일겁니다. 반면 많은 사람들이 자기 개발을 귀찮아 하는 것도 사실입니다. 솔직히 저도 신입 시절에는 그랬습니다. 그냥 다른 사람처럼 출근하고, 일을 하면 그만이라고 생각했습니다. 왜 제 시간을 쓰면서 훈련하고 공부를 해야 하나요?

 

농구나 미식축구 선수가 연습은 전혀 하지 않고 바로 경기를 시작한다고 가정해 봅시다. 이 선수가 성공할 수 있을까요? 전 그렇게 생각하지 않습니다. 아무리 특출한 재능을 가졌다고 하더라도 훈련은 반드시 필요합니다. 밤낮없이 열심히 훈련에 임한 사람이라면 훈련을 게을리한 재능있는 사람을 능히 물리칠 수 있습니다.

 

마찬가지입니다. 당신도 매일 출근하고 매일 업무를 수행합니다. 물론 더 경험이 많은 동료들로부터 배울 수 있을 겁니다. 지금은 그걸로도 충분할 수 있습니다. 하지만 단점도 존재합니다. 기술은 변화하고, 당신의 동료가 알고있는 지식도 변합니다.

 

이 경험많은 동료가 당신의 프로젝트에서 떠날수도 있고, 당신이 의존할 수 있는 사람이 아무도 없을 수도 있습니다. 어떤 경우는 동료들도 문제를 해결할 수 있는 방법을 모를 수 있습니다. 아무리 숙련된 동료들이라고 해도 실수를 하기 마련이며, 항상 가장 효과적인 방법으로 문제를 해결하는 것도 아닙니다. 때론 신입사원이 당신보다 더 많은 것을 알고 있을수도 있습니다. 만일 이 신입사원이 당신보다 더 먼저 승진한다면 아마 당신 마음도 편하지는 않을 겁니다.

 

매일 남들보다 더 훈련을 한다면 남들보다 더 많은 힘을 얻을 수 있습니다. 당신은 매주 2시간씩 훈련에 시간을 쏟는데, 당신의 동료들은 그렇지 않다고 가정해 봅시다. 당신은 이 2시간의 훈련을 통해 남들보다 더 강해지고 있는 것입니다. 5시간을 투자한다고 가정해 봅시다. 그럼 당신은 5시간만큼 강해지는 겁니다. 매달, 매년 얼마나 더 강해질수 있는지 당신 스스로 결정할 수 있는 것입니다.

 

지금까지 이런 훈련을 해오지 않았다면, 이제부터라도 진지하게 이에 대해 고민해 보시기 바랍니다. 이것이 여러분의 미래에 투자하는 것이라는 사실을 기억합시다. 그렇다고 몇 가지 과정을 배우는데 모든 시간을 쏟아 부으라는 것은 아닙니다. 바로 이번 주부터 토요일마다 2시간씩 공부를 해보겠다고 계획을 세우고 실천하면 됩니다. 더 많은 시간을 투자한다면 결과는 더 좋을 겁니다. 진지하게 한 번 생각해 봅시다. 행운을 빕니다. 

 

목표와 계획

자, 이제 당신은 무언가를 하기로 결심했습니다. 하지만 어디서 어떻게 시작해야할지 감이 없을 수 있습니다. 가장 먼저 해야할 일은 스스로 무엇을 달성하고 싶은지 물어보는 것입니다. 브레인스토밍을 해봅시다.

 

  • 10 킬로미터 달리기를 하고 싶어
  • 프로그래밍 언어를 배우고 싶어
  • 새로운 언어를 배우고 싶어

머리 속에 떠오르는 아이디어를 빠짐없이 적어보세요. 그리고 ToDo 리스트를 만들어 보세요. 그리고 이 리스트를 가장 편한 곳에 저장하세요.

 

이 중 일부를 선택해야 합니다. 매주 혹은 매달마다 활용할 수 있는 시간은 제한되어 있습니다. 따라서 한 번에 모든 것을 할 수는 없습니다. 지금 나에게 가장 중요한 것이 어떤 것인지 생각해야 합니다. 여러가지 목표를 동시에 선택할 수도 있습니다. 예를 들어 10 킬로미터 달리기를 하고 싶다는 것과 프로그래밍 언어를 배우고 싶다는 목표를 동시에 선택할 수도 있습니다. 하지만 어떤 프로그래밍 언어를 하나 배우고 싶다고 결정한 상태에서, 또 다른 프로그래밍 언어를 동시에 배우고 싶다고 선택하는 것은 쉬운 일이 아닙니다. “10 킬로미터 달리기”는 명확한 목표입니다. 하지만 “프로그래밍 언어 배우기”는 좀 모호해 보입니다. 모호한 목표는 좀 더 구체적인 것으로 수정하는 것이 좋습니다. 예를 들어 “초보자를 위한 C# 프로그래밍 언어 배우기”와 같이 바꿀 수 있을 겁니다. 자, 목표를 선택하셨나요? 좋습니다. A4 용지에 이 목표들을 멋지게 적어 봅시다.

 

이제 달성해야할 1개 이상의 목표가 생겼습니다. 당연히 이 목표를 달성하고 싶을 겁니다. 이제 어떻게 해야할까요?

반드시 계획이 필요합니다. 목표를 달성하기 위해 무엇부터 시작해야 할지 아는 것도 쉽지 않습 니다. 경험있는 동료에게 물어보고, 포럼/슬랙/텔레그램 등을 찾아보고 필요하다면 적절한 사람들에게 조언을 구해보세요. 이를 통해 단계별 계획을 수립해야 합니다. 링크드인이나 유튜브에서 제공하는 교육 과정을 따라가는 것도 좋은 사례가 될 수 있습니다. 이 단계들을 좀 더 상세하게 나눌 수도 있습니다. 예를 들어 한 과정에 10개의 강의가 포함되어 있다면 1주일에 1개의 과정을 듣는다고 가정하고 10주, 혹은 두 달 반 정도의 시간이 필요할 것입니다.

강의를 듣고 만들어낸 최종 산출물을 깃헙에 업로드해 봅니다.

 

이는 아주 간단하게 설명한 예입니다. 계획을 세웁니다. 그리고 이 계획을 따릅니다. 계획은 항상 업데이트 되어야 합니다. 항상 유니콘을 데리고 무릉도원에 살 수 있는 것은 아닙니다. 무엇을 해야할지, 어디로 가야할지 아는 것이 중요합니다. 이제, 움직여야 할 때입니다.

 

소프트 스킬 vs 하드 스킬

소프트웨어 개발을 시작했을 때 제가 가지고 있는 소프트 스킬은 많지 않았습니다. 처음 몇 년은 기술적인 부분을 깊이 연구하지 않았고 이 소프트 스킬들을 사용하는 데 집중했습니다. 문제는 스스로 소프트 스킬을 연마하지 않았고, 기술적인 스킬도 훈련을 통해 갈고 닦고 싶어하지 않았다는 것입니다. 훈련을 건너뛰는 것은 바람직하지 않습니다. 이미 앞선 단락에서 훈련의 중요함에 대해서는 충분히 논의했습니다.

기술 기반의 회사에 입사하고나서, 기술적인 스킬이 얼마나 중요한지 새삼 깨달을 수 있었습니다. 그래서 입사하고 얼마 지나지 않아 기술적인 스킬을 학습하기 시작했지만, 이때는 반면 소프트 스킬 훈련은 진행하지 않았습니다.

 

소프트 스킬과 하드 스킬 이 2가지 기술은 둘 다 중요합니다. 기술적인 스킬은 여러분이 문제를 해결하는데 도움을 줄 것입니다. 하지만 당신은 혼자서 일하는 것이 아닙니다. 모든 사람들이 다른 사람과 함께 일을 합니다. 스킬 수준이 낮은 사람도 있지만, 그렇지 않은 사람들도 많습니다. 2가지 기술 모두 그 가치를 존중해야 합니다. 기술적인 역량을 가진 사람들은 자신보다 기술적 역량이 떨어지는 사람들을 얕보는 경향이 있습니다. 마찬가지로, 탁월한 커뮤니케이션 스킬을 가진 사람들은 기술적인 역량을 가진 사람들을 존경하지 않는 경우도 있습니다.

 

이 2가지 스킬의 균형을 잘 잡아야 합니다. 적절한 수준의 기술적인 스킬과 소프트 스킬을 동시에 보유해야 합니다.

앞서 기술적인 스킬의 하나로 프로그래밍 언어를 배우는 것에 대해 언급했습니다. 여기서 만족하고 멈출 필요는 없습니다. 더 자신감을 가지고 외국인 동료들과 함께 일하고 싶다고 가정해 봅시다. 어떻게 이 목표를 달성할 수 있을까요? 스프린트 회의나 발표를 통해 연습할 수 있을 겁니다. 저도 이 방식을 통해 큰 도움을 받았습니다.

 

결론적으로 소프트 스킬과 하드 스킬은 모두 중요합니다. 따라서 두 스킬을 모두 발전시킬 필요가 있습니다.

 

시간 관리

‘시간 관리’라는 주제는 논할 것이 아주 많습니다. 따라서 이 글에서는 제가 가장 중요하다고 생각하는 몇 가지만 다루려 합니다. 솔직히 말씀드리면 저 역시 지금까지도 시간 관리에 어려움을 겪고 있습니다. 하지만 지금도 더 시간 관리를 잘 하려고 노력하고 있습니다.

 

만성적인 지각

저는 지금까지 시간을 지키는 것과 관련해서 큰 문제가 없었습니다. 그래서 이 부분만큼은 크게 개선할 필요가 없다고 생각합니다. 제 친구들과 동료들도 이견이 없으리라 생각합니다.

 

솔직히 말해 일을 체계적으로 진행하면서도 기한을 지키지 못한다는 것은 이해하기 힘듭니다. 만일 그렇다면 무언가가 잘못되고 있다는 것을 의미합니다. 이런 증상이 왜 발생하는지 원인을 분석하는 것이 중요합니다. 때로는 일을 수행하기 전에 준비해야 하는 시간이 더 필요할 수도 있습니다. 만일 그렇다면 이런 경우는 조금 더 빨리 준비를 시작해야 합니다. 제때에 일을 마친다는 것을 중요하게 생각하지 않을 수도 있습니다. 어떤 일을 항상 제시간에 마무리하지 못한다면, 그 원인이 무엇인지 진지하게 한 번 생각해 봐야 합니다. 문제가 무엇인지 파악되었다면, 개선하기도 쉽습니다. 당신이 일정을 지키지 못한다면, 그로 인해 다른 사람의 일정에도 문제가 생길 수 있습니다. 정시 도착이 어렵다고 생각되면 바로 전화를 하거나 문자를 보내야 합니다. 결과적으로는 정시에 도착하더라도 말입니다.

 

멀티태스킹

네, 반드시 필요하죠. 이 복잡한 세상에 정보는 차고 넘칩니다. 우리는 항상 동시에 여러 일을 수행하려고 노력합니다. 저도 마찬가지입니다. 지금은 이 습관을 고치려고 노력하고 있습니다. 제 스스로 생각한 것은 아니고, 링크드인의 여러 게시물에서 영감을 받았습니다.

 

사람은 컴퓨터처럼 병렬로 업무를 진행할 수 없다는 것이 가장 근본적인 문제입니다. 다만 우리는 업무의 스위칭만 가능하죠. 문제는 업무를 스위칭하는 데도 시간이 소모된다는 것입니다. 실제로 우리가 생각하는 것보다 더 많은 시간이 업무를 스위칭하는데 할애됩니다. 간단한 실험을 해봅시다.

 

아래와 같이 한 줄을 쓰고, 이어서 나머지 한 줄을 쓰면서 얼마나 많은 시간이 드는지 측정해 봅시다. 첫 번째 줄은 1부터 20까지의 숫자로 구성되어 있습니다. 두 번째 줄은 주소입니다.

 

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20

Street 1, City 1; Street 2, City 2, Street 3, City 1

 

측정해 보았나요?

이제 첫 줄 5개의 글자를 쓴다음 줄을 바꾸고 두 번째 줄은 콤마 단위로 나누어서 써봅시다.

 

1, 2, 3, 4, 5,

Street 1,

 

1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

Street 1, City 1;

 

시간을 재보셨나요? 자, 이제 아시겠지만 업무를 전환하는 데도 시간이 걸리기 마련입니다.

할 일이 너무 많다면 어떻게 시간을 관리할 수 있을까요?

 

   1. 방해가 되는 요소를 최소화하세요. 읽어야 하는 메시지, 이메일, 노트의 숫자를 최소한으로 줄여야 합니다.

   2. 마음을 비우고 현재 수행해야 하는 업무에 집중하세요. 관련없는 내용들이 자꾸 떠오른다면, 빠르게 이를 메모하고 현재 수행하는 업무를 지속하세요.

   3. 현실적인 시간을 기준으로 회의 시간과 캘린더 일정을 구성하세요. 이런 방식을 통해 다른 사람들이 ‘아 이 2시간 동안은 이 사람을 방해하면 안되겠구나’라고 생각하게 만들 수 있습니다.

   4. Todo 리스트를 만들고 우선순위를 정하세요. 하려는 일의 일부는 이미 기한이 지난 것일 수도 있습니다. 이런 일에는 시간을 소비할 필요가 없습니다.

   5. 시간이 날 때마다 제대로 하지 못한 부분을 분석하고 문제를 개선해야 합니다.

 

이쯤 하는게 좋을 것 같습니다. 더 이야기하면 시간 관리에 대한 글이 될 것 같네요. 시간 관리에 대해 더 많은 것을 알고 싶다면 이를 다룬 많은 콘텐츠들이 있으니 참고하시기 바랍니다.

 

공감

앞서 언급한 것처럼 우리는 다양한 사람들과 함께 일하고 있습니다. 주변 사람들을 더 잘 이해하려면 그들의 내부를 들여다 볼 수 있어야 합니다. 즉, 그들의 입장이 되보아야 하는 것입니다. 당신과 당신의 동료는 국적과 문화, 신앙, 성별, 피부색, 성적 취향 등 다양한 측면에서 다를 수밖에 없습니다.

 

서로의 차이를 찾는 것보다 서로의 공통점에 집중하는 것이 좋습니다. 취미나 스포츠, 비디오 게임, 책이나 여행과 같이 서로 공감할 수 있는 것들을 찾아보길 바랍니다.

 

서로 공통된 부분을 찾으려면 어느 정도의 인내심과 호기심이 필요합니다. 같은 장소에서 일한다면 조금 더 쉽습니다. 다 함께 팀 빌딩 이벤트를 할 수도 있을 겁니다. 상사가 이벤트에 필요한 비용을 승인해 주지 않나요? 상사가 없어도, 비용을 들이지 않아도 함께 모일 수 있습니다. 서로를 이해하려면 시간과 비용이 필요하다는 것을 이해하는 것이 중요합니다. 이런 투자는 응당 결실을 맺을 것입니다. 동료들끼리 가깝지 않다면, 동료들이 가지고 있는 흥미로운 부분에 대해 궁금해 하기만 하고 더 자세하게 알 수가 없을 겁니다. 사람들은 항상 자신의 국가와 문화에 호기심을 보여주는 사람을 좋아하기 마련입니다. 동료에게 휴일이나 특별한 날을 어떻게 보내는지 물어봅시다. 여기서 가장 중요한 것은 아무 질문이나 하는 것이 아니라, 당신이 던진 질문에 그들이 답해주는 것을 잘 들어주는 것입니다.

 

사람들과 함께 일하는 것은 결코 쉬운 일이 아닙니다. 그러니 너무 어렵게 생각하지 말고, 항상 상대방의 입장이 되려고 노력해 보세요.

 

능동적으로 듣기

음, 저도 이 문제는 쉽게 해결되지 않는 이슈입니다. 따라서 제가 이 주제에 가이드를 줄 수 있는 적합한 사람이 아닐 수도 있겠네요. 어찌됐든 이 문제를 해결하는 데 있어 중요한 것은 무엇인지, 그리고 제가 스스로를 발전하기 위해 사용하는 기법들은 어떤 것이 있는지 한 번 살펴보겠습니다.

 

   1. 인내심을 가지세요.

   2. 상대방이 말을 마칠 때까지 방해하지 마세요(이는 상대방에게 양해를 구해야 하는 일입니다). 코멘트를 추가하고 싶다면, 상대방의 말을 들으면서 메모를 하세요. 상대방이 말을 마치면 그때 당신이 하고 싶은 말을 하세요.

   3. 모든 디바이스와 메시지를 멀리 하세요. 특히 휴대폰을 보지 마세요. 저는 누군가와 이야기할 때, 휴대폰을 책상 서랍 안에 넣어놓습니다. SNS나 메신저의 상태를 ‘방해 금지’나 이와 비슷한 상태로 설정해 놓으세요.

   4. 논의된 내용들은 하이라이팅이 필요합니다. 메모하고 필요한 사람들과 공유하세요.

 

스포츠/아웃도어 액티비티

때로는 일 자체가 스트레스가 될 수 있습니다. 어떤 일을 마무리짓지 못하거나, 동료들 사이에 오해가 발생할 수도 있죠. 개인적인 문제로 힘들 수도 있습니다. 이런 경우 리프레시가 필요합니다.

 

이럴 때 가장 효과적인 방법은 스포츠나 아웃도어 액티비티를 함께 하는 것입니다. 개인적으로는 신선한 공기를 마시며 걷고 달리는 것을 좋아합니다. 이런 행동들은 재충전에 큰 도움을 줍니다. 믿어도 좋습니다. 헬스장에서 운동을 하거나, 달리기를 하거나, 체조를 하거나, 걷는 것 모두 좋습니다. 그 방식이 중요한 것은 아닙니다. 혈액에 신선한 산소를 공급해 뇌를 더 나은 상태로 만드는 것이 중요합니다.

야외 활동이나 스포츠를 즐기는 것을 생각해 보기 바랍니다. 건강한 몸에 건강한 정신이 깃들기 마련이니까요.

 

에필로그

이 글을 읽어주셔서 감사합니다. 이 내용들이 개인적인 경험을 바탕으로 추천하고 싶은 부분을 말씀드린 것이라는 것을 강조하고 싶습니다. 저는 여전히 배우고 문제를 해결해 나가고 있습니다. 우리 인간들은 항상 실수를 범합니다. 이런 문제를 분석하고 해결하는 것이 가장 중요한 부분입니다. 여러분의 여정에 행운이 함께 하길 바랍니다.