2004년 10월 24일 일요일

[å]Professional Software Development - Steve McConnel

좋은 방법론과 훈련, Community 활동, 면허, 자격증, 감리 등을 통해
Software 개발도 토목공학이나 의료계처럼 성숙해야 한다고 말하고 있다.


현재 대부분이 생각하는 대박은 gold rush 같은 것이라서
이미 쉽게 얻을 수 있는 금은 초창기 맴버들이 다 캐버린 상태이다.
그리고 고위험구조기 때문에 성공한 사람은 수백배를 벌지만 수십%이상의 사람들은 그냥 실패하고 있다.


Computer Science만 존재하고 학교 교육에 Computer Engineering, Software Engineering이 새로 생겨야
한다고 말하고 있다.
Software가 다른 분야보다 빠르게 변하고 있다고 하지만 core는 쉽게 변하지 않고
변하는 것은 commuinity 활동이나 재교육, 연수교육 등을 통해 보완해야 한다고 말하고 있다.


사실 software engineering이 사회적으로 인정을 받는 다고 해서 모든 프로그래머가 의사처럼
따분해지는 것은 아니다.
좀 더 안정적인 직업이 될 것이고, 안전한 product를 만들게 될 것이다.
의사가 전문면허를 가진 직업이지만 그렇다고 의료계의 새로운 발전이 더디게 되지는 않는 다.
임상의는 진료를 하고 실험과 연구를 하는 의사는 또 따로 있으니까.
생물학도 있고 Bio관련 벤쳐들도 잘 돌아가고 있다.
약사, 토목공학자 모두 마찬가지다.


조리사 자격증, 일식 자격증이 있어야 대중 식당이나 호텔식당에서 일을 할 수 있지만
면허, 자격증이 없어도 사람들은 집에서 누구나 요리를 할 수 있고 친구와 나눠 먹어도 된다.


다만 그런 것들을 가지게 됨으로써 professional한 사람들이 좀 더 대접을 받게 되고
최소한의 능력을 가진 사람을 선발하게 되고 법적 책임도 지게 된다.


Programmer는 예술가와 같이 때문에 면허와 자격증은 고귀함과 신비로움을 상실하게 한다고 주장하는 사람도 있는 데,
별로 창의적이지도 않고 새롭지도 않고 허접한 대부분의 project에서 그것은 별로 타당하지 않다.
건축설계사라는 직업이 있다고 해서 아무에게나 오페라하우스(시드니에 있는)나 금문교, 에펠탑을 만들게 하지 않을 테니까.
유능한 사람들은 여전히 창의적일 것이고 전형적인 일을 해야할 사람도 많이 필요하다.
(누군가는 동사무소나 평범한 아파트 수십만채를 지어야 하니까.)

Professional과 Community

Professional한 programmer나 software 개발자가 되고자 한다면
반드시 community에 가입해야 할 것 같다.


의사고시를 패스하면 의사가 되고
사법고시를 패스하면 변호사가 될 수 있지만,
그것은 단지 법적인 문제일뿐이고
professional하게 인정을 받으려면 각각
대한의사협회나 대한변호사협회에서 활동을 해야 한다.


프로그래머도 마찬가지인 것 같다.
새로운 기술은 계속 쏟아져나오고 그것들은 동료들과 community를 구성하여 교류하지 않으면 얻을 수 없다.
프로그래머는 사실은 외톨이가 아니다.


그런 조직으로 ACM(Association for Computing Machinery)이나 IEEE(Institute of Electrical and Electronics Engineers)가 존재하고 있다.
나도 하나 가입할까 생각 중이다.


-------------
사실은 태영이형이 "Professional 소프트웨어 개발 - Steve McConnel 저 "이라는 책을 읽고 내게 community가입을 추천했다.
나도 지금 그 책을 읽는 중이다.

2004년 10월 23일 토요일

[펌]직원 평가 용어의 정의

직원 평가 용어의 정의

일을 가장 우선시 함〓너무 못생겨서 데이트 상대가 없다.

독립적임〓아무도 그가 무슨 일을 하는 지 모른다.

조직 충성도가 높음〓다른 곳에서 직장을 구할 수가 없다.

판단력이 좋음〓운이 좋은 편이다.

[펌]군대의 인재들

군대의 인재들

어느 날 김병장이 대원을 소집했다.

김병장: 야 여기 피아노 전공한 놈 있어?

박이등병: 네, 접니다.

김병장: 그래. 너 어느 대학 나왔는데?

