달력

032010  이전 다음

  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  

'2007/프로젝트 로그'에 해당되는 글 42건

  1. 2007/12/27 실용주의에 대한 반추(反芻) (5)
  2. 2007/11/20 요구사항의 중요성: 문제 안에 답이 있다
  3. 2007/11/16 도메인 모델 주도로 보는 엔터프라이즈 애플리케이션 인프라 요건
  4. 2007/11/16 빌드/배포 자동화 필요성 (2)
  5. 2007/11/15 요구사항에 대한 도메인 모델 (1)
  6. 2007/11/15 중요한 것을 먼저 해야 하는 이유
  7. 2007/11/09 '컨설팅의 비밀'을 읽고 소회를 간략히 메모 (4)
  8. 2007/10/28 무지한 감리인 (1)
  9. 2007/10/25 프로젝트 포트폴리오 관리 관점
  10. 2007/10/19 애정을 가져라
  11. 2007/09/19 CBD에 대한 이론적 기반이 될 책이라면, Business Component Factory (5)
  12. 2007/09/14 스스로를 객관화 할 수 있는 능력 (6)
  13. 2007/09/04 [파도] IT에서 기술보다 중요한 것
  14. 2007/08/28 스승을 찾는 방법 2nd Edition (2)
  15. 2007/08/28 PMO 베스트프랙티스 국내 환경에 적용해보기
  16. 2007/08/27 진짜로 돌려야 할 것은 무엇인가? (4)
  17. 2007/08/23 리팩토링과 프로세스 개선
  18. 2007/08/08 실용적인 개발 프로세스[1] 일정 공유 (2)
  19. 2007/08/06 프로젝트 디렉토리 리팩토링을 통한 역할 정립
  20. 2007/08/03 방법론/프로세스 전문가의 가치 (1)
  21. 2007/08/03 Continuous Resolution: 컨설팅의 비밀 2
  22. 2007/08/03 컨설팅의 비밀
  23. 2007/08/02 혼란스런 프로젝트 초기에서 컨설턴트의 임무
  24. 2007/08/01 아키텍트를 위한 프로파일
  25. 2007/07/11 모델링 도구에 대하여 (7)
  26. 2007/07/04 대안 없는 비난은 시간 소모 (3)
  27. 2007/07/03 라이브 코드 리뷰의 유익함 (2)
  28. 2007/06/27 반복의 필요성:당연하지만 행하기 힘든 일 (1)
  29. 2007/06/26 몰입과 중독의 차이... 그리고 좋은 솔루션 이면의 함정 (1)
  30. 2007/06/05 프로젝트에서 만나는 다양한 뷰 (4)
로드 존슨 쓴 책을 조금 읽었다. Pragmatic이라는 단어도 나오지만, 그의 접근 방식은 그야 말로 실용적이다. 그의 아들, 스프링(Spring)도 그대로 닮아 있다. AOP라는 새로운 기술[각주:1]을 채용하는데 있어서 스프링이 취하는 방식은 실용적인 것이 무엇인지 그야말로 제대로 보여준다.

스스로 실용주의를 동경하기 때문에 실용주의 프로그래머라는 책을 곁에 두고 있다. 하지만  일터에서 진정한 실용주의자가 되기란 쉬운 일이 아니다. 

C라는 인물이 있다. 그는 하이버네이트라는 ORM이 워낙에 좋다고 하여 프로젝트 공통코드(혹은 프레임워크)에 이를 적용했다. 그런데 개발자들이 온통 불평이다. 이해할 수가 없다. 그런데 만일 함께 일할 개발자들 모두가 하이버네이트를 처음 쓰는 상황이라면 어떠한가? 그 뿐 아니라 자바 문법만 알 뿐, 객체에 대한 개념도 없는 상황이라고 한다면 C가 불평할만한 상황일까? 툴은 좋은데 개발자가 문제라는 대답은 전혀 실용적이 아니다.

K라는 인물이 있다. 그는 ActiveX를 쓴 웹을 너무나도 싫어했다. 왜 웹 표준을 쓰지 않고 그 따위(?) 기술을 쓰는지 이해할 수가 없다. 그는 ActiveX로 화면 개발하는 일은 자신의 커리어에 전혀 도움을 주지 않아 시간 낭비라고 생각했다. 그렇다고 그는 대안을 내놓을 수 없다.  이런 태도는 실용주의와는 정반대에 서 있는 모습이다.

실용주의 프로그래머 - 10점
앤드류 헌트 외 지음, 김창준 외 옮김/인사이트

가상의 이야기가 아니라 실존 인물 이야기를 해보자. A씨는 개발팀 대부분이 객체에 대한 개념이 없는 곳에서 설계 방안을 고민하고 있다. 더군다나 CBD를 적용하자고 하는데 고객이나 개발팀 대다수가 CBD에 대해 합의한 적은 없다.(아니, 합의 따위가 필요없다고 생각하는 듯 하다.) 단순히 CBD를 하면 '컴포넌트'(?)로 개발하니까 유지 보수에 좋지 않겠느냐 정도일까?

A씨는 팔을 걷어 붙이고 일을 해보고 싶지만, 상황이 그리 녹록해보이지는 않는다. 객체를 기반으로 하는 설계에는 경험이 전혀 없는 사람들로만 설계자를 뽑았다. 비즈니스 로직은 if문과 SQL로만 작성하는 것으로 아는 사람들에게 클래스 설계는 파일 분할과 다를 것이 없다. 게다가 과반수 이상은 자바 플랫폼에 대한 이해가 전혀 없다. 결과적으로 CBD 기반은 커녕 객체 기반 설계서는 기대하기 힘들다. A씨 입장에서 그들이 객체 지향의 설계를 하게 한다는 것은 그야말로 전도에 해당한다. 새로운 것을 배울 의지가 없는 사람들에게 패러다임 전환이라고 할 만큼 지대한 변화를 수용하라는 것은 무리한 요구다. Technical evangelist의 의미가 떠오르는 상황이다. 설계서를 만들 수 없는 설계자들은 남는 시간[각주:2]에 무엇을 할까? A씨의 경험에 따르면, 그들은 무엇가 비슷한 것을 만들려고 노력하며 시간을 보낸다.

A씨는 그 일이 벌어지지 않게 노력하는 것에 초점을 맞췄다. 아니. 막을 수는 없을 것 같아서 요식 행위가 가능한 실제 설계 작업과 비슷해지도록 할 참이다. 자주 했던 일인지라 방안을 찾는 것은 그리 어려운 작업이 아니다. 문제는 실용주의하고는 전혀 거리가 먼 잣대로 프로젝트를 진단하는 외계인들을 대비하는 일이다. 당장에는 유익한 작업이라고 설계서 형식을 바꾸고 설계 방식을 변경하지만, 훗날 실정을 전혀 모르는 감리사[각주:3]의 혹평으로 인해 개발팀이 고생할 수 있다. 그래서, 전혀 실용적이지 않은 기준과도 조우할 수 있도록 근거를 만드는 일이 도리어 실용적이게 된다.

