디젤차 어떻게 타지?

난생 처음으로 2천 CC 이상의 가솔린 차를 몰아보고 있다. 렌트한 차가 Mazda6라는 차인데 디자인이 그다지 이쁘지 않아서 첫 인상은 별로였는데 알고 봤더니 이 차도 “Full” 사이즈란다. 덩치가 작아서 그냥 “Middle”인 줄 알았는데.

근데 이 녀석 역시나 충분한 배기량에(2300cc인 듯하다. Mazda6가 2300이라 3000이 있다고 하는데 3000cc짜리를 렌트해줬을 것같지는 않고. 근데 어떻게 확인할 수 있을까? 내일 본넷을 한번 열어볼까?) 가솔린이고 충분히 달릴만한 공간이 있는 지라 가끔씩 정말 운전하는 재미가 있다.

밟으면 밟는 대로 쭉쭉 나가고, 진동도 적고, 소음도 적고.

이제 돌아가면 지금처럼 밟으면 절대 안되는(밟으면 울컥 하고 시커먼 방귀를 뀌고 한 박자 늦게 반응하는) 게다가 진동도 큰  성탄절 할아버지차를 어떻게 예전처럼 이뻐해줄 수 있을까 고민이다. 그냥 짐을 왕창 싣고 다닐까? 그 녀석 장점이 그런 거니까?

미국에서 부러운 점 중 하나가 바로 이런 거다. 저렴한 차량 가격(3500CC 밴이 2천만원이라니 말 다 했지)에 가솔린 값 싸고. 그리고 왠만한 거리도 길만 밀리지 않으면 금방 갈 수 있으니.

이제 돌아가면 가솔린하고 디젤 기름값이 같은 건 아닌 지 모르겠다. 쩝…

그래도 금방 적응하겠지? 가면 새로 나왔다는 iRiver NV life도 살짝 관심을 가져주고, 사이드스텝도 달고, 후방카메라도 고민해보고 그러고 싶당…  오늘 프리우스에서 본 컬러 후방 카메라 awesome!!!

Positive Retrospective

우리는 왜 긍정적인 회고를 하지 못하는가?

  • 짜증스런 목소리로 “왜 잘못했냐고?” 소리치는 매니저가 만들어 놓은 아픈 상처때문에?
  • 짜증스런 표정으로 의자에 엉덩이를  걸치고 앉아 핸드폰 게임만 하고 있는 개발자들때문에?
  • 해봐야 소용없다는 회의적인 생각때문에?
  • 얄팍한 자존심때문에? 이미 패치내서 지난 간 일을 들쳐내기 싫어서?
  • 왜 회고를 맨날 골방에서 큰 소리를 내가면서 해야 할까? 왜 밝은 장소에서 할 수 있는 분위기가 안 되는 걸까?

우리는 안 하는 걸까? 못하는 걸까? 둘 다 겠지.

어떻게 하면 바꿔갈 수 있을까?

내가 희망하는 개발팀 문화를 가진 회사

예전에도 한번 “잔업없는 회사”라는 내용으로 접한 적이 있었는데 우연히 어떤 글을 보고 다시금 찬찬히 그 회사의 글들을 보게 되었다.

(주)사이냅소프트

많은 IT업체가 그렇듯이 회사의 생활등을 블로그를 통해 접할 수 있다(우리도 IT업체인듯 한데 그러기엔 우린 엄살이 너무 심하지. 뭐 그리 숨길 게 많다고)

그 중에는 사이냅소프트의 전경헌 사장님과의 인터뷰 글도 볼 수 있는데 사장님의 생각을 통해 회사의 생활이 어떨 지 짐작할 수 있다(반론의 여지가 있는 말이긴 하다. 윗사람의 생각대로 회사가 움직인다고 단정지을 수 없기 때문이다. 구름 위에 있는 사람이 갖는 생각과 현실은 다를 수 있으니. 그래도 일단 들어보자)

그 중 일부다.

