완벽주의에 대한 경계 일상속에서...

저녁때 먹은 삼겹살이 얹혀서 잠도 안오고(사실 요즘 매일 밤 불면증에 시달린다), 항상 써보고 싶던 개똥 철학이 하나있고 하여 글이나 쓴다.

"완벽주의"

이거 참 멋진 말 같다. 뭔가 프로페셔널한 냄새도 난다.

근데 사실은 이게 다 게으른자들의 자기 합리화이고, 실패하는 사람들의 전형적인 사고 방식이다.


혹시 학교 다닐 때 그런 경험 없나?

공부를 좀 하려고 했는데 "완벽한 환경"을 갖추기 위해 방 청소하고, 책상 정리하고, 구겨진 사전 꼭꼭 펴고, 가족 중에 TV 보는 사람이 있으면 "당당하게" 짜증 한 번 확내주고... 그러다보면 지쳐서 공부는 간데 없고 이젠 청소 다 했다는 만족감에 퍼질러 잔다.

게으른 사람들의 전형적인 패턴이다.

"아직 완벽하게 환경이 안 갖춰졌잖아?"

이런 사람들은 아무것도 시작하지 못한다.

내가 아침에 일어나면 항상 하는 생각이 있다.
"아 오늘은 너무 추워.. 운동하기에 안 좋아. 따뜻해지면 하자... 아 오늘은 바람이.. 오늘은 잠이 덜깨서.. 오늘은 날씨가 구려서..."

이는 인간관계나 프로그래밍으로 까지도 확장된다.

사람을 쉽게 사귀지 못하는 사람들은 나 자신을 돌아보건데, "완벽한 관계"를 원한다. 상대와 내가 서로를 완벽하게 이해하고, 완벽하게 사랑해야 그게 진짜 사랑이라고 믿는 것이다. 평생 그런 사람만 찾다가 날 샌다. 나도 상대방을 이해 못하고, 이런 나를 이해해 줄 수 있는 사람도 세상엔 없다. 관계를 맺어가며 서로를 이해하고자 노력하는 것이 다가 아닐까 싶다.

애자일 방법론과 린 소프트웨어 개발 관련 책을 보면 가장 경계하는 것이 바로 이 "완벽주의"이다.

폭포수 모델의 "요구 사항을 완벽하게 정리하지 않으면 안된다"는 식의 방법론 때문에 수 많은 프로젝트들이 시작도 못해보고 망하는 것이다. 아니면, 완벽하게 못 할 바에야 모두 다 대충 해버리자!! 따위의 생각으로 막가파 프로젝트로 변질된다. 극과 극은 통한다.

나도 항상 느낀다. 머리속에 완벽한 모델이 갖춰지지 않은 상태에서는 코드 작성을 거부하는 심리가 도사리고 있다. 어떤 때는 완벽한 모델을 만들고자 하는 생각으로 2주간 코딩을 중단한 적도 있다.
하지만, 일단 코딩을 시작해서 작동하는 것을 본 뒤에 이상적인 형태로 리팩토링 해 나가는 것이 앞선 경험을 통해 더 나은 코드를 만들어 낸다는 것을 자주 느끼고 있다. 2주간 코딩을 중단하고서도 결론이 안나서 내가 취했던것이 바로 이 방법이다(결국 2시간 걸렸다).
어쩌면 내가 생각하는 완벽한 모습이 아니더라도 최소한 일단은 작동하는 코드를 얻게 된다.

TDD도 보면, 컴파일 조차도 안되는 불완전한 테스트로 시작하여 완벽하게 바꾸어나가는 과정이다.

책을 읽을 때도 이런 원칙이 적용된다. 책 내용을 처음 읽을 때부터 완벽하게 이해하겠어!! 하는 각오로 임하는 사람은 책 한권을 몇년이 걸려도 못읽고 포기하기 일쑤이다. 차라리 대충 읽고 대신 여러번 읽거나, 동종의 다른 책을 여러권 보는게 훨씬 더 도움이 된다.

완벽한 시작을 원한다면.. 평생 꿈이나 꾸고 살아라.

완벽한 시작은 없다. 아니 설령 있더라도 그걸 기다리다가 아무런 시도도 못해보고 끝날 것이다.

불완전함에도 불구하고 시도하고 또 시도하며 끊임없는 개선과 노력(리팩토링)으로 완벽에 가까운 결말에 다다를 수 있을 뿐이다.

참고 서적 :
 * 성공의 심리학
 * 익스트림 프로그래밍
 * 린 소프트웨어 개발의 적용, 린 소프트웨어 개발
 
이 글은 나 자신에 대한 최면이다. 완벽주의 따위는 개들도 줘도 안 먹어!

핑백

덧글

  • nainu 2008/03/04 08:17 # 삭제

    개들도 줘도 안먹어!!-_-!! 좋은글 보구 가요 ㅎㅎ
  • 황상철 2008/03/04 08:29 # 삭제

    자기관리 서적에서 많이 봤던건데..이렇게 지식들간의 연관성을 찾아보는것도 재미있는거 같습니다.
  • jeany4u 2008/03/05 11:26 # 삭제

    완벽한 시작은 없다...알지만 잘 안된다는 ..제가 게으른 게 분명하겠죠 ^^
    일신온일신 하는 마음으로 작은 거 하나부터 시작하자.. 다짐해 봅니다..
    글을 읽고 나니... 삼겹살이 먹고 싶어졌어요 ^^;;
  • rath 2008/03/06 15:56 # 삭제

    저처럼 발로 만들어 보시는 것은 어떨까요 --;
    누가봐도 허술한 코드를 짜는 재미도 솔솔해요 -ㅇ-
  • 근영 2008/03/07 03:38 # 삭제

    마가린으로 담아갑니다^^
  • 근영 2008/03/07 03:39 # 삭제

    완벽주의에 대한 경계...

    맞는 말 같습니다.
    저 같은 경우에도...뭔가 완벽한 모델을 추구한 후에 나가자 이럴때는 정말 머리 속이 새하얗게 변합니다..
    하지만 뭔가 일을 하면 이걸 이렇게 바꾸면 어떨까? 하면서 좀 더 완성형(?)의 모습에 도달하게 되더군요..
    좋은 글 잘 봤습니다.
  • ologist 2008/03/08 18:46 # 삭제

    좋은글입니다.
  • 소아나 2008/04/12 10:49 #

    완벽주의를 검색하다 와서 잘 읽고 갑니다.
    감사합니다 ^^ 정말 좋은 글이네요. 링크걸고 오래오래 보겠습니다.
  • rosa 2009/01/21 01:47 #

    정말 공감되는 글이네요~ 담아갑니다^^
  • 무바이 2009/03/27 10:25 # 삭제

    완벽주의 검색하다 공감되는 좋은글 보구 갑니다. 완벽주의자분들 이젠 포용주의, 긍정주의로 이주해 보아요^^'
  • 자갈 2013/08/13 02:23 # 삭제

    잘 보고갑니다.
    행복하세요~
  • ologist 2013/08/14 01:14 # 삭제

    아니 이렇게 훌륭한 글에 덧글을 짧게 달다니! 우리는 완벽한 시작을 하기보다는 완벽한 결과물을 만들어 만들도록 해요~
※ 로그인 사용자만 덧글을 남길 수 있습니다.