그렇게 그렇게... 하루는 간다. 그 하루 속에서, 하루를 마감하며 읽어던 책 구절에서, 그 책의 내용을 자신의 목소리로 이야기해주던 사람에 대한 기억을 통해서, 아침에 들었던 오디오북에서... 실용주의가 무엇인지 배울 수 있었다. 배움이란 참 더딘 일이다.
  1. 최근 발표한 기술이라는 의미가 아니라, 자바 클래스와는 다른 애스팩트(aspect) 개념을 도입해야 하기 때문에 새롭다는 수식을 부여했다. [본문으로]
  2. 설계서를 만들어야 할 시간 [본문으로]
  3. 외계인이라고 한 것은 그들을 폄하하려는 의도가 아니라, 현지 사정이나 프로젝트 특수성을 전혀 알지 못한다는 의미이다. [본문으로]
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
분석가들이 요구사항에 대해 기술한 내용을 검토하다가 떠오른 생각을 담아두려고 메모

놀라운 일이다. 출근 길에 읽었던 짧은 글에서 답을 찾을 수 있다니.

문제 속에 답이 있다.

수학멘토 앞부분에 나오는 내용이다. 함수에 대한 정의를 시스템 개발에 대입하면 요구사항이라는 정의역(domain)시스템이라는 공역에 대응시키는 활동이라 할 수 있다. 그런데 요구사항을 분명히 파해쳐 이해하지 않고서 해법을 구할 수 있을까?

답은 자명하다. 요구사항 기술에 대한 오류는 해당 분석가가 요구사항을 이해하지 못했음을 보여준다. 분석가를 포함하여 개발자들은 종종 문제에 대해 충분히 고민해보지 않고 개발을 하려 든다. 더구나 개발 과정을 통해 문제에 대한 인식이 높아져 자신이 해온 작업에 수정을 가해야 하는 피치 못하는 상황에 닥쳐서는 변경에 강한 적대감을 보이기도 한다. 어처구니 없는 일이지만 매우 흔히 볼 수 있다.


수학멘토 - 10점
장우석 지음/통나무
문제를 푸는 것은 결과가 아니라 과정이다. 시스템 구현이라는 것도 결국은 애초 문제에 새로운 문제를 더한 것에 지나지 않는다. 과정을 즐기지 못하면 결국 즐겁게 할 수 없다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
사용자 삽입 이미지

얼마전 읽은 PEAA 서론부 5줄을 읽다가 나름대로 해석해서 그렸다. 도메인 모델을 중심으로 시스템을 보면 기존 레이어링 그림과는 좀 다르게 인식할 수 있다. 기존에는 비즈니스 로직을 플랫폼에 기반하여 결정한 특정 레이어에 한다. 도메인 모델 입장에서 보면 엔터프라이즈 애플리케이션 개발을 위한 기술 기반이 요구사항이 된다. 보고를 준비하면서 잠깐 짬을 내서 그려봤다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
구독목록 중에서 이런 글을 보았다;

내가 SI사업을 발주하는 담당자라면
나는 이런 조건을 넣고싶다.
- 개발업체는 우리회사의 Subversion 서버를 사용해야 한다.
- 개발소스는 one-stop build가 가능해야 한다.
( Subversion에서 checkout을 받은후 build.bat를 치면 target폴더아래에 모든 실행파일(exe or war)가 나와야 한다.)

이 구절을 보고 처음 느낀 점은 곧 이런 문구가 RFP에 오를 수 있겠다는 짐작이다. 많은 사람들이 지적하듯 여전히 SI 사업에 부조리가 많지만 그러면서 서서히 발전하고 있다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
사용자 삽입 이미지

요구사항 유형을 정리하고, 그 출처와 추적 관계를 묘사한 그림이다. 이 그림은 기본적으로는 컨설턴트가 작성한다. 체계가 가지는 자체적인 합리성을 보장하는 것은 컨설턴트다. 그러나, 그 내용에 있어서는 현장(도메인) 고유의 합리성을 갖는다. 컨설턴트가 보기에는 비합리적으로 보이지만 현장에서는 그럴 만한 이유가 있어서 나름대로  개념으로 자리잡은 특수성이 자리한다.

1. 담당자와 리뷰를 하면서 한 차례 정제를 한다.
2. 모여서 논의할 때는 완벽한 것처럼 보여도 실제로 적용해보면 예상치 못하는 사례가 발생한다.

잘 정리했다고 해도 쓰이지 않으면 말짱 도루묵이다. 이러한 모델을 이해하기 쉽게 만들고 잘 보급하면 도메인 언어Domain Language 가 된다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
사용자 삽입 이미지

위와 같은 다차원 함수를 통해 중요한 것을 먼저 해야 하는 이유를 찾을 수 있다. 다차원 함수일수록 풀기가 어렵다. 변수가 많기 때문이다. 이럴 때 주로 쓰는 방법은 상대적으로 덜 중요한 요인을 특정 값으로 고정하는 것이다.

우리가 어떤 일을 하느냐에 따라서 미래가 달라진다. 한 번에 여러 가지 일을 해결하려면 문제를 복잡하게 만든다. 결국, 선택과 집중이 필요하다. SOC(Separation of Concerns) 원칙도, 선물(The Present)에서 말하는 현재(The present)에 집중하는 것도 다 유사한 맥락에서 이해할 수 있다. 관건은 이해가 아니라 실천이지만... ^^


선물 - 10점
스펜서 존슨 지음, 형선호 옮김/랜덤하우스코리아(랜덤하우스중앙)
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
TAG 선물
잘 적응되어 있을수록 적응력은 감소하는 경향이 있다. 61쪽
품질 팀이 있고, 가이드와 규정이 잘 갖춰진 곳을 보면 전형적인 업무는 매우 효율적으로 처리한다. 반면 새로운 요구나 환경 변화가 불어닥치면 잘 정비한 규정이 오히려 발목을 잡기도 한다. 환경 변화가 심해지는 추세에 따라서 애자일(Agile)이 부각하는 것과도 관계가 있다.

고객은 항상 자기 문제를 어떻게 푸는지 알고 있으며, 항상 해결법을 처음 5분 내에 말해준다. 116쪽
대단히 인상적인 문구라 책을 접어두었던 모양인데, 잘 기억이 안난다. 역시 메모는 바로 해야 한다. 돌연 프로젝트에서 RFP가 프로젝트 후반까지 매우 중요한 척도 역할을 하는 점이 떠오른다.

통상 무엇을 간과하는지 찾아보고 다시는 빠뜨리지 않도록 확실히 해주는 도구를 설계하라. 128쪽
공부법 설명할 때도 항상 '오답노트'가 등장했다. 고르게 신경쓰기 보다는 취약지구에 초점을 맞추는 것이 효과적이다. 위험요소에 초점을 맞춘 프로젝트 관리를 강조하는 UP(Unified Process)도 유사한 맥락이다.

뭔가를 잃는 최선의 방법은 그것을 지키려고 애쓰는 것이다. 201쪽
얼마전에야 그 의미를 알았고, 요즘에야 실천을 할 수 있다.

