반응형
먼저 이 글은 대기업이나 중소기업의 의미가 아니라 순수 프로젝트에서 PL 의 입장으로 쓴 글입니다.
그 외의 다른 어떤 의도도 없으니 오해 마시길 바랍니다.

또한, 이 글을 인사담당자나 PM, 혹은 그 윗분들이 읽기를 바라면서...

1. 빠지는 인력이 있다면 다른 인력을 대체 투입하면 된다.(?)
   - 소프트웨어는 살아있는 유기체와도 같습니다. 살기 위해서는 최소한의 Atomic 기준의 인력이 필요합니다.
     5명이 Atomic 한 기준이 되는 소프트웨어를 만드는 프로젝트에서 한 명을 대체하는 것은
     달리기 운동선수의 한쪽 다리를 의족으로 대체하는 것과 같습니다.
   - 의족이 잘 맞을지 안맞을지도 모릅니다. 잘 안맞는다면 다시 걸을 수 있는 확율은 거의 없습니다.
   - 의족이 잘 맞는다 하더라도 현재의 기술로는 제대로 걷는데 몇 달의 필요합니다.
     의족을 종아리 아래 부분만 하면 된다면(소프트웨어 자체가 특별한 기술을 필요로 하거나,
     실력이 좋은 인력 투입) 좀 더 빨리 걸을 것이고,
     의족을 허벅지 아래 부분을 다 한다면(소프트웨어 자체가 일반적인 기술을 쓰거나,
     실력이 없는 인력) 좀 더 오래 걸릴 것입니다.
   - 결국 몇 달 동안 걸었다고 해서 다시 뛰기 까지는 더 많은 노력과 시간이 필요합니다.

2. 텅키 방식으로 일부 기능을 떼어 주면 된다.(?)
   - 일반적으로 치수를 제대로 쟀다고 해서 의족이 바로 자신에게 맞기는 어렵습니다.
     그걸 맞추기 위해서는 생각했던 것 보다 더 오래 걸릴 수 도 있습니다.
     또한, 텅키 업체의 기술자가 바뀌거나 회사 자체가 없어진다면 또 시간이 필요합니다.
   - 허벅지 부분은 우리가 만들고 종아리 부분은 텅키로 주고 서로 무릎을 맞춘다고 가정하면
     위의 설명이 조금 도움이 될려나요?
   - 결국 같이 매일 같이 얼굴 맞대면서 기술자들이 서로의 의견을 교환해 가면서 만드는 것이
     매일 특정시간만 각 업체의 PL 들이 만나서 의견교환하면서 개발하는 것보다 훨씬 진행이 빠를 것입니다.
     그렇다 하더라도 기술자나 회사가 바뀌면 똑같은 첫번째 문제가 발생합니다.

3. 인력을 추가로 투입하면 된다.(?)
   - 여기에는 여러 가지 비유가 있더군요. 대표적으로 보면,
      아기를 낳을 때 10명이 모이면 1달에 낳을 수 있느냐?
   - 겨우 특정한 운동선수의 의족을 그에 맞게 시행착오로 적응해서 만들기 시작했는데,
      다른 기술자나 신입이 들어와서 그 적응 기간없이 만들 수 있을까요?
      아니면 하나의 나사를 둘이서 조인다고 빨리 조일 수 있을까요?

대체 인력을 줬다고, 텅키로 업체를 구했다고, 추가로 인력을 투입했다고 프로젝트가 납기 기간내에 성공할 거라고 논리를 세우는 인사조직이나 PM, 그 윗분님들.. 제발 쫌~~~    
반응형
Posted by seungkyua@gmail.com
,
반응형
처음 회사에 들어와서  Java 프로그래밍을 배우겠지..
개발환경은 Eclipse.. 이 툴은 좀 어렵군.. 그래도 한 번 세팅하면 편해.
그러다 어느 정도 API 에 익숙해 지면 Thread 라는 것을 배울거야.
하지만 속으로 이렇게 생각하겠지. '이걸 어디다 써먹어? 먹지도 못하는 것.'
남들이 만들어 놓은 프로그램 유지보수를 하면서 JSP 라는 것을 배우지.
서버단은 Spring 으로 되어 있네? 그러면서 도메인은 EJB3를 쓰고.
원리도 모르고 왜 쓰는지도 모르겠지만 Spring 문법을 배우고 EJB3 문법도 배우자.
여기서 너희들은 제일 중요한 J2EE SPEC 중에서 Servlet SPEC을 놓치고 넘어가지.
이걸 운좋게 공부할려고 맘먹었으면 6개월은 더 고생해야 돼.
공부하면서 Tomcat과 같은 Servlet Engine의 ClassLoader와 쓰레드의 원리를 알게되지.

