개요
원문 제목: Managing My Motivation, as a Solo Dev
원문 링크: https://mbuffett.com/posts/maintaining-motivation/
작성자: Marcus Buffett (marcusbuffett)
번역 상태: 번역기 돌림. 틀렸으면 님말이 맞음. (원문 권장)
개발자에게 있어서 동기 부여로 좋은 게시글을 발견하여서 한 번 가져와봤습니다.
ADHD을 앓는 것으로 추정되는 해외 개발자가 작성하였는데,
저 또한 부분적으로 활용하는 동기부여법이 있어서 상당히 흥미로웠습니다.
한 번 정도는 읽어봐도 괜찮은 내용이라고 생각합니다.
글 전문
【 1인 개발자로서 동기 부여 관리하기 】
1인 개발자로 일하면서 가장 큰 어려움 중 하나는 동기부여를 유지하는 것입니다. 저는 어떻게 하면 동기부여를 잘 할 수 있을지, 무엇이 효과가 있고 무엇이 그렇지 않은지에 대해 일지를 써왔습니다.
다음은 효과가 있었던 것들입니다.
외부 자극을 동기부여로 전환하기
저는 내재적 동기부여보다는 외재적 동기부여에 더 영향을 받는다는 것을 항상 알고 있었기에, 외부 자극을 통해 동기부여를 얻을 수 있는 몇 가지 시스템을 갖추고 있습니다. 예를 들어, 누군가 구독할 때마다 팝업으로 뜨는 디스코드 머니봇(Money Bots)이 있습니다.
저는 푸시 알림에 매우 인색한 편이지만, 이 알림은 제 홈 화면에 바로 뜹니다. 매번 작은 동기부여의 순간이 됩니다. 시간이 지나면서 처음에는 한 명의 새로운 구독자가 엄청난 도파민/에너지의 충격을 주었지만, 그 효과가 점점 줄어들었습니다. 그럼에도 불구하고 여전히 저에게 힘이 됩니다.
비슷한 맥락에서, 누군가 Chessbook에 대해 언급할 때마다 알려주는 서비스에 가입했습니다. 이는 마케팅에 매우 유용할 뿐만 아니라, 사람들이 제가 만든 것에 대해 (긍정적으로) 이야기하는 것을 볼 때마다 동기부여가 됩니다.
또한 #pump-up 채널에는 $X MRR, 2,000명의 디스코드 사용자, 6% 미만의 이탈률 등 우리가 달성한 이정표들이 피드로 제공되어 동기부여가 됩니다.
작업을 완료하지 않은 채로 남겨두기
이 부분이 얼마나 도움이 되는지 강조할 수 없을 정도입니다. 저는 작업 시간이 끝날 때 작업을 90% 정도 완료한 상태로 남겨두려고 합니다. 작업을 완전히 마무리 짓는 것보다는 조금 더 안 좋은 기분이 들 수 있지만, 다음 날 시작하기가 10배는 더 쉬워집니다.
코딩을 시작할 때 빠른 성과를 내는 것은 엄청난 격려가 되고, 즉시 몰입 상태에 들어가게 해줍니다. 하지만 너무 쉬워서는 안 됩니다. 남은 일이 git commit을 실행하는 것뿐이라면 그것으로는 충분하지 않습니다. 이상적으로는 제가 정확히 무엇을 해야 할지 알고 있으며, 5-10분 정도 걸리는 작업이 좋습니다.
가능한 한 스스로 제품을 사용하기
저는 제 제품을 최대한 많이 사용하려고 합니다. 누군가 버그 리포트를 제출했을 때 때로는 그것을 작은 문제로 분류하기 쉽습니다. 그러다가 제가 직접 그 문제를 경험하면, 사용자 경험에 정말 영향을 미친다는 것을 깨닫고 바로 수정하게 됩니다. 전달받은 고통보다 직접 느낀 고통이 훨씬 더 두드러집니다.
여담으로, 이는 훨씬 더 좋은 제품 아이디어를 줍니다. 제가 가진 최고의 아이디어는 앉아서 사람들이 원할 만한 것을 생각해 내는 것이 아니라, 제 자신이 무엇을 원하는지 깨닫는 데서 나왔습니다.
고통을 억지로 참고 견디기보다는 해결하기
항상 끔찍한 부분들이 있기 마련입니다. 방치된 코드베이스 영역, 서드파티와의 작업, 네이티브 앱의 새 버전 출시 등이 그렇죠. 어떤 작업의 일부로 이런 것들을 처리해야 한다는 것을 알면, 시작할 동기를 부여받기가 훨씬 더 어려울 수 있습니다. 요령은, 거의 항상 이런 것들을 덜 고통스럽게 만들 수 있다는 것입니다.
예를 들어, 최근에 저는 새로운 작업을 시작할 때 많은 마찰을 느꼈는데, 그 작업에는 4개 이상의 새로운 엔드포인트가 필요했고, 그것은 항상 많은 반복 작업을 수반했기 때문입니다. 백엔드에서 타입을 작성하고, 프론트엔드에서 동일한 타입을 작성하고, 페이로드가 올바른지 확인하고, 경로가 올바른지 확인해야 하는데, 아무것도 타입 체크되지 않아서 보통 처음에는 작동하지 않습니다.
그래서 시작하기 전에 RSPC라는 RPC 라이브러리를 찾았는데, 이 라이브러리는 제게 타입을 생성해주고, 프론트엔드에서 새로운 백엔드 함수를 작성하고 호출하는 것을 다른 비동기 프론트엔드 함수를 호출하는 것만큼 쉽고 타입 안전하게 만들어줍니다.
이는 고통의 지점을 제거했을 뿐만 아니라, 저는 이 새로운 시스템을 사용하는 것에 적극적으로 흥분했습니다. 마찰의 원천을 동기부여 증폭제로 전환한 것입니다.
이는 일상적인 개발의 고통스러운 부분들을 해결할 수 없는 대기업에서 일해본 적이 있다면 쉽게 잊어버릴 수 있는 것입니다. 아마도 이런 것들을 해결하려고 노력하는 것에 대한 무력감을 느꼈을 것입니다. 맞춰야 할 데드라인이 있거나, 승인을 받아야 할 사람들이 있거나, 시도하기 전에 접근 방식에 대한 기술 문서를 작성해야 합니다.
원하는 것은 무엇이든 자유롭게 고치고 개선할 수 있다는 것이 1인 개발자의 가장 큰 장점 중 하나이므로, 언제든지 그 장점을 활용할 수 있다는 것을 스스로에게 상기시키세요.
아무것도 하지 않기
저는 항상 하이테크 스키너 박스(high-tech Skinner Boxes) 1에 빠져듭니다. 레딧, 트위터, 유튜브 등. 이걸 벗어나기 위해 제가 찾은 가장 좋은 방법은 두 단계로 하는 것입니다. 먼저 레딧에서 아무것도 하지 않는 상태로 가고, 그 다음에 일을 시작합니다. 2
레딧에서 바로 집중적인 작업으로 넘어가는 것은 매우 어렵지만, 아무것도 하지 않는 것은 훨씬 쉽고, 결국 뇌가 진정되면 코드를 작성하기 시작하는 것이 그렇게 어려워 보이지 않습니다.
정말로 아무것도 하지 않는다는 말은, 그냥 화면 앞에 몇 분 동안 앉아 있으면, 마치 마법처럼 소비로 인한 도파민 과잉 안개가 걷히고, 다시 창작과 문제 해결에 흥분할 수 있게 된다는 뜻입니다.
사용자들에게 업데이트 하기 (업데이트 로그)
이것은 일석이조입니다. 사용자들에게 업데이트도 할 수 있고, 진척 상황을 돌아보면서 스스로 동기부여도 할 수 있습니다. 종종 달 말에 도달해서 "내가 뭔가 했나?"라고 생각하곤 하는데, 그때 그 달의 업데이트를 작성해보면 많은 일을 해냈다는 것을 알 수 있습니다.
물론 이것은 양날의 검이기도 합니다. 정말 많이 하지 못했다면 문제가 될 수도 있겠지만, 충분히 하지 못하고 있다는 진실을 직면하는 것도 동기부여가 될 수 있습니다.
파트너 구하기
이것은 제목과 모순되는 것처럼 보일 수 있지만, 저는 오직 개발에서만 1인(단독)이라고 말했습니다. 저에게는 제품/디자인/카피 등 모든 면에서 훨씬 뛰어난 파트너가 있습니다.
파트너가 있음으로써 얻는 모든 이점을 나열하지는 않겠지만, 이제 저는 파트너가 필수적이라고 믿게 되었고, 앞으로의 프로젝트에서는 문제에 대해 일치된 생각을 가지면서도 제 기술을 보완해줄 수 있는 파트너를 반드시 찾을 것입니다. 이는 밤낮의 차이입니다.
여기서 동기부여 부분은 대부분 책임감과 관련이 있습니다. 사람들이 운동 파트너를 두는 이유와 같습니다. 당신이 나타나기를 기대하는 사람이 있다는 것 자체가 강력한 동기가 될 수 있습니다. 또한 주간 회의를 하는데 이야기할 것이 없다면, 아마도 충분히 많은 일을 하지 못하고 있는 것이고, 이는 두드러지는 경고 알림이 됩니다.
다른 부분은 당신의 동기부여와 파트너의 동기부여가 밀물과 썰물처럼 오갈 것이고, 이는 동시에 일어나지 않을 것이라는 점입니다. 당신이 동기부여되지 않을 때, 프로젝트에 여전히 동기부여된 다른 사람이 있다는 것은 매우 도움이 됩니다.
무기력한 죄책감을 피하기 위해 제로 데이를 만들지 않기
아무것도 하지 않는 날에는 '제로 데이'를 보내고 있다는 지속적인 죄책감이 있습니다. 이것은 제가 하고 있는 어떤 활동을 완전히 즐기는 것을 방해합니다.
그냥 내가 하고 있는 걸 마음껏 즐기려 해봤지만, 잘 되지 않습니다. 표면적으로는 휴식을 취하고 재충전하는 것 같지만, 전혀 그렇게 느껴지지 않습니다. 그것은 마치 억지로 밀어붙이는 것처럼 느껴집니다. 이는 끊임없이 재충전하려 하지만 점점 더 지쳐가는 부정적인 피드백 루프로 이어질 수 있습니다.
제가 발견한 유일한 방법은 먼저 좋은 작업을 하는 것입니다. 그러면 뛰어들었던 재미있는 느슨한 활동에 완전히 몰두할 수 있습니다.
동기가 있을 때 사용하기
때로는 문제에 대해 생각하면서 잠자리에 들 때가 있는데, 그때 문제를 해결하는 순간에 동기부여가 됩니다.
그것을 적어두고 아침에 시작할 수도 있지만, 대부분의 경우 그냥 일어나서 새벽 4시까지 일합니다. 이것도 1인 개발자의 큰 장점 중 하나입니다. 슬랙에서 대기하기 위해 오전 9시에 일어날 필요가 없으므로, 한밤중이라도 동기부여가 될 때마다 그것을 활용할 수 있습니다.
이것은 아마도 일반화되지는 않겠지만, 다시 말하지만 이것은 조언이라기보다는 블로그 게시물로 각색된 일기장 항목에 가깝습니다. 저는 매일 오전 9시부터 오후 5시까지 비가 오나 햇볕이 나나 강제로 일하는 것보다, 몰입 상태의 작업 기회를 최대화하려고 노력하는 느슨한 접근 방식으로 항상 더 잘해 왔습니다.
ADHD가 있는 당신이 일하는 게 이렇게 힘들어서야 되겠어?
맞습니다. 😄
요약
- 외부 자극을 동기부여로 전환하기
- 머니봇, 언급 알림 서비스, 이정표 피드 등 외부 자극을 통해 동기부여 얻기
- 작은 동기부여의 순간들이 지속적으로 힘이 됨
- 작업을 완료하지 않은 채로 남겨두기
- 작업 시간 끝에 90% 정도 완료한 상태로 남겨두면 다음 날 시작이 훨씬 쉬움
- 너무 쉬운 것은 안 되고, 5-10분 정도 걸리는 작업이 이상적
- 가능한 한 스스로 제품을 사용하기
- 직접 제품을 사용하면서 버그나 개선점 발견
- 직접 경험한 불편함이 전달받은 것보다 훨씬 크게 느껴짐
- 사용자 입장에서 원하는 것을 깨닫고 더 나은 아이디어를 얻음
- 고통을 억지로 참고 견디기보다는 해결하기
- 개발 과정의 고통스러운 부분들을 파악하고 개선하려 노력
- 라이브러리 등을 활용해 반복 작업을 줄이고 개발 경험 향상
- 1인 개발자로서 자유롭게 개선할 수 있는 장점 활용
- 아무것도 하지 않기
- 집중이 안 될 때는 잠시 아무것도 하지 않고 멍 때리기
- 이때 레딧, 트위터, 유튜브 같은 것을 해서는 안 됨
- 몇 분간 화면 앞에 가만히 앉아있으면 도파민 과잉에서 벗어나 다시 몰입할 수 있게 됨
- 사용자들에게 업데이트 하기
- 사용자들에게 업데이트 내용을 전달하면서 한 달간의 진척을 되돌아봄
- 많은 일을 했다는 걸 알게 되어 동기부여가 되기도 하고, 반대로 더 노력해야 함을 깨닫기도 함
- 파트너 구하기
- 개발 외적인 부분에서 도움을 줄 파트너의 중요성
- 함께 일하는 사람이 있다는 책임감이 동기부여가 됨
- 서로 동기부여가 오갈 수 있어 지속력을 얻을 수 있음
- 무기력한 죄책감을 피하기 위해 제로 데이를 만들지 않기
- 아무것도 안 하는 날(제로 데이)이 지속되면 죄책감과 무기력함을 느낌
- 먼저 의미 있는 작업을 하고 나면 여가 시간을 제대로 즐길 수 있음
- 동기가 있을 때 사용하기
- 문제 해결의 순간에 오는 동기부여를 즉시 활용
- 한밤중에 동기 부여가 찾아온다면 그때 작업을 시작하는 것도 좋은 방법
- 정시 근무보다는 몰입 상태가 찾아오는 시간에 작업하는 유연한 방식이 잘 맞음 (1인 개발자 장점)
- ADHD가 있는 당신이 일하는 게 이렇게 힘들어서야 되겠어?
- 이 부분은 ADHD가 있어서 이런 일이 쉽지 않다는 작성자의 자조 섞인 농담으로 보입니다. 😭
사족
개인적으로는 공감이 가는 내용이 많았습니다.
특히 제로 데이 부분이나, 파트너 구하기 부분이 그랬던 것 같네요.
다른 분들도 참고해보시면 좋을 것 같아서 가져와봤습니다.
- 심리학 용어인 '스키너 박스(스키너 상자, Skinner Box)'에서 유래한 은유적 표현. 스키너 박스는 행동주의 심리학자 B.F. 스키너가 고안한 실험 장치로, 동물(주로 쥐나 비둘기)이 특정 행동을 하면 보상(음식)을 주는 방식으로 행동을 조절하는 데 사용된다. 이를 통해 스키너는 보상과 처벌이 행동에 미치는 영향을 연구했다. [본문으로]
- 여기서 '하이테크 스키너 박스'는 현대의 기술, 특히 소셜 미디어나 게임 등이 사용자의 행동을 조절하는 방식을 비유적으로 표현한 것이다. 현대의 플랫폼들은 '좋아요', '팔로워', '뱃지' 등의 보상을 제공함으로써 사용자가 더 많은 시간을 플랫폼에 쓰도록 유도한다. 이는 마치 스키너 박스에서 쥐가 레버를 누르면 먹이를 받는 것처럼, 사용자가 특정 행동을 하면 즉각적인 보상을 받는 식으로 기능한다. [본문으로]
'💻 종합 개발 주제 > 🧮 개발 잡설' 카테고리의 다른 글
Github Organization의 멤버 초대에서 'You can't do that at this time.' 경고 (2) | 2024.09.20 |
---|