품질을 위한 마케팅(물량을 위해서가 아니라 품질을 위해서 마케팅하라.) 274~275쪽
1. 컨설턴트는 다음 두 상태 중 하나만 될 수 있다. 한가한 상태 아니면 바쁜 상태.
2. 고객을 얻는 최상의 방법은 고객을 갖고 있는 것이다.
3. 일주일에 적어도 하루는 노출에 시간을 할애하라.
4. 고객에게 당신이 중요한 것보다 당신에게 고객이 훨씬 중요하다.
5. 절대로 한 고객이 전체 사업의 1/4 이상을 차지하게 하지 말라.
6. 최상의 마케팅 도구는 만족한 고객이다.
7. 당신의 최고 아이디어를 거저 주어라.
8. 손수 넣은 계란 하나가 커다란 맛의 차이를 낳는다.
9. 최소한 자기 시간의 1/4은 아무것도 하지 말고 보내라.

주옥같은 지침이다. 나는 이 지침을 실천하기 위해서 주기적으로 스스로를 검증할 것이다.

최소 후회의 원칙: 어느 쪽으로 하든 후회하지 않게 가격을 책정하라. 289쪽
욕심 때문에 무리하게 협상을 하다가 스스로 자충수를 두는 경우는 종종 발생한다.

사람들은 절대 거짓말쟁이가 아니다. 적어도 자신의 눈에는 302쪽
그래서 사람을 신뢰해야 한다. 비난하거나 비판하지 말고... (하지만 너무 힘들어)

농장에서 얻은 교훈 316~317쪽
1. 절대 싸구려 씨를 사용하지 말라.
2. 준비된 토양이야말로 경작에 성공하는 비결이다.
3. 시기가 정말 중요하다.
4. 가장 단단하게 자리잡은 작물은 스스로 뿌리를 잘 내린 것이다.
5. 과하게 물을 주면 강해지는 것이 아니라 약해진다.
6. 최선을 다해도 일부는 죽을 것이다.

역시 자연과 함께 하면 주옥같은 교훈을 얻는다.

컨설팅의 비밀 - 10점
제럴드 M. 와인버그 지음, 홍성완 옮김/인사이트
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
무지한 감리인은 목소리와 눈빛으로만 권위를 세우려 하는 감리인을 보며 떠올린 말이다. 제3자가 객관적인 눈으로 프로젝트 상황을 조망한다는 것은 유익할 수도 있다.(사실 몇 일 와서 쓱 파악하고 보고서 하나 써주는 것이 유익한지는 모르겠다.)

종종 소통이 가능한 감리인이 있기도 하겠지만, 귀 막고 말만 하려는 감리인은 대개 무지하다. 짧은 기간에 프로젝트 상황을 파악하려면 귀를 쫑긋 세우고 총력을 다해도 모자랄텐데. 자기가 믿는 짧은 지식으로만 무언가를 만들어내려다 보면 프로젝트 정황 정보를 반영하지 못해 종종 어처구니 없는 실언을 하기도 한다.

두꺼운 보고서 중에서 건질 말은 5%를 넘지 못할 듯 하다.

여하튼 이들을 통해서 한 수 배운다. 누군가 혹은 무언가 지적하고 비판할 때 그 사람/것이 내포하고 있는 의도, 동기 혹은 연계된 정황을  충분히 파악하라고... 그래서 우리는 말하고 소통하는 것을 게을리 해서는 안된다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
TAG 감리
짤막한 글을 훑어보는 것으로도 영감을 줄 수 있는 좋은 요약이다.
  • Project cycles: when the project could release something
  • Planning cycles: how often the management team assesses the project portfolio
  • Business cycles: when customers want something new
출처: Project Cycles, Business Cycles, Planning Cycles

개발팀과 상위 관리팀 그리고 고객 사이에서
프로젝트 진행이라는 동일한 현상을 바라보는 확연히 구분되는 세 개의 관점


이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
월간마소에 기고를 하면서 블로그에 썼던 내용을 다시 살펴봤다. 그 과정에서 프로그래밍의 공중 부양3에 인용한 부분을 원고에도 인용했다. 가끔 한 잔 하는 것이 도움이 될 때가 있다. 메마른 감정에 봇물이 터지듯 술이 감정을 출렁이게 해준다. 한 잔 하고나니 개발팀 모두를 애정 어린 눈으로 볼 수 있게 되었다.

기억하자. 그대는 무언가 심판하는 사람이 아니다. 주변 사람들과 행복을 나눠가지며 살아야 한다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
어느 교수님께서 강의를 위한 배경지식을 쌓기 위해 CBD 책을 추천해달라는 김에 여기에도 옮겨둔다.
젤 유명한 책은 UML Components 책인데 안 읽어봤다.

UML Components: A Simple Process for Specifying Component-Based Software (The Component Software Series)  
 
사실 UML Components처럼 얇은 책을 선호하지만
타의에 의해 읽게 된 Business Component Factory가 완소서적이다.
개인적으로 초강추에 최소한 두 번은 읽어볼 것을 권장한다.

Business Component Factory : A Comprehensive Overview of Component-Based Development for the Enterprise

지바 개발자 관점에서 보면 Java EE의 이론적 근간을 설명하는 것으로 볼 수도 있다.
책 내용이 두껍기는 하지만 다양한 관점에서 기술해서 CBD의 바이블 역할을 해줄 수 있다.

Component Based Software Engineering: Putting the Pieces Together

좀 쉽게 혹은 직관적으로 읽을 수 있는 서적은 논문을 모아놓은 위의 책을 권해줄만하다.
아마존 별 다섯개고 많은 영감을 주지만, 한권만 읽겠다고 하면 역시 BCF가 좋다.



이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
TAG BCF, CBD
스스로를 객관화 할 수 있는 능력은 발전의 원동력이다.
자신이 무엇을 모르는지 깨달았을 때 비로소 발전이 시작되는 것을 경험할 수 있다.

종종 화려한 이력 혹은 배경을 가진 사람이
자신의 일을 수행하기 위한 능력이 턱없이 부족한 경우를 볼 수가 있다.
안타까운 사실은 그는 자신의 역량이 모자라다는 사실을 전혀 모른다는 사실이다.
한참동안 함께 일을 했는데 종종 대화를 하다보면 우리 일을 전혀 모르는 행인을 붙잡아서 얘기하는 듯한 착각을 불러 일으킬 정도다.

이와 유사한 유형을 지닌 후배를 만난 일이 있다.
자존심이 강한 후배였는데, 나름대로 애정이 있었기에 그 벽을 깨주리라 마음 먹었다.
사실은 내가 그랬었기 때문에 벽을 깨는 것의 가치를 그 친구도 알게 되리라 믿었다.

스터디를 하는데 본인보다 서너살이 어린 여자 후배들보다
자신이 훨씬 앞서 있다고 착각을 하고 있어서... 어느날 시험을 보자고 했다.
그리고, 어리게만 보아온 후배들보다 자신이 객관적으로 턱 없이 낮은 점수를 받자
그 친구는 스터디에서 이탈해버렸다.

자존심을 버리고 벽을 깨는 대신에 상황을 부정하는 것을 택한 것이다.
선택은 자유다... 그 후로 그 친구와 내 인연을 끝이 났다.