유용빈: 정치적 스트레스는 어떻게 해결하시나요.
회 사 내에 그런 스트레스가 얼마나 있는지 제가 잘 알지는 못합니다만 다른 회사에 비해서는 상대적으로 적으리라 생각합니다. 개발자들이 지원하는 역할에 머무르는 회사가 많은데 사이냅소프트는 저부터 시작해 영업 직원들도 개발자 출신이라 서로 이해하는 부분이 많아 갈등이 크지는 않습니다. 또 지난해 애자일 컨설팅의 컨설팅을 받으면서 회고하는 문화가 자리잡고 있습니다. 회고란 체계적으로 즐겁게 반성하고 개선점을 찾는 활동인데 그 이후로는 회사에 있던 문제들에 대해 서로 동등한 수준에서 의사 소통을 하면서 그와 같은 스트레스가 더 줄고 있다고 봅니다.

이국진: ‘가정을 지키기 위해 일찍 퇴근한다’는 글을 쓰셨는데 정시 퇴근은 잘 지켜지나요.
그 글은 2005년에 쓴 글입니다. 전에는 일을 굉장히 많이 했습니다. 결혼하고 나서도 아침에 일찍 출근하고 막차 시간이 거의 다 됐을 때나 새벽에 집에 들어갔습니다. 집에서는 잠만 자고 휴일에도 회사에 나와 일하기도 했습니다. 거의 일만 하는 사람이었죠. 일로서 성공하고 싶은 생각도 많았고요. 2005년은 큰 아들이 유치원에 다니던 해였는데 밥 먹으면서 유치원 생활에 대해 아들에게 물었는데 아이가 대답을 하지 않았습니다. 아내가 대신 이야기를 해줬지만 아들에게 직접 듣고 싶다고 말을 거니 아이가 “아빠는 알지도 못하면서 아는 체 해”라고 말했습니다. 그러고 보니 아이가 보기에는 자기가 일어나기 전에 회사에 나가고 자고 있을 때 집에 들어오니 자신에 대해 아무것도 모른다고 생각하는 게 당연하겠더군요. 물론 아내를 통해 아이가 어떻게 지내는지 늘 듣고 있었지만요. 굉장히 충격을 받았고 이게 제가 원하던 삶은 아니라는 걸 깨달았습니다. 아이가 태어날 때만 해도 크는 동안 많이 안아주고 좋은 이야기를 들려주고 싶었는데 열심히 일하다 보니 어느새 아이는 자라 학교 갈 나이가 되어 있더군요. 세상은 장기전이고 그러려면 가정도 지켜야 하고 저뿐만 아니라 직원들도 마찬가지라는 생각이 들었습니다. 그 때부터 열심히(?) 저녁에 일찍 퇴근하고 있습니다. 아이들이 굉장히 좋아하고요. 요즘은 간혹 집에서 저녁 먹고 들어오라는 전화가 옵니다.(웃음)

오랜 기간 몸에 밴 야근이란 습관을 되돌리는 데 반발은 없었나요.
야 근을 하느냐 하지 않느냐가 좋은 개발자를 판단하는 기준은 아닐 겁니다. 책임감이 굉장히 강한 개발자들은 맡은 일이 진전되는 것을 확인하려고 야근을 하기도 합니다. 야근 금지를 반대하는 개발자들도 있었습니다. 회사에서 뭐라 하든 ‘내 일이기 때문에’ 야근을 해도 상관 없다는 이유 때문이었죠. 소프트웨어 개발은 장기전이고 몇 달 바짝 해서 성공하는 게 아니기 때문에 자신의 건강과 가정을 지키며 일하자고 계속 설득해 지금은 야근 금지가 많이 정착되어 특별한 일이 있지 않는 한 다들 일찍 퇴근합니다.

지금도 개발을 하시나요.
예. 수시로 하고 있습니다. 직원들이 개발을 하다 문제에 부딪히면 같이 살펴보기도 하구요. 프로그래밍 공부도 꾸준히 하고 있습니다. 제품 코딩보다는 직원 교육을 위한 코딩 위주로 하고 있습니다. 최근에는 파이썬을 많이 쓰는데 아이디어가 떠오르면 파이썬으로 빠른 시간 안에 구현할 수 있어 직원들이 어떤 문제에 막혔을 때 그것을 푸는 데 도움이 될 만한 코드를 파이썬으로 짜서 보여주기도 합니다. 개발이 여전히 좋아 은퇴 후에도 코드를 짜는 걸 즐기지 않을까 합니다.