1~2년 지나면 Spring 을 쓰다가 알게되는 Design Pattern을 보겠지.
아.. 이런게 있구나.. 하지만 백날 배워봤자 어디다가 응용해야 할지 모르지. 
사실 Design Pattern은 일부를 제외하고 클라이언트 프로그램에 더 잘 맞거든.

어느날 프로그램을 개선하다고 이전의 프로그램이 개판이라는 것을 알게 되지.
그 때 선배가 이야기하는거야. 프로그램을 고칠려면 Refactoring을 해야한다.
Refactoring을 할 때 제일 중요한 것은 안전성.. 그러면서 자연스럽게 Unit Test 를 배우지.
축하해.. 여기까지 공부했으면 이제 한 5년은 지났을 거야.

이제 2갈래로 나눠져야 돼.. 내가 웹 프로그래머로 살지.. 아니면 서버 프로그래머로 살지.
서버 프로그래머로 살려면 네트웍 프로그램을 알아야지..
오픈 소스를 검색하면 MINA가 나올거야. 하지만 Netty가 그 이후 버전이라는거.
기존에 공부한 Design Pattern 덕에 그나마 소스 분석은 가능하지.
Netty 는 JBOSS 커뮤니티에 속해서 Memcached 나 Infinispan 같은 서버 캐시도 관심을 갖게 되겠지.
그러다 어느날 다시 NoSQL 이라는 것을 만날거야.
축하해.. 그럼 요즘 화두가 되고 있는 Clound Computing을 만난거야.
Hadoop 도 있고 HBase도 있고. Thrift, Hive zooKeeper 등등을 만나지..
2억 5천명이 사용하고 있는 FaceBook의 서버 구조도 같다는 것을 만나게 되고. 

또 5년이 흘렀군.. 다행스러운 것은 Clound Computing은 현재라는 거야.
불행한 것은 지금 이글을 보고 있는 초보 개발자는 10년이 지나야 현재의 내 말을 이해한다는 거지.

웹 프로그래머로 살고 싶다고?
그럼 이제는 도메인 모델링이 궁금해 질거야.. 앞에서 공부한 EJB3지.
원리는 뭘까? 궁금하지? 그렇담 마틴파울러가 쓴 Enterprise Application Architecture Pattern이란 책을봐.
6개월을 꾸준히 공부해도 완벽하게 이해 못할테지만.

웹 프로젝트를 하다보면 고객이 이러지.. "내가 말한 시스템이랑 틀린데? 왜 이렇게 만들었어요?"
아.. 절망.. 도대체 고객이 요구하는 게 뭐야?
그걸 뭘 고민해? 먼저 조금씩 만들고 시스템을 자주 보여주면서 그 때 그 때 원하는 것을
수정해서 만들어 가면 되지. Extreme Programming 이라는 것이 그런거야.. 
근데.. 프로젝트를 자주 통합하라네? 어떻게 하지?
우선 소스를 관리해야지..뭐가 좋을까?
Subversion 으로 소스를 관리해. 컴파일은? Ant 나 Maven으로 해야지..
 옛날에 배운 Unit Test 를 써서 프로젝트를 해야지..

어느날 오픈한 시스템이 다운되지. 사용자가 많아서.. 이걸 어째?
Infra 영역인 L4, HA, Clustering 을 공부해야 할거야. 이건 기본이거든.
Queue도 배워야 하고.
아.. 쓰기도 힘들다..

불쌍하다. 후배들아.. 그렇게 공부하고도 아직도 월급과 대우는 그정도라니..
반응형
Posted by seungkyua@gmail.com
,
반응형
3D 애니메이션 제작 과정

1. 트리트먼트 (treatment) : 기획안 제작, 아이디어 회의를 거쳐 캐릭터, 배경, 줄거리를 만든다.
2. 스토리보드 (story board) : 각본을 만들고 스토리 아티스트 (story artist)들이 이를 그림으로 표현한다.
3. 캐릭터 완성 : 캐릭터 디자이너가 캐릭터를 만든다.
4. 3D 모델 완성 : 모델러 (modeler)가 캐릭터를 3차원으로 만든다.
5. 움직임 프로그램 제작 : 리거 (rigger) 기술자가 뼈와 관절을 만들어 자연스럽게 움직을 수 있는
                                    컴퓨터 프로그램을 만든다.