안좋은 습관인데
가끔 이런 유형의 사람들에 대해 비아냥 거리면서 시간을 소비하기도 한다.
그러한 소모적인 시간을 줄이려고 노력은 하는데..

한편으로 그런 모습을 보면서...
스스로 객관화 하려는 노력의 끈을 조이게 되는 계기가 되기도 한다.
(내가 그들을 고맙게 여기기는 커녕 비난을 한다고 해도) 그들은 어떤 면에서는 나의 스승이 되는 것이다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
구독하는 블로그에  IT에서 기술보다 중요한 것.이라는 제목의 글이 올라왔다.
나름의 답을 예상하고 읽었는데... 결과는 틀렸다. ^^;

그건 바로 논리적인 사고가 아닐까?

동의할만한 일이다. 엔지니어나 업무/기술 전문가 관점에서는 그렇다.

관점을 바꾸어서 일이 되어가는가를 감지하는 입장
즉, 관리자나 컨설턴트의 뷰로 본다면 이전에 방법론/프로세스 전문가의 가치에 정리한 것처럼

이성적이기 보다는 적절하라!

라는 말이 오버랩된다.

많은 경우 시스템이 잘 개발될지는 PL만 봐도 짐작할 수 있다.
그들이 갖고 있는 균형감. 열정. 책임감.. 이런 것들이 버무려져서...
나타나는 신뢰감은 시스템에 대한 매우 정확한(?) 지표가 되는 경우가 많다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
스승을 찾는 방법이라는 글을 쓴 적이 있다. 벌써 9개월 전의 글이다.
요즘 일터에서 또 한 사람의 스승을 만난다. (사실 여러 사람의 스승이 존재하는데 그 중에 개인적인 취향으로 한 사람을 지정하고 싶은 것이지도 모른다.)

스승의 사전적 정의가 어떤지 모르지만, 자신의 성장에 도움을 주는 사람을 스승이라고 봤을 때, 흥미롭게도 다수의 스승은 '스승'이라는 이름을 갖고 등장하지 않는다.('선생'이나 '교수'를 포함해서...)

돌아보면 내 인생에 등장한 인물 중에서 스승이라는 역할에 가장 어울리는 사람들은 선생이나 교수는 아니다. 그 인물의 모든 모습이 스승이 아니라 어떤 특징이 스승 역할을 했다.(신을 만난 것이 아닌 이상 당연한 것이리라.)

얘기가 거창해져 버렸다. 원래는 요즘 스승 역할을 해주는 특정 인물에 대해 쓰고자함이었다. 그런데 예전에 써둔 글이 생각 나서 연장선으로 정리한다.

그 분에 최근에 많은 것을 전수해주셨는데 그것을 간단히 정리해두고 싶다.
1. 자연원리에 입각한 사고, 그리고 실천
2. 지속적인 프로세스 개선(생활화)
3. 단시간에 특정 목적에만 초점을 맞춘 실행

또한, 두 가지 중요한 개념에 대해 메모해둬서 향후에 누군가와 함께 논의할 여지를 만들어둔다.
1. MECE
2. FFF

애초에 하고자 한 이야기는 위 두 단란이다.

그리고, 이왕 연작으로 글을 썼으니 결론을 지어보자. 지금 막 떠오르는 스승 진선미(?)를 두고 생각해보면 다음과 같은 공통점을 발견할 수 있다.
첫번째는 스승은 어김없이 내가 준비가 되어 있을 때 나타났고(스승을 만나려고 준비한 것은 아니다)
두번째는 그들(혹은 그들이 가진 스승으로써의 특징)은 감탄할만한 일관성을 지니고 있다는 점이다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
TAG 스승
정확하게라면 내가 참여해본 프로젝트에 적용해보기 일 것이다.
국내 환경은 PMO Best Practices Checklist라는 글이 나온 환경과는 다를 것이다.
국내 프로젝트 중에서도 규모와 수행 조직에 따라서 매우 상이한 문맥을 갖는다.

대충 머릿속에 떠오르는 5~6개 프로젝트 수행 경험을 토대로
PMO Best Practices Checklist를 반영해보겠다.

Identify the participants and their roles
환경에 불문하고 엄청나게 중요한 일이다.
기법 측면에서는 역할에 대응하는 실제 인물(명목상 담당자 말고 진짜 일하는 사람)을 지정하고, 이를 고객과 공유하는 일은 엄청나게 중요하다.
그것도 가능한 초기에...
(가상인물인) 고과장님을 조르면 훌륭한 템플릿을 얻을 수 있다.
나를 졸라도 되지만.. 고과장님의 허락을 득하여 배포할 수 있다.

기법으로만 해결되는 것은 없다.
만일 그게 가능하다면 방법론이 등장한 후에 프로젝트 실패는 없었을테니까
실행/적용 관점에서 보면 첨예한 이해 당사자
테이블에 불러서 협의가 이뤄지고 이를 이행하게 관리하는 것이 매우 중요하다.
말로는 쉽지만 이해 당사자의 대표적 인물이 누구인지 판단하는 것은 그리 간단치 않고
쟁점을 조기에 찾아내는 것도 쉽지만은 않다.
이로 인해 컨설팅 영역이 되고, 나같은 사람도 먹고 살 수 있다. ㅡㅡ;

Assign the project manager early
여기서 PM은 국내 개념으로는 PM과 PL을 포괄하는 것이다.
만일 여러분의 프로젝트에 직함/무늬만 PM인 사람이 있다면
그를 보좌할 사람을 어떻게 해서든 구해야 한다. 다 같이 몰살(?)하기 전에...

Assess the qualifications and experience of the planned project team members

나와 내 동료의 경우는 초반에 반드시 이런 진단을 한다.
물론, 비공식적으로... 우리 문화상 공식적으로 개발팀원에 대한 역량 평가를 공론화 하는 것은 쉽지 않다.
하지만, 팀원의 역량을 냉적하게 측정하는 것은 반드시 필요한 일이다.

Conduct a project kickoff meeting
옳은 말이다. 초반에 비전을 공유하는 것은 무척 중요하다.
그런데... 진짜로 돌려야 할 것은 무엇인가?와 댓글에 전개된 것처럼
진짜 목적 대신에 술잔만 돌리는 경우도 아주 가끔(?) 발생한다.

Establish a participant update meeting schedule
킥오프 미팅만으로 문제가 생기는 경우는
중간에 투입되는 인력이 빨리 상황을 인지하고 융화하게 만드는 방안이다.
종종 새로 개발자가 투입되면, 게다가 프리랜서거나 소속업체까지 다르면
융화가 안되고, 의사소통 두절이 심해지기도 한다.

Complete a detailed work plan
예제와 템플릿이 포함된 구체적인 계획이 가능한 빨리 나와야 혼선을 줄일 수 있다.
놀랍게도 꽤 규모가 있는 프로젝트에서도 간혹 WBS 작성을 못하는 PM 혹은 PMO를 만나는 경우가 있다.
계획을 세울 수 없다면 과연 관리를 할 수 있을까?
만일 이런 경우에 봉착했다면, 두 번째 항목을 다시 읽어봐야 한다.