앞으로 구상이 있으시다면 소개해 주세요.
지 금까지 한국 소프트웨어 개발사들을 보면 유명 개발자 한두 명에게 크게 의존하는 경우가 많았는데 그런 방식에는 한계가 있다고 봅니다. 문화를 잘 가꾸며 체계적으로 개발을 하는 회사가 성공하는 사례가 나와야 할 것 같습니다. 좋은 소프트웨어를 만드는 데 필요한 것이 있다면 기꺼이 받아들여 배우고 적용할 계획입니다.

또 다른 글,

다양한 기능은 어떻습니까? 마이크로소프트 오피스에는 수없이 많은 기능이 있습니다. 그러나 우리가 사용하는 기능은 매우 단순한 몇가지에 지나지 않습니다. 그 많은 다양한 기능은 어디다 쓰는 것이죠? 그 기능들을 개발하느라고 수없이 많은 개발자들이 시간을 쏟아 부었을텐데… 우리한테 어떤 의미가 있습니까? 사실상 거의 의미가 없죠. 일반인들이 워드에서 XML로 저장하는 기능을 사용할 일이 있겠습니까? 엑셀에서 포아송분포를 계산할 필요가 얼마나 있겠습니까? 그러한 다양한 기능들은 영업을 위한 자료에 사용될 문장 몇개 만드는 것 이상의 용도가 없습니다. 핵심기능이 잘되는 것이 훨씬 중요합니다. 일정과 기능도 무시 못할 요소이기는 하지만, 결코 품질보다 중요하지는 않습니다.

먼저, 정치적 환경입니다. 이건 언제나 발생하고 가장 골치아프고, 해결하기 어려운 것 중에 하나 입니다. 팀장이상 급에서는 어느 정도 신경을 쓸 수 밖에 없죠. 정치적 환경에서 발생하는 문제는 임원들에게 알려주세요. 임원들이 해결하도록 하겠습니다. 정치적 환경 때문에 골치아파 하지 마십시오. 임원들이 해야하는 역할 중에 하나가 정치적 문제를 없애는 것입니다.

두번째로는 기술적 환경이 있습니다. AIX에서 돌아가는 프로그램을 짜야하는데 AIX가 없으면 안되겠죠. PC가 2대 있으면 금방 해결할 수 있는 문제라면 한대 더 사야겠구요. 지금 쓰고 있는 컴퓨터가 느려서 컴파일시간이 오래걸리면 바꿔야죠. 메모리가 부족하면 늘려야겠구요. 기술적인 환경은 약간의 비용을 들이면 쉽게 해결이 가능합니다.

우리 인트라원 자유게시판에 보면 “빌게이츠 찾아가는 법”이라는 제목으로 지도 3장이 올려져 있을 것입니다. 아마 관심있게 본 사람들은 알 수 있었겠지만 마이크로소프트 메인 캠퍼스의 대부분 건물들은 십자(+)형이나 에이취자(H)형으로 되어있습니다. 우리나라 건물들이 대부분 박스(ㅁ)형인 걸 생각하면 매우 특이한 것입니다. 마이크로소프트 메인 캠퍼스에도 박스형 건물들이 몇개 있지만 강당 등 공통 공간인 경우입니다. 직원들이 일하는 공간은 대부분 십자형과 에이취자형 건물입니다. 박스형건물이 건축비가 싸게 먹힌다는데… 왜? 십자형과 에이취자형으로 건물을 지었을까요? 십자형과 에이취자형 건물의 특징은 좁은 복도와 복도 양쪽으로 창이 딸린 방을 배치할 수 있다는 것입니다. 즉, 마이크로소프트는 메인 캠퍼스에 근무하는 모든 사람에게 창이 딸린 작은 방(1인실 또는 2인실)을 주고 있습니다. 너무 돈이 많아서, 돈질을 하는 걸로 보이나요? 빌게이츠씨가 헛 돈 쓰는 거 봤습니까? 차라리 기부를 하면 했지, 과시를 위해서 돈쓰는 건 아닐 겁니다. 또, 빌아저씨쯤되면 과시하지 않아도 누구나 인정하는 세계에서 제일 돈이 많은 사람이잖아요. 빌아저씨가 소프트웨어 회사에서 생산성과 품질을 높이는 가장 좋은 업무 환경을 연구해서(연구비줘서 시켰겠죠) 실현한 것이라 생각합니다.