박이등병: K대 나왔습니다.

김병장: 그것도 대학이냐? 다른 놈 없어?

조이등병: 저는 Y대에서 피아노 전공했습니다.

김병장: Y대? S대 없어? S대?

전이등병: 제가 S대입니다.

김병장: 그래. 여기 피아노 좀 저기로 옮겨봐라.

그 다음날.

김병장: 여기 미술 전공한 놈 나와!

김일등병: 네, 제가 미술 전공입니다.

김병장: 어느 대학인데?

김일등병: Y대 디자인과입니다.

김병장: 그것도 대학이냐?

고일등병: 제가 H미대 출신입니다.

김병장: 그래. 오∼ 좋아, 발야구 하게 선 좀 그어라.

그날 저녁.

김병장: 여기 검도한 놈 누구야?

강이등병: 제가 사회에 있을 때 검도 좀 했습니다.

김병장: 몇단인데?

강이등병: 2단입니다.

김병장: 2단도 검도한거냐? 다른 애 없어?

이일등병: 네, 제가 검도 좀 오래 배웠습니다.

김병장: 몇단인데?

이일등병: 5단입니다.

김병장: 그래? 이리 와서 파 좀 썰어라.

[책]데드라인 - 소설로 읽는 프로젝트 관리

데드라인 - 소설로 읽는 프로젝트 관리


소설이라 약간 유치한 설정으로 시작되기는 하지만
전반적으로 매우 재미있다.
이번 프로젝트에 임하면서 내가 느낀 점과 매우 비슷한 것 같다.
(매우 공감이 간다.)
내가 몰랐던 점도 많이 알게 되었다.
중간 부분의 수학적인 모델링 기법들이나 그래프도 멋진 것 같다.


분량 : 343 Page
독서 소요 기간 : 3일
실제 읽은 시간 : 8시간


--------------------------------------------------------------------
훌륭한 관리를 위한 4가지 필수요건
. 적절한 사람들을 구한다.
. 그들에게 알맞은 일을 할당한다.
. 항상 동기 부여를 한다.
. 팀이 결속하도록 하고, 그 상태를 유지하도록 돕는다.
  (이 외의 나머지 일은 전부 허드레 관리업무다.)

시험 - 긴장 주기

시험 기간 중 가장 초조한 시점은 첫번째 시험을 보기 직전과 두번재 시험을 보기 직전이다.
극도의 긴장감으로 숨막히게 지나가는 시간을 보게 된다.


막상 시험에 들어가고 첫 문제를 읽기 시작하면 그 때는 긴장이 조금 풀린다.
더 이상 긴장을 하게되면 연필심을 부러뜨리고 문제를 읽을 수 없게 되니까.
불확실성이 점점 줄어드는 시간이니까.
성공에 대한 확신 혹은 포기가 뒤따를 뿐이다.


가장 행복한 시기는 마지막 과목을 시험보기 직전이다.
이미 시험이라는 분위기에도 완전히 익숙해져 있고
이제 한 과목만 보면 해방이라는 느낌이 드니까
그냥 가볍게 시험에 임할 수 있다.
마음이 상당히 들뜨게 된다.
시험이 끝나면 무엇을 할지도 조금씩 고민한다.


막상 마지막 과목까지 시험을 마치고 나면 그리 홀가분하지 않다.
뭔가 허전하고 더 이상 뭘 해야할 지 방향을 잃게 되고
그냥 멍하게 하루를 보내게 된다.
혹은 초조하게 결과를 기다리게 된다.
하지만 이제는 아무것도 바꿀 수가 없다.

소프트웨어 개발 - 코드 읽기

뛰어난 개발자들은 다른 사람이 만든 코드도 아주 빠르게 이해 한다.
나는 코드 읽기를 잘 못하는 것 같다.


내가 설계하고 타이핑한 코드가 아니면 도통 뭐가 뭔지 모르겠다.
senior가 내게 인수/인계를 아무리 잘해줘도 모르겠다.
내가 refactoring을 하거나 기능을 새로 추가한 부분만 이해할 수 있다.


다양한 스타일의 코드를 보지 못했기 때문인 것 같다.
경험부족이겠지.
거기에 단기 기억력이 부족해서 변수를 쉽게 추적하지 못한다.
조금만 복잡하게 코드를 꼬아놓으면 도저히 모르겠다.
깔끔하게 정리된 코딩을 선호해서 내 자신이 좀 깔끔하게 코딩하는 편이라
complexity가 조금만 올라가도 당황하나보다.