Establish an issues control tracking system
공교롭게도 오늘 내가 주로 한 일은 이슈관리 절차의 개정이다.
의견이나 정보를 취합하는 역할자가 발견된다면 그의 일을 시스템이 대신하게 하라.
자동화를 통해 그 사람의 역할이 없어졌다고 걱정할 필요는 없다.
그에게 더 생산적이고 창조적인 일을 할 수 있게 하라. ^^

언제 기회가 되면 이러한 개발 프로세스 개선 방안에 대해서 누군가와 공유하고 싶다.

Establish a regular project team review meeting schedule

대부분의 국내 조직은 주기적인 미팅에 익숙하다.
주간보고는 매우 유익하다. 다만, 권위적인 형식의 보고라면 효과가 떨어질 수있다.

프로젝트를 수행하다보면 회의/미팅의 부족을 느끼는 경우보다는
과잉회의나 비효율적 회의를 개선할 필요를 더욱 느낀다.
개발팀의 회의에서도 손석희씨가 진행하는 100분 토론과 같이 적극적으로 의사진행을 통제하는 사회자가 있다면 좋을 것 같다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
TAG PMO
Kick-Off 회의 & 회식에서 술잔(폭탄주)을 돌렸다는 이야기를 보고...
나도 돌려 봤고, 내 친구도, 후배도, 그도, 그녀도 꽤나 돌려봤다.

프로젝트 초창기(혹은 신입생 환영회도 비슷할꺼다)
각오를 다지는 의미에서 혹은
서로 동질감을 갖기 위한 의식으로 한다지만...

연신 돌아가는 술잔 말고..
무언가 서로 돌려야할 것이 있는데 그렇게 하지 못하고 있는 것은 아닌가 싶다.

정작 돌려야 할 것이 있는데
그걸 못해서 아쉬움을 달래려고 애꿎은 술잔만 휙휙 돌아가는건 아닌지...

(고사떡 말고..) 뭘 돌려야 할까?
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
리팩토링(Refactoring)과 프로세스 개선은 일반적으로 비교 대상은 아니다. 하지만, 목적의식에 있어 공유하는 부분이 있다. 추상화 수준을 높여서 보면 대상이 다를 뿐 '무언가 현재 상황을 개선하여 효과를 보려는' 의도는 동일하다. 거기에다가 개선 대상의 기능 자체를 바꾸지 않는다는 점에 있어서도 뜻을 같이 한다.

컨설턴트는 언제나 변화를 몰고 다닌다. 그리고, 대부분의 사람들은 변화를 싫어하거나 적어도 번거롭게 여긴다. 거기에는 컨설턴트 자신도 포함된다. 상식적으로 사고해보면 변화해야 할 이유나 당위성은 쉽게 찾을 수 있다. 하지만, 변화의 동력은 논리가 아니다. 변화의 주체가 되는 이들의 의지가 동력이다.

오늘 오전까지 고객들이 변화를 받아들일 수 있도록  세 차례의 회의를 소집했다. 이를 위해서 두 개 프로젝트에서 참고 자료를 얻었고, 고객이 갖고 있는 업무 규정과 업무를 개선할 수 있는 각종 도구(소프트웨어), 그리고 현실적인 제약(작업자와 일정)을 종합하여 대안을 제시했다.

흥미로운 사실은 컨설턴트로써 해야 하는 논리적인 작업은 준비 작업만으로도 충분하다는 점이다. 정작 고객을 대면했을 때는 그들이 변화를 수용할 수 있도록 시간을 주고 기다리는 것이 할 일의 전부였다.

지난 날 고객과 협상하는 자리에서 논리적으로 설득하려들었던 것은 바람직한 태도가 아니었던 것 같다. 방법론/프로세스 전문가의 가치에서도 언급한 바 있지만, 컨설턴트에게 논리적인 사고보다 더 중요한 것은 상황에 맞춰 적절하게 일이 흘러가도록 조치할 수 있는 능력이다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
방법론이나 프로세스에 대한 만연한 오해를 타파하기 위해 정보를 공유한다. 시리즈로 연재할 이 포스트들의 저변에 깔린 생각은 방법론/프로세스 전문가의 가치에 정리되어 있다.

이번 프로젝트에서는 스마트한 고객을 만나서 오랜만에 실용적인 프로젝트 관리 환경을 구축할 기회가 생겼다. 할 일이 늘어나긴 했지만 반가운 일이다. 프로세스 엔지니어라는 역할이 공유되고 있지 않기 때문에 일일이 쉐어포인트 사용법과 사용방안(정책)을 설명해줘야 하는 번거로움이 있다. 그렇지만, 이러한 시스템을 도입하지 않으면 우왕좌왕 하거나 불필요한 회의와 데이터 취합 등은 단순 노동이 요구된다.

각설하고, PMS라고 하면 오해의 소지가 있어 프로젝트 공유시스템이라는 말을 쓰겠다. 프로젝트 공유 시스템에서 우선 순위 1번은 역시 일정 공유다. 쉐어포인트에서는 일정 공유 기능을 제공한다.

사용자 삽입 이미지

월별뿐 아니라 주별/일별 보기 기능을 제공한다.

사용자 삽입 이미지

각각의 일정에 관련 결과물이나 참고자료를 첨부하면 자료를 전달하는 시간과 노력을 아낄 수 있다. 이런 일들이야 말로 진정한 프로세스 개선이다. 아이러니한 것은 CMMI나 ISO를 들먹일 만큼 거창한 일이 아니기 때문에 대부분 간과한다. ^^;

사용자 삽입 이미지

또한 쉐어포인트를 활용하면 엑셀로 일정을 출력할 수 있다. 개별 이벤트(일정을 이루는 항목)에 유형(classification)을 부여해두면 더욱 편리하다. 예를 들어 특정 시점(검수/감리 등)에서 계획이나 그간의 수행이력을 별도의 대장으로 관리하지 않아도 바로 출력이 가능하기 때문이다. 획기적인 개선이다. ^^

사용자 삽입 이미지

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
프로젝트 초반에는 질서가 잡히지 않아 우왕좌왕 하는 모습을 볼 수 있다. 만들어야 할 산출물과 참조해야 할 내용을 특별한 기준없이 정리하다 보면 다음과 같은 그림이 나온다.

사용자 삽입 이미지
어떤 것들은 객체로 폴더를 명명하고, 일부는 행위를 기준으로 폴더를 만든다. 시간이 지날수록 기준이 없는 폴더 구성은 불편해진다. 불편이 어느 수위를 넘으면 리팩토링을 할 것이냐를 결정하게 된다. 폴더 구성의 기준은 여러 가지가 될 수 있다. 역할은 훌륭한 기준이다.

성공하는 사람들의 7가지 습관에서 배운 바대로 우리는 동시에 많은 역할을 하게 된다. 그 안에서 적극적으로 우선순위를 두어 통제하지 않는다면 자신의 정체성은 모호해진다. 프랭클린 다이어리에서 그리하듯 폴더 구성을 역할별로 하게 되면 유익하다.

사용자 삽입 이미지
그래서 변경했다. 폴더 구성마저 내가 여기(프로젝트)에 왜 왔는지, 고로 무엇을 해야 하는지를 분명히 할 수 있는 장치로 활용할 수 있다.