자, 어떤가?

흔한 말로 생각이 바로 박혀있는 것처럼 보이지 않는가? 어떤 회사의 사장이란 사람이 저런 위험한(?) 말을 할 수 있을까? MS의 건물 배치에 대해서는 피플웨어에서도 언급했던 내용인데 우리 회사 매니저중에 얼마나 많은 사람들이 그 책을 봤을까? 내 근처 사람중에 단 한 사람이라도 본 적이 있을까?(이런 S/W 생산성에 관한 책을 정리해서 공유 해볼까?)

구글 리더에 등록했는데 최근 10개만 보여서 열심히 블로그 페이지에서 직접 글들을 읽고 있다. 볼만한 내용이 너무 많다.

다만 블로그에 댓글이 그리 많은 편이 아닌 것이 아쉽다.

과연 우리 회사는? 우리 회사 역시 세상이 좋다고 하는 것 중 몇 개는 따라 하려고 한다. 다만 항상

  • Top-down
  • 수치를 통관 관리
  • 안하면 갈금

의 형식을 갖는다. 왜 해야 하는 지에 대해 충분히 설명하고(당연한 것도 있겠지만) 자발적으로 하는 문화를 만들기 보다는 늘 명령하달식으로 진행한다. 위키를 설치해서 사용하는 것을 몇 번 보여줬는데 맘에 들었나 보다. 위키를 많이 사용하라고 권고하기 시작했다. 조만간 주간별 포스팅 수등을 관리하면서 1인당 포스팅 갯수를 할당하지 않을까 걱정이다 -_-

Apple TV

갑자기 필 받은 제품.

우리의 뽐뿌쟁이 강책임네 블로그에 있는 글이다.(무단펌 용서~)

제가 어렸을때, 우리집에는 환등기(슬라이드)가 있어서
가끔씩 가족들끼리 또는 손님들과 가족 사진을 스크린에
비춰 가며 보는게 큰 행사중의 하나였습니다.

나중에 커서 사진을 배우면서 교재로 슬라이드를 많이 보게
되었는데, 그때 기억이 많이 나더군요.

그래서 작년에 살림 장만하면서 큰 TV가 생겼는데
이걸로 사진을 볼 수 있는 가장 쉽고 편하고 뽀대나는 방법이 뭔가..
고민한 결과가 바로 Apple TV입니다.
TV에서 보는 사진은 느낌이 또 많이 다릅니다. 가족들도 좋아하구요.

게다가 캠코더로 찍은 아기 동영상도 담아서 볼 수 있고,
video podcast와 you tube도 볼 수 있구요. 키보드 마우스 필요없이
모든 조작이 리모콘 만으로 되는 것도 맘에 듭니다.

또 의외로(?) 이걸로 음악 듣는 것도 좋군요. TV로 음악 듣는 바보가
어디있냐 싶었는데 -_-; 오디오로 출력을 연결해놓고 자켓 사진
보면서 음악을 틀어놓으니 나름 분위기 좋습니다.

우와~ 정말 멋지지 않습니까? 말 그대로 장난감을 좋아하는 아빠가 아니라 가족을 위한 제품이라는 느낌이 든다.

장난감 좋아하고 사진찍는 거 좋아하는 몇 명 한테 물어봤다. 사진 인화는 하냐고. 대부분 안 한단다. 컴퓨터에 있는 데 뭐하러 하냐고.

그 사진은 나 말고 다른 사람이 쉽게 접근할 수 있을까? 아닐게다.

