실패에 대처하는 프로그래머의 의연한 자세에 대하여
세상의 모든 일이 그렇다.
어떤 일이 걸림 없이 생각했던 것처럼 일어나게 하려면, 돈으로 충분히 대비를 하든 시간으로 충분히 대비를 하든, 충분한 정신력과 체력을 쏟아 예외 상황에 대해 모두 대비하여 준비하여야한다. 우리는 이런 것을 대비해 전문가의 도움을 받는다. 생애 단 한번 있는 결혼식을 위해서 전문 업체에 식 진행을 의뢰하게 되고, 건강이 나쁠 때는 의사에게 상태를 설명하고 진료를 받는다. 이들도 가끔은 실수를 하지만, 그 확률은 무척 낮다. 다년간 진행해온 경험이, 진행 중 발생되는 여러 문제에 대해 적극적으로 상황에 맞게 대처할 수 있게 한다.
프로그래밍은 어떨까. 웹 프로그래밍을 하든, 서버 프로그래밍을 하든, 프로그래밍을 한다면 자신의 코드가 잘못되지 않더라도 여러가지 이유로 에러를 겪을 수 있다. 때로는 동료를 고생시킨 문제의 원인이 자신의 코드에 있을 수 있으며, 후속조치가 끝난 후에는 주변에서 괜찮다고 하더라도 한동안은 스스로를 돌아보게 되고 자책하게 된다. 이런 부분도 경험이 누적됨에 따라 에러를 사전에 어느 정도 예측하게 되고, 에러가 발생되었을 때 알맞은 동작을 수행하여 서비스 전체에 끼치는 영향을 최소화하거나 즉각적으로 사람이 개입하여 조치될 수 있게 프로그램을 구성하는 등의 노력을 하게 된다.
물론 매일을 에러 발생에 대해 일시적 조치 후 근본적 원인 파악에 시간을 투자하지 않는 사람도 있다. 그런 사람은 배제하고, 이 글에서는 스스로 문제의 원인과 앞으로의 방향에 대해 고민하는 분에게 나의 현재 고민과 결론에 대해 이야기를 해보고 싶다.
연차가 충분히 지났음에도 숙련되지 않은 모습을 보이거나, 새로 맡은 분야의 업무로 인해 고생을 하는 등 에러의 발생 확률을 올리는 여러가지 원인이 있다. 그러나 스스로 동일한 사고를 반복하지 않기 위해 노력하는 것은 중요하다. 그 동안에 가져야할 적절한 마음가짐에 대해 많은 고민을 했었다. 회사에서 처음으로 일하고 여러가지 실패를 겪었는데, 그때는 막연히 스스로에게 자책하는 것으로 충분하다고 생각했었고 그 실패를 꽤 크게 생각했었다.
이 습관은 내가 중학생 때부터 꾸준히 갖고 오던 패턴이다. 평가를 받는다, 평가에 대한 결과나 평가에 임하는 과정에서 부족했던 부분에 대한 플래시백이 일어나고 자책한다, 많은 마음 고생 끝에 결론을 내리고 다음에는 그런 일이 일어나지 않게 하겠다고 스스로 다짐하는 주기를 반복하는 형태였다. 지금와서 생각해보니 이만큼 무식한 방법도 없는 것 같긴 한데, 이렇게 스스로를 발전시키고 개선시키는 과정을 대학생 때까지는 쭉 반복해왔던 것 같다.
하지만 이런 방법은 학생 때까지만 가능한 방법이었다. 정규과정을 밟고 간다면, 학생이 해야할 일은 정규 교과과정에서의 '공부'가 메인이다. 대인관계나 기타 자기계발 활동도 이때는 무시하고 보낼 수도 있는 시기이다. 물론 절대 그래서는 안되고, 학생 때는 큰 무리 없이 그렇게도 할 순 있다는 것이다. 이것을 이야기하는 건, 도전하면서 성공과 실패를 경험하는 과정이 내가 학생 때에는 폭이 넓지 않았다는 것이다. 그래서 단순히 자책하고 마음 고생하는 것만으로도 버틸 수 있었는지도 모른다.
성인이 되어 사회로 나가니 해야할 일들이 무척 많고, 이 속에서 성공해가는 것도 있고 크게 실패하는 것도 생기기 시작했다. 이 중에 실패에는 인간 관계에서의 실패도 일어났고, 팀 프로젝트 진행시 감정적인 대처로 스스로와 상대방에게 큰 실망감을 준 실패도 있었고, 진로 선택을 막연하게 한 덕분에 첫 회사를 너무 빨리 골라 고생한 실패 사례도 있었다. 적어도 1~2년 전까지는 계속 그 패턴으로 스스로를 괴롭히며 실패에 대해 고민하고 고통 받으며 살아왔던 것 같다. 그리고 다른 사람들은 그런 고통 따위 없이 모두가 평탄하고 행복하게 웃으며 살아가는 것처럼 보여서 너무 부러웠고, 그런 내 모습이 너무 싫었던 적도 있었다.
그런데 지금 와서 생각해보니, 왜 마음 고생만하며 그렇게 실패에 대해 대처해야했나 싶은 것이다. 그렇게 자책한다고 해도, 이미 실패한 것에 대해 하늘이 가엾게 여기어 갑자기 성공으로 바뀌진 않는다. 그리고 마음 속으로만 앓고 있으면 상대방은 절대 알아봐주지 못한다. 그 과정 속에 닳아지는 체력과 정신력은 덤이다. 그렇게 시간이 지나 다음에 같은 상황을 마주해야 된다면, 그 과정들을 통해 얻은 걸 바탕으로 어떻게 더 나은 결과를 낳을 것인가?
냉정히 따져, 그렇게 보낸 시간 속에서 얻은 건 다음 도전에 대한 공포와 두려움 밖에 없다고 생각한다. 지속적으로 일어나는 플래시백은 더 많은 피로감을 주고, 도전하고 싶은 생각을 머리에서 없앤다. 평온한 삶을 위해 모든 걸 포기하게 되고, 다른 사람들의 눈치를 보기 바빠진다. 최근에서야 이런 상황이 반복되고 있다는 걸 나는 깨달았다.
소프트웨어 엔지니어로서, 이런 상황이 계속 반복된다면 성장은 커녕 현상 유지도 쉽지 않을 것 같아 여러 고민을 한 끝에 몇가지 행동의 변화를 유도해보았다. 그리고 몇가지 해를 얻었다.
첫번째는 실패에 대한 두려움을 없애기 위한 여러 안전장치를 스스로 찾거나, 주변에서 사용할 수 있다면 사용하는 것이다. 전자의 안전장치는 백업 계획, 즉 원래 했던 계획이 틀어졌을 때 되돌아갈 길을 찾아두는 것이다. 후자의 안전장치는 자동차 운전의 보험과 같은 것인데, 상사나 동료에게 해당 소프트웨어 코드의 리뷰를 부탁하거나 함께 의논할 게 있다고 요청하는 식이다. 그리고 솔직하게 잘못되는 어떻게 해야할지에 대해 이야기하고 도움을 요청 받는 것이다. 심리적인 도움이라도 받으면, 막연히 실패에 대해 두려워하는 시간을 줄이고 실제 문제에 집중하는데 도움이 되었다.
두번째는 상황에 대해 냉정하게 판단하는 능력을 갖는 것이다. 그리고 스스로 잘못한 사실에 대해 '자신'을 배제하고, 일의 결과만 놓고 생각하려고 노력하는 것이 중요하다. '사람'이 잘못되었다고 판단한 순간, 정작 일어난 사건으로부터 얻어야할 교훈을 얻는 길로부터 멀어져 자기 마음 속의 무한한 심연 속에 빠져들 수 밖에 없다.
세번째는 머리 속으로만 회고(retrospect, 최근에 들은 가장 멋진 단어다)하지 말고 가능한 자신의 말 또는 활자나 필기의 형태로 자신이 겪었던 문제와 현재 상태와 앞으로의 상태와 미래의 방향을 정리하여 마음을 터놓고 이야기할 수 있는 사람과 공유하는 것이다. 이 과정을 통해 생각이 정리되고, 자기 자신에게 부담을 주고 있던 감정이 외부로 발산되며 그 사이로 앞으로 나아갈 자신감이 자리잡는다. '감정'의 공간은 유한하며, 비워주지 않으면 새로운 감정인 '희망'을 담아둘 자리가 없다.
네번째는 지금 일의 목표가 아니라 자신의 삶의 목표에 대해 생각해보는 것이다. 사실 '생업'이라는 말이 있듯, 살아가기 위해서 해야하는 일이 있다. 지금 사회는 돈이 없으면 세상에서 살아갈 수 없기 때문에, 돈을 위해 결국 일을 하게 된다. 하지만 자기 자신의 행복과 보람보다 돈을 앞에 두었을 때 힘들다면 다른 방향도 고민해보길 권한다. 이 회사가 아니더라도, 자신은 다른 일을 찾아서 나아갈 수 있으며, 무엇을 해도 어떻게든 먹고 살 수 있겠지라는 생각이 이런 방향과 비슷하다. 주객이 전도되어 한번뿐인 삶을 회사에 온전히 바치며 살진 말자. 이런 말도 있지 않은가, 하루에 쓸 에너지 100이 있다면 회사에서는 60만하고 40은 자신을 위해서 사용해달라고.
아직 모든 문제가 해결된 것은 아니지만 지난 1년간 이런 식으로 내 심리적 문제를 극복하고자 해보았다. 어쩌면 첫 회사로써 좋은 회사에 입사했다면, 지금쯤 좋은 분위기와 사람들 속에서 급속 성장하여 어떤 인재가 되어있을지는 모르겠다. 하지만 지금 회사에서 약 2년을 안좋은 환경 속에서 마음 고생하며 다녔고, 때론 그 시간이 버려졌다 생각하기에 아깝기도 하다. 그러나 앞으로 살아가면서 겪을 수 있는 가장 큰 문제에 대한 디버깅(?)에 큰 진척이 이루어졌으니 전화위복이 되지 않았을까.
마지막으로, 위에서 말했던 4가지 사항은 스스로 아무런 노력도 하지 않고 남탓만 하는 사람에게는 큰 도움이 되지 않으리라 생각한다. 그런 분들은 자기 탓을 하는 시간을 한번쯤 가져보길 추천한다.
어떤 일이 걸림 없이 생각했던 것처럼 일어나게 하려면, 돈으로 충분히 대비를 하든 시간으로 충분히 대비를 하든, 충분한 정신력과 체력을 쏟아 예외 상황에 대해 모두 대비하여 준비하여야한다. 우리는 이런 것을 대비해 전문가의 도움을 받는다. 생애 단 한번 있는 결혼식을 위해서 전문 업체에 식 진행을 의뢰하게 되고, 건강이 나쁠 때는 의사에게 상태를 설명하고 진료를 받는다. 이들도 가끔은 실수를 하지만, 그 확률은 무척 낮다. 다년간 진행해온 경험이, 진행 중 발생되는 여러 문제에 대해 적극적으로 상황에 맞게 대처할 수 있게 한다.
프로그래밍은 어떨까. 웹 프로그래밍을 하든, 서버 프로그래밍을 하든, 프로그래밍을 한다면 자신의 코드가 잘못되지 않더라도 여러가지 이유로 에러를 겪을 수 있다. 때로는 동료를 고생시킨 문제의 원인이 자신의 코드에 있을 수 있으며, 후속조치가 끝난 후에는 주변에서 괜찮다고 하더라도 한동안은 스스로를 돌아보게 되고 자책하게 된다. 이런 부분도 경험이 누적됨에 따라 에러를 사전에 어느 정도 예측하게 되고, 에러가 발생되었을 때 알맞은 동작을 수행하여 서비스 전체에 끼치는 영향을 최소화하거나 즉각적으로 사람이 개입하여 조치될 수 있게 프로그램을 구성하는 등의 노력을 하게 된다.
물론 매일을 에러 발생에 대해 일시적 조치 후 근본적 원인 파악에 시간을 투자하지 않는 사람도 있다. 그런 사람은 배제하고, 이 글에서는 스스로 문제의 원인과 앞으로의 방향에 대해 고민하는 분에게 나의 현재 고민과 결론에 대해 이야기를 해보고 싶다.
연차가 충분히 지났음에도 숙련되지 않은 모습을 보이거나, 새로 맡은 분야의 업무로 인해 고생을 하는 등 에러의 발생 확률을 올리는 여러가지 원인이 있다. 그러나 스스로 동일한 사고를 반복하지 않기 위해 노력하는 것은 중요하다. 그 동안에 가져야할 적절한 마음가짐에 대해 많은 고민을 했었다. 회사에서 처음으로 일하고 여러가지 실패를 겪었는데, 그때는 막연히 스스로에게 자책하는 것으로 충분하다고 생각했었고 그 실패를 꽤 크게 생각했었다.
이 습관은 내가 중학생 때부터 꾸준히 갖고 오던 패턴이다. 평가를 받는다, 평가에 대한 결과나 평가에 임하는 과정에서 부족했던 부분에 대한 플래시백이 일어나고 자책한다, 많은 마음 고생 끝에 결론을 내리고 다음에는 그런 일이 일어나지 않게 하겠다고 스스로 다짐하는 주기를 반복하는 형태였다. 지금와서 생각해보니 이만큼 무식한 방법도 없는 것 같긴 한데, 이렇게 스스로를 발전시키고 개선시키는 과정을 대학생 때까지는 쭉 반복해왔던 것 같다.
하지만 이런 방법은 학생 때까지만 가능한 방법이었다. 정규과정을 밟고 간다면, 학생이 해야할 일은 정규 교과과정에서의 '공부'가 메인이다. 대인관계나 기타 자기계발 활동도 이때는 무시하고 보낼 수도 있는 시기이다. 물론 절대 그래서는 안되고, 학생 때는 큰 무리 없이 그렇게도 할 순 있다는 것이다. 이것을 이야기하는 건, 도전하면서 성공과 실패를 경험하는 과정이 내가 학생 때에는 폭이 넓지 않았다는 것이다. 그래서 단순히 자책하고 마음 고생하는 것만으로도 버틸 수 있었는지도 모른다.
성인이 되어 사회로 나가니 해야할 일들이 무척 많고, 이 속에서 성공해가는 것도 있고 크게 실패하는 것도 생기기 시작했다. 이 중에 실패에는 인간 관계에서의 실패도 일어났고, 팀 프로젝트 진행시 감정적인 대처로 스스로와 상대방에게 큰 실망감을 준 실패도 있었고, 진로 선택을 막연하게 한 덕분에 첫 회사를 너무 빨리 골라 고생한 실패 사례도 있었다. 적어도 1~2년 전까지는 계속 그 패턴으로 스스로를 괴롭히며 실패에 대해 고민하고 고통 받으며 살아왔던 것 같다. 그리고 다른 사람들은 그런 고통 따위 없이 모두가 평탄하고 행복하게 웃으며 살아가는 것처럼 보여서 너무 부러웠고, 그런 내 모습이 너무 싫었던 적도 있었다.
그런데 지금 와서 생각해보니, 왜 마음 고생만하며 그렇게 실패에 대해 대처해야했나 싶은 것이다. 그렇게 자책한다고 해도, 이미 실패한 것에 대해 하늘이 가엾게 여기어 갑자기 성공으로 바뀌진 않는다. 그리고 마음 속으로만 앓고 있으면 상대방은 절대 알아봐주지 못한다. 그 과정 속에 닳아지는 체력과 정신력은 덤이다. 그렇게 시간이 지나 다음에 같은 상황을 마주해야 된다면, 그 과정들을 통해 얻은 걸 바탕으로 어떻게 더 나은 결과를 낳을 것인가?
냉정히 따져, 그렇게 보낸 시간 속에서 얻은 건 다음 도전에 대한 공포와 두려움 밖에 없다고 생각한다. 지속적으로 일어나는 플래시백은 더 많은 피로감을 주고, 도전하고 싶은 생각을 머리에서 없앤다. 평온한 삶을 위해 모든 걸 포기하게 되고, 다른 사람들의 눈치를 보기 바빠진다. 최근에서야 이런 상황이 반복되고 있다는 걸 나는 깨달았다.
소프트웨어 엔지니어로서, 이런 상황이 계속 반복된다면 성장은 커녕 현상 유지도 쉽지 않을 것 같아 여러 고민을 한 끝에 몇가지 행동의 변화를 유도해보았다. 그리고 몇가지 해를 얻었다.
첫번째는 실패에 대한 두려움을 없애기 위한 여러 안전장치를 스스로 찾거나, 주변에서 사용할 수 있다면 사용하는 것이다. 전자의 안전장치는 백업 계획, 즉 원래 했던 계획이 틀어졌을 때 되돌아갈 길을 찾아두는 것이다. 후자의 안전장치는 자동차 운전의 보험과 같은 것인데, 상사나 동료에게 해당 소프트웨어 코드의 리뷰를 부탁하거나 함께 의논할 게 있다고 요청하는 식이다. 그리고 솔직하게 잘못되는 어떻게 해야할지에 대해 이야기하고 도움을 요청 받는 것이다. 심리적인 도움이라도 받으면, 막연히 실패에 대해 두려워하는 시간을 줄이고 실제 문제에 집중하는데 도움이 되었다.
두번째는 상황에 대해 냉정하게 판단하는 능력을 갖는 것이다. 그리고 스스로 잘못한 사실에 대해 '자신'을 배제하고, 일의 결과만 놓고 생각하려고 노력하는 것이 중요하다. '사람'이 잘못되었다고 판단한 순간, 정작 일어난 사건으로부터 얻어야할 교훈을 얻는 길로부터 멀어져 자기 마음 속의 무한한 심연 속에 빠져들 수 밖에 없다.
세번째는 머리 속으로만 회고(retrospect, 최근에 들은 가장 멋진 단어다)하지 말고 가능한 자신의 말 또는 활자나 필기의 형태로 자신이 겪었던 문제와 현재 상태와 앞으로의 상태와 미래의 방향을 정리하여 마음을 터놓고 이야기할 수 있는 사람과 공유하는 것이다. 이 과정을 통해 생각이 정리되고, 자기 자신에게 부담을 주고 있던 감정이 외부로 발산되며 그 사이로 앞으로 나아갈 자신감이 자리잡는다. '감정'의 공간은 유한하며, 비워주지 않으면 새로운 감정인 '희망'을 담아둘 자리가 없다.
네번째는 지금 일의 목표가 아니라 자신의 삶의 목표에 대해 생각해보는 것이다. 사실 '생업'이라는 말이 있듯, 살아가기 위해서 해야하는 일이 있다. 지금 사회는 돈이 없으면 세상에서 살아갈 수 없기 때문에, 돈을 위해 결국 일을 하게 된다. 하지만 자기 자신의 행복과 보람보다 돈을 앞에 두었을 때 힘들다면 다른 방향도 고민해보길 권한다. 이 회사가 아니더라도, 자신은 다른 일을 찾아서 나아갈 수 있으며, 무엇을 해도 어떻게든 먹고 살 수 있겠지라는 생각이 이런 방향과 비슷하다. 주객이 전도되어 한번뿐인 삶을 회사에 온전히 바치며 살진 말자. 이런 말도 있지 않은가, 하루에 쓸 에너지 100이 있다면 회사에서는 60만하고 40은 자신을 위해서 사용해달라고.
아직 모든 문제가 해결된 것은 아니지만 지난 1년간 이런 식으로 내 심리적 문제를 극복하고자 해보았다. 어쩌면 첫 회사로써 좋은 회사에 입사했다면, 지금쯤 좋은 분위기와 사람들 속에서 급속 성장하여 어떤 인재가 되어있을지는 모르겠다. 하지만 지금 회사에서 약 2년을 안좋은 환경 속에서 마음 고생하며 다녔고, 때론 그 시간이 버려졌다 생각하기에 아깝기도 하다. 그러나 앞으로 살아가면서 겪을 수 있는 가장 큰 문제에 대한 디버깅(?)에 큰 진척이 이루어졌으니 전화위복이 되지 않았을까.
마지막으로, 위에서 말했던 4가지 사항은 스스로 아무런 노력도 하지 않고 남탓만 하는 사람에게는 큰 도움이 되지 않으리라 생각한다. 그런 분들은 자기 탓을 하는 시간을 한번쯤 가져보길 추천한다.
댓글
댓글 쓰기