성공하는 사람들의 7가지 습관
스티븐 코비 지음, 김경섭 옮김/김영사


이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회

전통찻집에 가서 유과를 시켰더니 산더미 같이 가져다 주었다. 둘이서 테이블에 앉아 있는 것을 확인한 점원이었기에 센스가 없다고 여겨졌다. 과유불급이라고 했다. 무조건 많이 준다고 좋은 것은 아니다. 넓은 찻집의 대부분의 점원이 아르바이트생으로 구성된 곳인지라 주문하는 절차에 있어서도 불편함이 많다. 메뉴판을 갖다 주고서도 자기들끼리 이야기하다가 주문을 받으러 오지 않는 일도 허다하다. 운치있게 꾸민다고 테이블에 벨도 없어서 손님이 소리를 지르거나 점원을 찾아 나서야 할 수도 있다.


위와 같은 문제는 도처에 산재해있다. 문제는 컨설턴트의 젖줄이기도 하다. 국내 현장에서 방법론가, 방법론 전문가 등으로 불리는 역할자는 사실상 컨설턴트가 되어야 한다. 책이나 규정에 있는 합리적인 내용에 비해서 현장에는 수많은 비합리성이 존재한다. 하여 적절한 균형을 만들어내는 해답을 찾지 못하면 공자님 말씀만 읊어대는 이로 치부당할 수 있다. 설령 열심히 했다고 할지라도...

요즘 연일 컨설팅의 비밀의 내용을 퍼 옮기고 있는데.. 이런 류의 서적을 처음 읽어서인지 와닿는 표현이 연어어 등장한다.

이성적이기 보다는 적절하라!

컨설팅의 비밀
제럴드 M. 와인버그 지음, 홍성완 옮김/인사이트
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
컨설팅의 비밀 1장에 다음과 같은 표현이 나온다.

첫 문제를 해결하고 나면 둘째 문제였던 것이 첫 번째가 된다.

문제를 발견하고 해결하고 나서 성취감을 느끼려는 찰나가 되면 여지 없이 뒤에 기다리던 문제가 부상한다. 최근에 내가 처한 상황을 절묘하게 설명하는 표현이기도 하다. 인지하지 못했을 뿐, 늘 그래왔던 것이다.

혼란스런 프로젝트 초기에서 컨설턴트의 임무를 정리할 즈음 미션으로 삼았던 일이 대략 마감할 즈음 그보다 더 큰 파도가 밀려왔다. 삽시간에 아수라장이 되었지만, 곧 정리가 되었다. 아수라장이 된 건 결국 스스로의 마음상태뿐이었는지도 모르겠다.

컨설팅의 비밀
제럴드 M. 와인버그 지음, 홍성완 옮김/인사이트

1장 마무리의 다음 표현을 본 뒤에 머릿말만 읽고 정리한 컨설팅의 비밀은 오판이었음을 깨달았다.

나 자신을 돕는 것은 남을 돕는 것보다 훨씬 어렵다.

늘 그렇듯 어느 정도 경지에 오르면... 수신(修身) 혹은 도를 이야기 한다. ㅡㅡ;
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
컨설팅의 비밀을 읽고 있다. 매우 흥미롭지만 쉽게 이해가 가지 않았다. 어떤 부분은 매우 추상적으로 기술되면서 잘 와닿지 않는 예를 가지고 설명하려고 들었다. 저자가 왜 이렇게 글을 풀어가는지를 먼저 아는게 좋다고 판단했다. 개인적으로 제럴드 M. 와인버그에게 연락할 수 있는 처지가 못되니까 머리말을 봤다.

컨설팅에 대한 매우 정교하고 매력적인 정의를 해놓았다.

'사람들의 요청에 따라 그들에게 영향을 끼치는 기술(art)'

어느 한구절 군더더기 없이 정제시킨 놀라운 정의다. 모르긴 해도 저자는 위와 같이 정의한 컨설팅을 실현하는 위한 가장 중요한 소양으로 비합리성에 대해 합리적이 되기를 설명하는 책 전부를 할애할 것으로 짐작된다.

고작 몇 줄로 요약할 수 있는 컨설팅의 비밀을  경험치와 배경이 다른 수많은 사람들에게 설명하기 위해 다양한 사례와 300페이지를 활용했을 것이다.

* 컨설턴트로써의 경험이 없거나 컨설턴트를 고용해본 경험이 없으신 분에게는 컨설팅이란 무엇인가?에서 인용한 부르스 에켈스의 정의를 추천합니다. :)

컨설팅의 비밀
제럴드 M. 와인버그 지음, 홍성완 옮김/인사이트
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
2년쯤 전에 컨설팅이란 무엇인가?라는 글을 썼을 때가 명함에 박힌 '컨설턴트'라는 직함에 회의적일 때였다. 진로 변경에 대한 고민을 할 정도의 상황이었으니까.

여차저차 흘러왔고 지금은 어느새 내가 서 있는 자리가 오래 입어온 옷처럼 편안해졌다. 프로젝트 현장에 가면 문제점이 선명하게 보인다. 컨설팅의 비밀에서 말하는 것처럼 '문제는 항상 있기' 때문에 과거의 경험에 비춰보면 그대로 드러난다.

다소 거만한 것인지 몰라도 이제야 컨설턴트라고 불리우는데 부끄러움이 없는 상태에 들어선 것 같다. 문제를 인지하면 빠르게 해결안 후보를 추려내고 이를 위한 기술(기법) 관점에서 분석을 하고, 다시 한번 조직(정치)관점에서 분석하게 된다.

컨설팅의 비밀
제럴드 M. 와인버그 지음, 홍성완 옮김/인사이트

만일 프로젝트의 관리자가 특정 시점에 어떤 일이 진행되어야 하는지 모른다면 프로젝트는 어떻게 될까? 대개 절차에 의해서 계획을 수립하는 과정에서 관리자는 상황에 대한 장악력을 갖게 된다.

수개월동안 수행하는 프로젝트의 경우 해야 하는 일과 작업자가 워낙 많다 보니 복잡한 세부 일정이 만들어지기 마련이다. 현명한 관리자라면 복잡한 일정을 자신이 인지하고 진행내역을 장악할 수 있는 방안을 만들어야 한다. 주간 단위로 주요한 포인트는 메모를 별도로 한다던가 일정 자체를 다단계로 만들어 놓는다던가 방법은 많지만, 자신에게 맞는 것을 고안해야 한다.

관리자가 프로젝트에 대한 장악력이 없을 때 어떤 일이 발생할까? 다행히(?)도 나는 실전에서 많은 관리자를 만날 수 있어서 상상으로 답을 낼 필요는 없었다.

  • 새로운 물품이나 정보를 획득했을 때, 팀원의 역할(R&R)을 잘 모르는 관리자는 즉흥적으로 주변의 키맨에게 사실을 알린다. 이렇게 되면 실제 그 사실을 알아야 할 사람에게 전달이 될런지는 미지수다. 그것은 키맨의 의지, 양심 혹은 기억력에 달려 있다.
  • 산출물을 제출할 시점이 되었거나 어느날 고객이 뭔가 요구해오면 관리자는 누군가 주변의 키맨을 찾는다. 갑자기 주어진 일에 대해서는 대부분 자신에게 일이 떨어질까 염려하게 된다. 결국 팀원이 소극적이 되고, 핑퐁 현상에 따른 갈등/다툼이 벌어진다.
