일의 매듭 짓기: 개발자의 ABC
영업 전략에는 Always Be Closing(줄여서 ABC)이라는 유명한 표어가 있다. 거래를 성사시키다라는 뜻의 “Close a deal”이라는 표현에서 온 문구다. 영업 사원의 궁극적인 목표는 거래를 성사시키는 것이다. 그러므로 언제나 거래를 성사시킬 기회를 호시탐탐 노리고 있으라는 뜻으로 해석된다.
프로그래머의 궁극적인 목표는 사업이 돌아가게 해주는 코드를 배포하는 일이다. 하지만 코드를 실환경에 배포하기까지 많은 장애물을 넘어야한다. 코드를 작성하기 전부터 논의해야 할 것도 많고, 코드를 작성하면서는 동료 개발자랑도 맞춰가야하고, 다 작성한 후에도 여러 검증을 통과 해야한다. 대기업에서는 관계자들이 많아서 각 팀의 입장을 조율하느라 일을 진척시키기 쉽지 않고, 스타트업의 상황은 시시각각 바뀌고 개개인이 할게 너무 많아서 벌인 일들이 흐지부지 결론이 안날 때가 있다. 그래서 대기업, 스타트업 구분할 거 없이 일을 끝맺을 줄 아는 능력은 빛난다.
각별한 노력 없이는 일이 막다른 길에 부딪히기 쉽다. 특히 관여하는 팀이 많을수록, 성과가 잘 드러나지 않거나 장기적일수록 그렇다. 자신이 직접적으로 책임지는 일을 잘 마무리하기 위해서 뿐 아니라 내가 크고 작게 관여하고 있는 주위의 수많은 일들의 진행이 탄력을 잃지 않게 할 수 있는 몇 가지 팁이 있다.
1. 타임라인 제시
일이 더 진행되기 위해서 추가적인 작업(연구 조사, 프로토타이핑 등)이 선행되어야하는 경우 대략적으로나마 얼마나 걸릴지 제시해두면 같이 일하는 사람들이 후속 작업을 계획할 수 있다.
2. 후속 회의 시간 잡기
논의가 마무리되지 않았을 때, 해산하기 전에 다음 회의 시간을 잡아버리면 일이 늘어지는 걸 방지할 수 있다.
3. 업무 관리 도구에 기록
일하면서 느낀게 있다면 기억력을 믿어선 안된다는 점이다. 기록해두지 않으면 ‘나중에 하자’, ‘언젠가 하면 좋겠다’ 고 약속한것들은 사라진다. 당장 작업에 돌입하지 못하는 일이라도 일단 관리 도구에 바로 바로 등록해두자.
4. 대안 제시
경험상 일이 막히는 가장 흔한 상황은 누군가가 ‘A 할 수 있어요?’라고 물어봤을때 ‘아니요’ 라고 대답하고 끝내는 상황이다. (개인적으로는 이 질문부터 잘못됐다고 생각하지만 이건 별개의 주제라서 넘어가고) 요청 받은 일을 내가 할 수 없다면 도와줄 수 있는 사람을 알려주거나, 다른 이유가 있다면 왜 안되는지, 무엇을 보완해야 하는지 사소한 것이라도 던지면 상대방은 일을 이어갈 수 있다.
5. 액션 아이템 도출, 담당자 지정
회의의 끝에는 각자 무슨 일을 해야하는지 명확히 알고 헤어지는게 최선의 상황이다. 종종 누가 뭘 할지 정하지 않고 회의를 끝맺는 경우가 있다. 할 일도 뭉뚱그려 팀으로 지정할 때가 있는데 그러지말고 정확히 담당자 개인을 지정하면 나중에 일의 진척을 추적하기 쉽고 개인도 책임감와 주체성을 가질 수 있다.
일을 처리하는건 시냇물이 바다에 도달할 때까지 물길을 계속 터주는 행위와 비슷한거 같다. 일이 계속 진전되도록 사소하더라도 도움을 주거나, 보다 적극적으로 내 선에서 일을 매듭 짓겠다는 마음가짐을 가지면 좋겠다.
Tags: always be closing
글로벌 개발팀이 협업하는 방법
Tags: remote work, global dev team
2022년 테크 업계 번아웃 실태 보고
참고: 직원들의 동기 부여와 사기를 관리하는데 도움을 주는 서비스를 파는 회사에서 만든 보고서입니다.
번아웃의 의의
- 글로벌 경쟁으로 인해 테크 업계 직원들은 오래 근무하고 시간 압박에 시달린다. 정신이나 육체가 회복할 여유가 없이 이런 일들이 매일 매일 반복되다 보면, 아래와 같은 번아웃의 증상들이 나타난다.
- 번아웃은 현재 전세계 수많은 사람이 직장을 그만두고 있는, 일명 ‘2021년 대퇴사 물결’(The Great Resignation of 2021)의 원인 중 하나로 꼽힌다.
- 번아웃 자가진단: https://burnoutindex.yerbo.co
번아웃의 4가지 증상
- 감정 소모나 활력 고갈 (emotional or energetic exhaustion)
- 무능감 (self-inefficacy)
- 냉소 (cynicism)
- 비인격화 (depersonalization)
감정 소모, 활력 고갈
- 하루 일과가 끝나고 미처 회복할 겨를도 없이 다음 날 업무를 시작한다.
- 고갈, 신경쇠약, 피로감으로 인해 업무를 제대로 못하게 된다.
- 우울증, 심혈관 질환, 스트레스와 연관된 각종 질병들이 생긴다.
- 56%의 IT 노동자들은 업무 시간이 끝나도 제대로된 휴식을 취하지 못한다.
무능감
- 자신의 능력을 의심하기 시작한다.
- 맡은 역할을 잘 완수할 능력이 있음에도 자신감이 떨어지고 성취감이 줄어 들어 점차 생산성이 떨어지고 의욕이 꺾인다.
- 정서적으로 흔들리기 시작하여 일을 미루기 시작하고, 결국 가면 증후군(Imposter Syndrome)에 걸릴 수 있다.
- 51%의 사람들은 업무 결과물이 자신의 능력에 못 미치고 있다고 느낀다.
냉소
- 사람을 변덕스럽게 만들고, 원래 친절하게 대했던 사람들에게 차갑게 대한다.
- 자신의 노력이 인정받지 못한다고 느껴 목표를 달성하고 업무를 완수하는 것에 더이상 만족감과 의미를 찾지 못한다.
- 이직을 예측할 수 있는 가장 확실한 지표다.
- 27%의 응답자들은 자신이 하는 일의 가치와 목적을 모른다.
비인격화 (분리, 소외감, 자아 상실) / 심리적 무감각
- 현 상황에 대처하고 업무를 이어가기 위한 방어 기제로써 감정을 억제한다.
- 동료, 고객, 상사에게 차갑게 대하고 거리를 둔다.
- 소속감을 느끼지 못하고, 나아가 전체 조직 분위기를 부정적으로 물들일 수도 있다.
- 22%는 같이 일하는 동료에게 자신이 지나치게 적대적으로 대하는거 같다고 응답했다.
매니저와 회사를 위한 조언
- 번아웃 고위험군의 42.1%는 6개월 안에 직장을 떠날 계획이라 밝혔다.
- 저위험군의 76%는 직장에 계속 남을 것이라 밝혔다.
- 번아웃을 없애는 일회성 기법은 없다. 회식이나 유급 휴가로 해결할 수 없다.
- 동기 부여에 도움이 되는 멘토링, 좋은 사우 관계, 성장/승진의 기회 등은 일시적으로나마 번아웃과 싸워 이길 수 있는 면역력을 키워준다.
Tags: burnout in tech
[유머] 왜 소프트웨어 개발은 예상보다 2~3배 더 오래 걸리는가?
Quora에 올라온 답변을 번역 및 재구성한 글입니다.
해운대에 사는 친구를 만나러 갈 겸 속초에서 부산까지 도보 여행을 가기로 했다. 지도를 켜서 동해안을 따라 길을 그려봤다.
대략 400km 정도다. 한시간에 4km를 걷는다고 했을때 총 100시간이 걸리고, 하루에 10시간 정도 걸을 수 있으니 총 10일이 걸릴 것으로 예상한다. 지도에도 이렇게 나오니 더욱 자신있게 친구한테 전화해서 다음주 일요일 밤에 도착할 예정이니 해운대 최고의 횟집을 예약해놓으라고 한다. 너무 기대된다!
흥미진진한 여행을 기대하며 다음날 일찍 일어났다. 동행하는 친구와 함께 가방을 메고 나섰다. 첫 날의 종착지를 정하기 위해 지도를 꺼냈다. 앗..
동해안이라고 방심했는데 자세히보니 해안선이 생각보다 엄청 구불구불하다. 하루에 40km를 가야하는데 이대로라면 겨우 양양까지 밖에 못갈거 같다. 400km가 아니라 500km짜리 여행이 될 것 같다. 친구한테 다시 전화해서 저녁 약속을 화요일로 미룬다. 일정은 현실적으로 잡아야하니까. 친구는 잠깐 실망하지만 오랜만에 만날 생각에 들떠있다. 속초에서 부산까지 12일이면 여전히 나쁘지 않다.
일정의 부담을 덜고나서 드디어 여행을 시작한다. 두시간이 지나 이제 겨우 속초 시내를 벗어났는데 이게 무슨 일이야? 눈 앞에 펼쳐진 길을 보고 놀란다.
한시간에 4km를 꾸준히 걷는 것이 힘들다는걸 깨닫는다. 모래 사장, 바다, 계단, 곶과 만이 즐비하다. 한시간에 2km 밖에 걷지 못하고 있다. 지금 속도대로 라면 하루에 20시간 걷던가, 친구와의 약속을 일주일 더 미뤄야할 판이다. 그래, 적당히 타협을 하자. 하루에 12시간 걷는 대신 친구와 약속은 주말로 미루기로 한다. 친구는 조금 짜증을 냈지만, 어쩔수 없지. 그때 보기로 한다.
힘들게 12시간을 걸은 후 주문진의 한 해수욕장에 야영하기로 한다. 젠장, 바람이 너무 많이 불어서 텐트를 치는게 너무 어렵다. 결국 자정이 다 돼서야 겨우 잠에 든다. 이정도 쯤이야. 심기일전하여 내일 속도를 높여보기로 한다.
늦잠을 자버리고 온몸이 욱씬 거리는 상태로 오전 10시에 일어난다. 🤬 18! 오늘 12시간을 걷는건 무리다. 오늘 10시간 걷고 내일 14시간을 걷자. 짐을 싸서 출발한다.
묵묵히 두어 시간을 걸었을까, 친구가 절뚝거리기 시작했다. 제길, 물집이 잡혔다. 지금 물집을 해결하고 가야한다. 우리는 문제가 더 커지기 전에 싹을 제거하는 팀이니까. 45분 동안 내륙에 있는 시내까지 달려 약국에서 연고와 밴드를 사서 돌아온 후 친구를 응급처치 해준다. 나는 벌써 기진맥진하고, 해는 지고 있다. 오늘은 여기서 마무리하기로 한다. 오늘은 6km만 걸은 채로 잠을 청한다. 하지만 오늘 기력을 회복했으니 앞으로 괜찮을거다. 오늘 못한건 내일 메꾸자.
다음날 일어나서 발바닥에 붕대를 감고 다시 길에 오른다. 길목을 돌아서니 장관이 펼쳐진다. 아니 이게 뭐지?
망할, 지도에는 이런게 안나왔다. 하는 수 없이 내륙으로 3km 들어가 철조망이 쳐진 산 속 군 부대를 빙 둘러가다가 길을 두번 잃고 다시 해안가로 돌아오니 정오가 다 됐다. 고작 1km 전진했는데 하루의 절반이 지나 갔다. 약속 날짜를 또 미룰순 없다. 결국 계획대로 가기 위해 자정까지 걷는다.
춥고 안개 낀 날씨에 밤잠을 설친 친구는 아침부터 깨질듯한 두통과 고열에 시달린다. 여행할 채비를 할 수 있느냐 친구에게 묻는다. ‘제정신이냐 미친놈아. 3일 동안 쉬지도 못하고 추위를 참아가며 걸었는데!’ 오늘은 쉬면서 회복하는 수 밖에 없다. 하루 쉬었으니 내일부터는 하루에 14시간씩 걸을 체력이 있겠지. 몇 일만 하면 되니까 힘내자! 할 수 있다!
다음날 축 처진 채로 일어나 지도를 본다.
이럴수가, 열흘짜리 여행에 5일차 아침인데 아직 강원도도 못 벗어났다! 터무니 없는 상황이다. 다시 한번 정확히 일정을 산정해보자. 친구한테 욕 좀 더 먹겠지만 진짜 마지막으로 현실적인 목표를 세워보자.
친구가 말하길, “나흘 동안 40km를 왔는데 해운대까지 최소 600km인거 같으니 최소 60일이고, 좀 더 보수적으로 잡으면 70일 정도일거 같다.” 나는 말했다. “그럴리가 없다. 나도 직접 해본적은 없지만 속초에서 해운대까지 70일이 걸리는건 진짜 말이 안된다. 기다리고 있는 친구한테 추석 쯤 도착한다고 하면 비웃겠지!””
내가 이어 말했다. “하루에 16시간 걷기로 다짐하면 해낼수 있다! 힘들겠지만 이제부터 크런치 모드다. 참고 받아들여!” 친구가 맞받아친다. “친구한테 일요일까지 도착하겠다고 한건 너야 인마! 너가 실수한거 때문에 내가 죽게 생겼어!”
우리 사이에 긴장감 가득찬 침묵이 지속된다. 차마 해운대 사는 친구에게 전화를 하지 못했다. 이성을 찾은 친구가 좀 더 합리적인 계획에 동의를 하고 나면 내일쯤 전화를 해봐야겠다.
다음날 아침, 우리는 비바람이 그칠 때까지 텐트에 머문다. 짐을 챙겨 오전 10시에 길을 나선다. 근육통과 새로 생긴 물집을 참아가며. 누구도 어제 밤의 말다툼은 언급하지 않는다. 그러다가 멍청이 친구가 물병을 놓고 오는 바람에 다시 30분을 왔던 길로 돌아가게 되자 정신줄을 놓고 윽박지른다.
휴지가 다 떨어져서 다음 들르는 동네에서는 잊지 않고 구매해야한다고 할일 목록에 적어 논다. 골짜기를 넘어가니 장마로 불어난 강이 육교를 집어삼켰다. 순간 참을 수 없는 설사가 밀려오는걸 느낀다…
Tags: software development estimation