사진은 인화해서 앨범에 정리하거나 가전 제품으로 봐야 한다.(얼마전에 우리 따님도 앨범을 꺼내더니 열심히 보더니 더 없냐고 하던데… 인화 더 해야 할텐데) 그런 면에서 보면 애플 TV는 가족을 위한 제품이라는 생각이 든다(우리 마님은 인정하실려나???)

Making Memories with our Apple TV 라는 블로그 글을 보면 어른 보다 아이들이 더 좋아한다.

문제는 애플 TV가 반드시 wide TV랑만 연결된다는 점.

헉.. -_-

지금 쓰고 있는 7년된 TV는 쌩쌩하고, 아무리 Full HD TV가 싸졌다고 하더라도 TV를 바꿀 생각은 없는데 고민이다.

Rainy Sunday

혼자 있는데 비까지 내리니 무쟈게 우울하네 -_- 하필 일요일에 비가 오다니…

화요일까지 비가 올 거라고 한다. 토요일에도 그렇고.

꼬랑지) 비가 오니 숙소의 위성 TV도 제대로 안 나온다. 비행기 연착을 확인하라고 할 정도로 폭우가 내리고 있다. 아흐…. -_-

꼬랑지2) 그나마 더웠지만 어제 DC 갔다 오길 잘했네 ^^

꼬랑지3) 천둥까지 치네. 무서라

인간답게 살기

회사에서 부장급 중에 주중에 집에서 가족과 식사하시는 분이 몇 명이나 될까?

주말에 가족과 1박 2일 여행을 토요일 아침부터 가는 분이 몇 명이나 될까?

왜 그래야만 할까?

너무나 이기적인 개발자

옆 부서는 신입사원이 들어오면 기존 블럭에 대한 F/U을 시키는 것이 아니라 무조건 Test 작업부터 할당한다. 그래서 옆에서 보기에 참 불쌍(?)하다는 생각을 많이 했다.

Test 업무라는 것이 내가 만든 것이 아니라 대부분 남이 만들어 놓은 것을 대상으로 하는 지라 나름 부품 꿈을 안고 “개발자”의 길을 선택했는데 그것과는 사뭇 다른 일을 하고 있으니 어찌 흥이 나겠는가?

얼추 보면 최소 6개월에서 1년동안 이런 일을 한다.(리더가 특별히 계획을 가지고 이렇게 진행하는 것인지는 모르겠다. 아무래도 그 분이 그럴 것같지는 않고)

개인적으로 이렇게 하는 것에 그리 공감하는 편이 아니었는데 이번에 출장와서 겪은 일을 계기로 다른 생각이 들었다. 바로 “역지사지”, “사용자 입장에서 바라보기”가 그것이다.

많은 실은 대부분의 개발자들은 코딩을 할때 자신의 관점에서 작업한다. 자신의 관점이라 하면 어떤 방법을 사용하던 자신에게 주어진 요구사항에 맞게 프로그램이 동작하게 만드는 것이다. That’s it.

당연히 코딩하고, 시험하면서 필요한 부분을 확인하기 위해 로그 메시지도 출력하고, 상태 확인을 위한 디버깅 기능도 추가한다. 하지만 이런 것은 거의 100%가 자신을 기준으로 한 것이다. 즉 누구보다 해당 블럭을 잘 알고 있다는 것을 바틍으로 로그나 디버깅 기능을 추가하는 것이다.

그런데 정말 로그나 디버깅은 개발자 자신만 사용하는 것일까? 만일 그 사람이 다른 업무를 맡게 되었다면? 만일 퇴사했다면? 갑자기 동작에 문제가 있는데 연락이 안된다면? 담당자가 있는 곳이랑 전혀 반대의 시간대에서 문제가 발생했다면?

결코 로그나 디버깅 기능은 개발자를 위한 기능이 아니다. 개발자(담당자) 자신을 포함한 많은 사용자를 위한 기능이다.

그렇다면 어떻게 해야 할까?

쉽고 직관적이어야 한다.