암튼... 컨설턴트(이름이야 뭐든 실제로 하는 일이 컨설턴트라면)는 대개 키맨으로 분류된다. 별의별 질문과 요청을 다 받게 되고, 해결책을 내놓을 수 있는 경우가 많다. 하지만, 현실적으로 실천 가능한 일인지 판단해봐야 하고, 가능하다면 누가 할 것인지 아이디어가 있어야 한다. 그렇지 않고 내놓은 방안은 무책임한 발언이 될 뿐이다.

완벽한 컨설팅에 명기된 바대로 컨설턴트는 스태프로 일해서는 안된다. 일시적으로 관리자 대행이 된 상황이라면 관리자가 빨리 본연의 일을 할 수 있게 상황을 개선시켜야 한다.

완벽한 컨설팅
피터 블록 지음, LGCNS 엔트루 컨설팅 외 옮김/인사이트

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
사용자 삽입 이미지

Role Profile for Software Architects라는 글에서 정리된 내용이다.
나름 경험 많은 이들이 고민한 흔적이기에 이런 박스 그림은 정교함을 떠나서 일단 호감이 간다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
IBM RSA(Rational Software Architect) 관련 트러블슈팅 일지에 기록한 것처럼 트러블을 겪으면서 모델링 도구를 쓰고 있다. 오전에는 5분이면 될 일을 30분 내내 RSA가 죽는 바람에 고전을 하다가 결국 XP가 깔린 다른 PC에서 성공했다. 비스타에서 RSA가 정상 구동하지 않는 것인지, 내 노트북이 문제가 있는 것인지 모르지만...

RSA는 엄청난 기능과 추가적인 편의성 만큼이나 높은 가격과 PC 사양을 요구한다. 실제로 고객사의 담당자들은 PC를 업그레이드 받았다. 최소 1기가의 RAM을 요구하며, CPU는 최소한 1년 전 최고 사양 수준을 권장하고 싶다.

개인적인 견해로는 단종(?)되어 버린 Rose와 국내 영업 채널이 약해 사용율이 저조한 EA를 추천하고 싶다. 기술지원이 없다는 것을 단점으로 하더라도 30만원선의 가격에 수천만원대의 도구에 비해 기능적으로 떨어지지 않는다. 역시 사적인 관점에서 보면 Rose 정도로 가벼운 EA가 여타 도구보다 훨씬 매력적이다.

가장 아쉬운 점은 모델링 방법은 전문가에게 배우려고 하면서, 모델링 도구 선정은 대개 전문지식이 없는 사람이 결정한다는 점이다..ㅡㅡ;
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
5 Reasons why I think I will not use Spring.라는 글이 올라왔다.  작성자의 편에 서서 읽어줄 준비가 되어 있었다. 하지만, 글의 말미로 갈수록 지루할 뿐이다.

필자가 지적한 스프링의 문제는 다음과 같다.
1. Spring configuration is bloated.
2. Putting configuration into XML is painful.
3. You loose Java Strong Type Checking if using XML configuration
4. Spring is not light weight container.
5. Spring is a Container that promise us to build loosely coupled application.

bloated, painful, no light weight  등의 표현은 상대적인 것이다. 그렇다면 이를 개선할 수 있는 옵션은 무엇인가? 어떤 것을 써야 설정이 간편하고, 자바의 스트롱 타이핑의 강점을 활용하면서도 선언적 프로그래밍이 가능해지는가?

더 가볍고, 더 독립적인 코드를 만들 수 있는 기반 프레임워크로는 무엇이 있는가? GUICE? DI 기능 외에는 그럼 각자 프레임워크를 개발하란 말인가?

낚시꾼도 아니고, 투덜이 스머프도 아니라면... 괜한 비난/비판으로 시간을 소모하지 말아야 한다. 명심하자. ^^;
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회

보통 코드 리뷰(Code Review)라고 하면 프로그래밍의 결과물인 코드를 다른 사람이 검토하는 것을 의미한다. 코드 리뷰는 매우 유익하긴 하지만 프로그래밍하는 과정을 엿볼 수는 없다.

지난 AJN의 스터디때 다른 사람들이 코딩하는 모습을 지켜보았다. 이것은 일종의 라이브 코드 리뷰였다. (물론, 라이브 코드 리뷰라는 말이 있는 것은 아니지만.. 편의상 사용함) 라이브 코드 리뷰를 하게 되면 프로그래밍 하는 과정이 그대로 노출된다. 개선의 여지를 갖고 라이브 코드 리뷰에 참여하게 되면 상당히 유익하다.

먼저 좋은 프랙티스를 배울 수가 있다. 최근에 열리는 데브데이류의 행사나 XP의 페어프로그래밍 프랙티스 등은 모두 라이브 코드 리뷰 과정을 통해 배움을 전달할 의도를 포함하고 있다.
 
또 한가지 이점은 는 개선점이 드러난다는 것이다. 스터디 동료들이 타이핑하는 과정에서 특히 (내가 예전에 갖고 있던) 나쁜 코딩 습관을 보게 되었다. 이클립스 리팩토링 기능을 쓰지 않아서 쉽게 드러나지 않는 오타를 범하는 모습도 실시간으로 확인할 수 있었다. 그런 부분을 지적받게 되면 기분이 상할 수 있기 때문에 조심스럽게 지적해야 했다. 하지만, 지적받은 사람이 마음을 열고 이를 수용하면 매우 짧은 시간에 변화(개선)의 기회를 얻게 된다.

AJN의 코드캠프에서 라이브 코드 리뷰의 이점을 살릴 방안을 생각중이다. KVM으로 연결된 여러 대의 노트북과 프로젝터라면 꽤 괜찮은 환경이 될 수 있다. 그리고 팀원이 모두 타이핑 하는 모습을 노출하여 동질감을 얻게 하는 것이다. 그렇게 되면 더 서로 마음을 열 가능성이 높고, 보다 쉽게 관찰한 내용을 공유할 수 있을 것이다.

부끄러움과 권위의식을 조금만 내려놓는다면 다수의 멘토를 얻게 되는 상황이다. 우연한 계기로 스터디에 여친이 참석했는데 내가 발표하는 과정에서 불필요하게 마우스를 많이 움직이는 것을 지적했다. 아무도 지적해주지 않던 문제였는데... 다른 친구가 발표하는 중에 마우스를 많이 움직이는 것을 지적한 바 있는데 나도 그렇다는 사실을 누가 말해주지 않으면 알 수가 없었다. ^^

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
반복의 필요성은 사실 검증하고 말고 할 것도 없다.
우리의 삶은 늘 시행착오를 통해 반복적인 학습을 하면서 성장하기 때문이다.
프로젝트라고 해서 달라질 것은 없다.