6. 화면의 구도와 배경 완성 : 레이아웃 아티스트 (layout artist) 들이 화면의 구도와 배경을 만든다.
7. 캐릭터의 움직임을 표현 : 애니메이터 (animator)가 컴퓨터 프로그램을 이용하여 캐릭터의 움직임을 표현한다.
8. 목소리 및 빛, 그림자 입히기 : 성우는 목소리를, 라이터 (lighter)는 화면 속 사물에 빛과 그림자를 입힌다.

유니티로 개발하려면 캐릭터 디자이너와 3D 모델러가 필요하군요..
반응형
Posted by seungkyua@gmail.com
,
반응형

정말 공감가는 말이다..

아키텍트 우습게 봤는데 꼭 그런것 만은 아니군..


최종 사용자의 기능별로 나뉜 컴포넌트 기반의 아키텍처는 다른 기능에 영향을 미치는 물리적 요소와 관련된 변경일 경우만 제외하면 기능의 변경용이성 측면에서는 매우 좋을 것이다..

...

이와 같은 기능 기반의 아키텍처는 컴포넌트 재사용이나 데이터 공유가 쉽지 않고, 구현 측면에서도 그리 효율적이지 않다.

- 렌 베스

딱 우리 시스템 보고 한 말이네.. 그러니 컴포넌트별 제품으로 팔기 어렵지...
반응형
Posted by seungkyua@gmail.com
,
반응형

네트워크 이론을 아세요?
1950년대 그 이전에도 네트워크 이론은 존재했습니다. 그러나 그 에 대한 개념이나 증명이 완벽한 것은 아니었죠..
1967년 하버드대 교수인 스탠리 밀그램(Stanley Milgram)은 어떤 집단에서도 6단계만 거치면 모두 연결된다는 이론을 발표했습니다.(Six Degrees of Separation)
이에 1994년 올브라이트 칼리지의 세 학생 (Craig Fass, Brian Turtle, Mike Ginelli) 는 케빈 베이컨의 6단계 게임 (Six Degrees of Kevin Bacon) 이라는 게임을 만들어 인터넷에 올립니다. 어떤 헐리우드 배우도 6단계만 거치면 역시 헐리우드 배우인 케빈 베이컨과 연결된다는 게임입니다. 물론 모두 영화, 드라마, 광고등 함께 작업을 한 배우만 연결을 시킨거죠.

1998년 미국 코넬 대학 수학자인 스티븐 스트로가츠와 컬럼비아 대학 수학자인 던컨 와츠는 케빈 베이컨의 6단계 게임 자료를 바탕으로 어느 집단이든 (예를 들어 전력 송전망, 생물의 신경망등) 특별한 연결고리만 있으며 (여기서는 일종의 지름길) 몇단계 안에 모두 연결되는 좁은 세상을 만들어 낸다는 사실을 확인했습니다.

1999년 미국 노트르담 대학의 물리학자 알버트 라즐로 바라바시(Albert-Laszlo Barabasi) 교수는 인터넷 월드 와이드 웹을 연구 하였습니다. 처음 그는 표준편차가 있는 분포도 그래프를 생각했다고 합니다. 즉 평균적 수의 웹페이지가 평균적인 링크를 가지고 연결된다고 생각한 것이죠.. 그러나 그는 대다수 웹페이지가 소수의 링크만을 갖고 있는 반면 몇몇 페이지는 엄청나게 많은 수의 웹페이지들과 연결돼 있다는 걸 발견했습니다. 즉, 유난히 많은 링크가 몰려있는 허브를 발견하고 모든 네트워크에서의 연결은 허브를 중심으로 연결된다는 것을 네이처지에 발표했습니다. 또한 바라바시 교수는 스티븐 스트로가츠와 던컨 와츠에게 케빈 베이컨의 6단계 게임 데이터를 받아 이를 다시 한 번 검증하였습니다.
바라바시 교수는 자신의 논문에 의해 앞으로 구글, 아마존과 같은 허브 사이트가 나올 것을 예견하기도 했습니다.
사실 스티븐 스트로가츠와 던컨 와츠는 분포도만 조사해 봤어도 먼저 발표할 수 있는 논문이었습니다.

이제 네트워크는 허브를 중심으로 6단계 안에 연결되는 구조라는 것을 모두가 알게 되었습니다.