당연한 이야기다. (대부분의 경우) 쓸데없는 소스 파일 이름, 함수 이름, 라인수를 찍어 로그를 지저분하게 하지 말고, 단순하게 error 문이나 Return -1 같은 거의 무의미한 내용을 출력하지 말고, 16진수를 0x도 없이 찍지 말고, 16진수를 10진수로 출력하지 말고, 디코딩이 필요한 값을 단순하게 숫자로 찍어서는 안된다.

한가지 정보를 얻기 위해 사용자가 몇 번의 명령어를 입력하게 해서는 안된다. 개발/시험 중에는 고작해야 1-2군데에서 그 명령어를 치겠지만 현장에서는 단위가 달라진다. 몇 십번에서 몇 백번 똑같은 명령을 입력하는 경우도 있다. 이런 어처구니 없는 불편함은 누구 잘못이겠는가? 모든 것이 자신을 기준으로 자신만을 생각하고, 사용자를 생각하지 않는 개발자 잘못이다.

그럼 처음에 왜 신입사원에게 Test 업무부터 시키는 것에 대한 생각이 바뀌었는지 답이 나온다. 바로 다른 사람이 만들어 놓은 불편한 로그/디버깅 기능을 체험하라는 것이다. 내가 다른 사람이 만들어 놓은 지저분한 로그를 분석할 때도 있고, 불편한 디버깅 기능을 이용해 봐야 정말 다른 사용자의 심정을 조금이라도 이해할 것이라고 생각하기 때문이다.

정말 부서내에 게시판을 하나 만들어놓고 다른 사람의 로그나 디버깅 기능을 이용하면서 느낀 불편한 점을 공유했으면 좋겠다. 모든 불편한 점을 해결할 수는 없을 테니 주기적으로 게시판에 올라온 것중에서 꼭 필요한 부분을 골라 activity로 잡아 개선하는 작업이 있으면 좋겠다.

그리고 시험 인력은 로그가 부정확하거나 불편한 점 역시 개선요구사항을 개발팀에 feedback을 줄 수 있는 분위기/체계가 있었으면 한다. 제대로 기능 동작은 기본이 아닌가? 단지 제대로 동작하는 것 그 이상을 목표로 삼아야 한다.

많은 경우 제대로 되지 않는 management나 process를 욕하는 경우가 많다. 하지만 시간이 가면 갈수록 결국 문제점은 개발자의 태도라는 생각이 든다. 개발자의 능력이 아니라 태도.

꼬랑지) 그래서 읽고 싶은 책. “소프트웨어, 누가 이렇게 개떡같이 만든거야” 중 (via Inuit Blogged)

geek들의 지적 만족을 위한 프로그램이 아니라 제품으로서의 소프트웨어를 만들어야 합니다

딱 내가 원하는 스타일의 프로그램

아무때나 생각나는 내용을 jot down할 수 있는 프로그램.

37signals에서는 사내 업무를 위해 이런 페이지를 만들어서 사용하고 있단다. 그러다 자신들의 product인 backpack에 조만간 추가할 거라고 한다.

아쉽게 backpack에 추가된다고 해서 회사에서의 일을 외부 사이트에 적기는 그렇고. 쩝, 그렇다고 Django등을 배워서 직접 만들어야 하나?

장보니 든든하네.

금요일에는 시내에 있는 Grand mart에 가서 김치랑, 라면, 햇반등을 사오고, 오늘은 숙소 근처에 있는 Wegmans 에서 스타벅스 병커피(국내에서는 못 보던 거네)랑 주스, 과일 몇 가지를 사왔다.

냉장고가 채워지니 든든하다 🙂

온 첫날부터 Wegmans가 좋다고 사람들이 이야기를 했는데 이제서야 그걸 알게됐다. -_- 갔더니 Asian Food(인도나 필리핀쪽이긴 하지만) 등의 음식도 판다. 만두도 팔고.

배고플 때 그걸 사 먹을껄.

Google Earth를 보니 Wegmans는 있는데 Residence Inn은 사진이 없다. 근래에 지어진 건물인가? 엘리베이터 보면 전혀 그렇게 보이지 않는데. 아래 사진에서 허연 건물이 Wegmans(슈퍼마켓이라고 생각하면 된다. 규모는 좀 더 크지만).

Inn where I stay