어제 PM이 설계모델의 수준에 대해서 물었다. 솔직히 대답했다.
모델을 가장 잘 파악하고 있는 PL은 문제를 간파했다.
개발자(모델러)들의 업무 이해도가 매우 낮다는 점...
그럼에도 불구하고, 파일럿 압박 때문에 심도있는 분석이 어려운 상황

개발자에게 복잡하고 생소한 업무를 분석하면 한계가 있다.
어떤 경우는 그 바닥에 수년간 종사해도 정의하지 못하는 것들이 태반이다.
소프트웨어 개발자에게 최고의 무기가 될 수 있는 것은 구현해보는 것이다.
구현해내는 과정에서 해당 업무를 이해할 수 있다.
구현해나가는 과정 자체가 업무를 이해하게끔 유도한다.
업무에 대한 이해가 없이 고객의 요구를 제대로 구현하는 것은 불가능하다.

그런데 모든 업무를 다 분석하고 설계, 구현으로 나아간다면...
업무 분석을 제대로 할 수 있을까?

1) 업무 범위가 작거나
2) 업무에 엄청나게 해박한 사람이 분석하거나
3) 업무에 변화를 주지 않으려고 하는 경우가 아니라면

보편적으로는 업무를 나눠서 구현해보고
시행착오를 통한 학습을 통해서 업무 이해도와 자신감을 키우는 것은 분명 득이 된다.

분명 반복은 개발자의 업무 이해도와 생산성에 엄청난 차이를 주었다.

또한, 반복은 SoC(Separation of Concerns)에도 유익하다.
하나의 업무흐름을 먼저 구현해보고 나면 기술적인 문제에서 약간은 자유로와진다.
아무리 간단해보이는 구현이라도 초반에는 잡다한 환경구성과 (새로운 툴 도입 등으로 인한) 기술 습득에 노력이 필요하기 때문이다.
그런 과정을 한번 겪고 나면 더욱 업무에 집중할 수 있다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회

지인들과 저녁을 함께 했다. 화두로 나온 이야기 중에 '몰입과 중독의 차이'가 있었다.
돌아오는 길에 나름 정리를 내린 것은 겉으로 보여지는 양상에는 별 차이가 없다는 점
그 결과가 긍정적인 효과를 낳는다면 이를 몰입이라고 할 수 있고
비생산적이고 스스로의 건강을 해치는 방향으로 진행되면 중독이라 할 수 있다.
다른 사람이 내가 어떤 일에 몰입하고 있다고 볼 때 나는 중독을 벗어난 경우였다.

얼마전 스터디에서 있었던 일들이 오버랩되었다.
후배가 과도하게 EasyMock을 사용하여 단위 테스트를 하는 모습
예전에 내가 EasyMock의 유용함에 혹해서 본말을 전도시켰던 모습과 같았다.

가까이는 고객이 원치 않는데 무리하게 스프링 도입을 관철하려는 모습이 남아 있고
멀리는 RUP, UML, EJB와 같은 기술에 현혹되어서
시스템을 개발하는 것의 진정한 목적에 대해서는 일체의 관심도 없던 시절이 있었다.

좋은 것은 분명히 좋은 것이다.
하지만 궁극적인 목적에 부합하지 않은 수단이라면 고집하지 않을 수 있어야 한다.

다짐하고 또 다짐하면 고집이 눈꼽만큼이라도 줄 수 있을 것이다.ㅡㅡ;

이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회
http://www.ibm.com/developerworks/ibm/library/it-booch_web/booch_view2.jpg
이미지 출처: http://www.ibm.com/developerworks/ibm/library/it-booch_web


프로젝트를 하면 할 수록 의사소통의 중요성을 실감하게 된다. 시스템 개발 프로젝트에서는 의사소통 문제마저 시스템으로 해결하기 위해 각종 시스템을 도입한다. 그러나, 종종 어떤 문제가 있는지 파해쳐보지 않고 솔루션만 도입해서 거금을 날리면서 고생까지 감내하는 모습을 보게 된다. 마치 쓰지도 않을 헬스 기구로 집안 한켠을 낭비하는 것과 같다.

오래전에 필립 쿠트르첸이던가.. 하는 양반이 4+1뷰를 내놓았다. 모유명업체의 꽃이름의 툴에서 그 흔적이 아직도 남아있다. 당시는 나름 번쩍이는 아이디어였지만 오늘날 이를 그대로 쓰는 것은 무지한 행동이다. ^^

여하튼 프로젝트를 보는 눈의 다양한 관점으로 나눌 수 있다는 것이 4+1뷰에 담긴 골자다. 수년간 프로젝트에 참여하다 보면 다양한 뷰를 만나게 된다. 그 중 매우 개성이 강하고 한가지 특성으로 집약할 수 있는 뷰가 있다. 여러분도 프로젝트를 수행해봤거나 소프트웨어 개발 조직에 몸담고 있다면 이러한 분들을 만날 수 있을 것이다.

더운 여름 잠자리에 들기 전에 상념을 덜어버릴 요량으로 정리를 좀 해본다.
- 온리기술지원뷰: 포괄적으로 해결책을 물어보면 무조건 툴 얘기만 한다. 자기가 담당한 것이 아니라고 하거나 다른 툴을 도입하라는 식의 대답만 한다. 온통 툴의 기능으로 세상을 보는 듯하다. 이런 분을 만났을 땐 툴의 기능만 확인하라.
- 오직개발뷰: 자기가 경험해보지 않은 기능을 대하면 무조건 안된다고 말한다. 일단 고객과 대립각을 세우고 싸워서 이겨야한다고 생각한다. 내심 이해할 수 있는 측면이 있기도 하지만 싸울 시간에 고객의 말을 잘 들어보는 것이 좋을 듯 하다는 생각이 든다.
- 온리근태뷰: 근태관리, 공식행사 혹은 회식자리 주선에만 관심있는 사람들. 나와는 완전히 다른 행성에서 온 사람들이다.
- 독고다이뷰: 경험많은 개발자중에 간혹 존재한다. 무조건 자기 말이 맞다. 얘기해보면 모든 것을 다 해본 사람 같다. 말에 비해 실제 아웃풋은 별로 없고, 남의 말은 일단 끊고 본다.
- 팬텀뷰: 얼핏 보면 일을 잘하는 것 같다. 하지만, 제대로 다시 보면 하는 일이 없다. 회의 참석하고 사람들과 어울리는 것이 일의 전부다.
- 품질착각뷰: 품질이 문서 번호와 서식 맞추는 것에 달린 것으로 착각하는 사람들이다. 서식틀린 것에는 열을 올리지만 정작 문서에 쓰레기를 담아도 서식만 맞춰주면 좋아한다.

너무 부정적으로 적었나.. ^^

농담삼아 적은 이러한 뷰가 대부분의 프로젝트에 엄연히 존재함에도 불구하고, 내가 참여한 모든 프로젝트에는 더욱 훌륭한 뷰, 그것도 다른 사람을 이해할 수 있는 멀티 뷰를 가진 사람들이 여럿 존재했다. 그런 사람들이 편협한 뷰를 가진 사람을 포용해서 끌고 가는 것이 결국 프로젝트다. (엉뚱한 결론인가.. 잘 시간인듯)
이올린에 북마크하기(0) 이올린에 추천하기(0)
Posted by 영회