금요일, 7월 28, 2006

소프트웨어 개발자로서...

http://wired.daum.net/culture/Mac/article00759.shtm
저는 소프트웨어를 개발할때 고객이 필요한 기능을 알아보고 그 기능을 최대한 버그없이 동작하도록 개발합니다.
하지만 이것은 MS 미디어센터에서 고객이 필요한 기능이 엄청난 수의 버튼을 가진 리모콘으로 나타난 것과 같다고 생각합니다.
고객이 필요한 기능은 구현했지만 좀더 고객의 입장에서 접근하지를 못했다는 생각이 듭니다.

이 글은 그런 저를 반성하게 만드는군요.


<기사 내용중 일부>
나는 애플 제품이 사랑받는 이유를 애플(Apple)의 메일(Mail) 프로그램에서 우연히 발견했다.

메일 프로그램의 주요 창은 대부분의 이메일 프로그램과 마찬가지로 "발신(From)"과 "제목(Subject)," "날짜(Date)" 등의 몇 개 칸으로 구분되어 있다.

나는 세로 칸의 폭을 조정하다가 폭의 너비에 따라 날짜의 포맷이 바뀌는 것을 발견했다. 폭이 넓을 때는 "February 27, 2006"이라고 표시되던 날짜가 폭을 줄이자 "Feb 27, 2006"으로 바뀌었다. 그리고 폭을 좀더 좁게 줄였더니 가장 짧은 포맷인 "2/27/06"으로 바뀌었다.

이 기능 외에도 칸에 여유 공간이 있을 때는 이메일 메시지의 수신 시각이 함께 표시되었고, 칸이 줄면 이것도 함께 사라졌다.
...생략...

일요일, 7월 23, 2006

회의에서 다른사람과 충돌을 피하는 방법

나는 회의중 팀장과 잦은 의견 충돌을 일으킨다. 내가 생각하기에 말도 되지 않는 의견들이었다.
나는 팀장이 너무 현실 감각이 없는게 아닌가 하는 생각을 자주 했다. 하지만 오늘 'The Art of Project Management'의 '아이디어를 도출하기 위한 즉흥 게임 규칙'(152p)을 읽고는 모든 잘못은 나에게 있다는 걸 다시 알게 됐다. 그내용은 전에 다른 책에서도 읽었던 것이었다. 그런데도 난 지금까지 팀장의 답답하고 꽉막힌 사고가 문제라고만 생각했다. 나의 차단성 질문이 문제였다. 난 어떤 일을 비관적으로 보는 경향이 있다. 누군가 긍적적으로 본다면 비관적으로 보는 사람들도 있어야 사전에 위혐요소를 제거하여 프로젝트의 실패율을 낮출 수 있다. 하지만 나의 질문은 팀장을 방어적으로 만들었고 결국 회의 결과는 그렇게 좋지 못했다. 서로간의 의견만을 주장할 뿐 좋은 아이디어를 얻기는 쉽지 않았다.
실천하지 않는다면 알고 있는 건 의미가 없다.

화요일, 7월 18, 2006

PM과의 의견 충돌로 프로젝트가 지연될 경우 여러분은 어떻게 하시나요?

<상황> 하드웨어의 성능문제로 하드웨어 수정이 필요한 상황.
하드웨어 디버깅 기간이 길어져 프로젝트 종료일이 1주일 후로 다가왔슴.


PM과 팀원과의 대화 내용

PM: 현 시점에서 하드웨어를 수정하는것은 시간도 많이 걸릴 뿐 아니라 비용 부담도 있습니다.
어떻게하든 지금 하드웨어로 소프트웨어가 돌아가게 합시다.

팀원1: 현재 하드웨어로는 불가능 합니다. 최적화를 더 한다고 해도 어느 시점에서는 하드웨어가 들어오는 데이터를 다 처리하지 못해 데이터 손실이 발생할 수 밖에 없습니다.

PM: 어렵다는건 알고 있습니다. 하지만 지금 상황에서 하드웨어를 수정하기에는 시간이 너무 없습니다. 다음주까지 프로젝트를 종료해야만 합니다.

팀원2: 그럼 두가지 방법을 동시에 진행 하죠. 하드웨어 팀에서는 하드웨어를 수정하고 소프트웨어팀에서는 소프트웨어를 최적화 하도록 하죠.

PM: 지금 하드웨어를 손대는건 불가능 합니다. 어떻게든 소프트웨어로 해결을 봅시다.

팀원1: (스팀 겁나게 받아서 돌아버리기 직전) 그럼 1주일동안 수정을 해봐도 별 진척이 없으면 어떻게 하실겁니까?


PM: 저도 여러분들이 힘들다는건 알고 있습니다. 하지만 지금 상황으로선 소프트웨어를 수정하는게 최선인것 같습니다. 저도 돕겠습니다. 어떻게든 해 봅시다.

팀원1 과 팀원2 서로 눈을 마주친다.
그리고 팀원1이 말한다.
팀원1 : 알겠습니다. 하는데까지 해보죠.

그후 일주일 동안 밤샘 작업을 했다. 팀원2는 아들 돌잔치에도 가지 못하고 회사에서 일을 했다. 하지만 소프트웨어만으로는 아직 완벽히 동작하지 못했다.
아직 시도해 보지 않은 몇가지 방법이 더 있었으나 팀원들의 생각은 비관적이 었다.

팀원2: 몇가지 방법이 더 있으나 아무래도 좋은 결과를 얻긴 힘들것 같습니다.
하드웨어 수정해서 해보죠?

PM: 몇가지 방법이 더 있다구요??? 그럼 일단 해봅시다. 해보고 안되면 그때 다시 이야기 합시다.

팀원1: (거의 미치기 직적인다)
팀원2: (워낙 낙천적 성격이라 잘 참아낸다.)

다시 일주일 후 ...
생각할수 있는 모든 방법을 동원했으나 만족할만한 결과를 얻지 못함.
결국 PM도 소프트웨어로는 더이상 불가능하다는것에 수긍(?)하고 하드웨어를 수정하기로 함.
하지만 하드웨어 수정하는데 다시 1주일의 시간이 허비됨.
하드웨어가 나오고 2틀후에 원하는 성능이 나와 프로젝트 종료.

결국 3주라는 시간이 하늘로 날아가 버렸슴.


여러분...
어떻게 하면 위와같은 상황을 현명하게 대처해 나갈 수 있을까요???

목요일, 7월 06, 2006

google의 notebook

http://www.google.com/notebook


웹서핑중 스크랩하고 싶은 글이 있을 경우 워드를 실행시켜 글을 복사하거나 자신의 블로그에 올리거나 포스트잇에 복사해 놓는 방법을 사용하실 겁니다.
어떤 방법을 사용하던 좀 불편한 작업입니다. 워드나 포스트잇은 프로그램을 실행시키고 ctrl+c , ctrl+v를 눌라야 하니까요.
블로그에 올린다면 웹브라우저를 하나 더 실해시켜야 하므로 더 불편하구요.


구글의 notebook을 사용하면 편하게 글과 그림들을 스크랩 할 수 있습니다. 다른 사람과 공유 할수도 있고 웹에 저장되므로 어느곳에서든 자신이 스크랩한 글과 그림들을 찾아볼 수 있구요.