그럼 이제 이론을 우리 주위에 접목해 볼까요?

혹시 여러 분들은 자신은 이름만 들었지만 인터넷 상에서는 유명한 IT 전문가를 알고 계십니까?
Flex, Java, 닷넷, 방법론, 웹표준 등 소위 에반젤리스트라 불리는 사람들을 잘 알고 있을 것입니다..
이들은 자신의 블로그나 동호회 사이트로 허브의 역할을 하며 많이 알려졌죠..
이제 6단계만 거치면 모두 이들을 알고 있을 것입니다.
하지만.. 그 유명한 전문가가 만약 프로그래머이거나 아키텍트라면 소문만 믿고 따르지는 마세요..
대부분은 평범한 실력에 허브사이트를 통해 유명할 뿐인 경우가 많습니다.
반드시 실력을 통해 확인하십시오.. 더욱이 프로젝트를 같이할 경우라면 인성까지도 확인하세요..
낭패보기 쉽습니다..^^

반응형
Posted by seungkyua@gmail.com
,
반응형

많은 회사들이 혁신 운동을 실시한다.
그 중에 2004년에 한 참 붐을 일으킨 6시그마 운동을 돌이켜 볼까 한다.
5년이 지난 지금 내가 느끼는 회사내 6시그마 운동은 실패했다.
그 원인은????

이유는 EBS의 4월 25일 21:50분에 방송한 인간의 두 얼굴이라는 방송에 잘 나와있다..^^

사람은 주변환경에 순응한다.
회사의 혁신운동은 그 혁신운동을 주도하고 평가하는 조직과 혁신을 실천하는 피평가 조직이 있기 마련이다.
피평가조직은 점수를 잘 받기 위해서 목표달성이 비교적 쉬운 과제를 택하고 평가조직은 그것이 안되는 줄
알면서도 해당 과제를 받아들인다.

만약 이 상황에서 정말 목표를 높게 잡고 하고자 하는 조직이 있었다면 그 조직은 손해를 보고 아무도 알아주지
않을 뿐이다. 1년을 이렇게 보냈다면 누가 다시 높을 목표를 잡겠는가?

결국 모두가 이런 상황에서는 혁신운동은 단지 조직을 점수로 평가하고 이를 따랐는지만 평가할 뿐 진정한
회사의 내면이 바뀌는 것은 아니다.

벌서 4년이 지났는데 회사의 평가조직이 본인들이 실패한 원인을 정확히 분석하고 논문을 썼다면 세계적으로
유명한 행동심리학 논문이 됐을 텐데...ㅋㅋㅋ

그럼 어떻게 해야 성공할 수 있을까?
그 방법은????

사람은 주변환경에 순응하면서 살기도 하지만 주변환경을 바꾸기도 한다.
여기에 3의 법칙이 나온다. 3명이 뭔가를 하면은 1,2명이 한 것과는 다르게 다른 사람으로 부터 마치 규범으로
보인다는 것이다. 즉, 회사의 운동을 정말 변화할려는 사람이 변화를 주도하고 이를 전 사원에게 공지하는 것이다.
처음 몇 명이 변화를 주도하겠지만 공지를 받은 직원들이 이를 공감한다면 너도 나도 달려들어 하게된다.
그냥 혁신을 따라하는 환경에서 혁신에 적극적으로 참여하는 환경으로 바뀌는 것이다.

난 그런 예로 블로그를 두겠다.
블로그는 처음에는 한두명이 본인의 글을 작성하기 위해서 도입했다. 한 두명이 쓴 글을 다른 사람들이 그 글을
읽고 그 재미에 빠져 모두 블로그를 한다. 나중에는 본인이 안하면 왠지 사회에 도태된 느낌이 든다. 
물론 흥미를 잃으면 지속성도 잃게된다.
허나 이를 습관처럼 하게 되면 이게 프로세스가 되고 혁신이 된다.

내가 CEO 라면 30명의 특공대를 만들겠다. 각 팀에 3명씩 넣어 원하는 혁신을 정말 마음에서 우러나와서 일을
하게 시키겠다. 이를 본 팀원들은 한두명씩 그 혁신 작업에 빠져들 것이다. 나중에는 혁신을 안하면 자신이 도태
된다는 느낌을 가질것이다. 저절로 되는 것이다.

혁신 운동....참 쉽죠 잉~~~

반응형
Posted by seungkyua@gmail.com
,