2005년 4월 18일 월요일

[Tech]Visibility(Transparency)

Software를 설계할 때 visibility도 매우 중요하다.
Visible한 프로그램은 디버깅도 쉽고 이해하기도 쉽다.


외부(개발자외의 다른 사람들)에서 봤을 때 설명하기도 쉽고
기획자와 의사소통하기도 쉽다.


Embeded System 같은 제약된 환경이 아니라면
visibility는 Performance만큼 중요할 수 있다.
(Embeded system도 에뮬레이터를 통해서 visibility나 managibility를 달성한다.)
사실 transparent 할수록 performance를 측정하기 쉽다.


소프트웨어공학 뿐만 아니라 화학, 물리학에서도
물질을 합성하는 것 만큼이나 물질을 detect하는 것은 중요하다.
사실 detect할 수 없으면 합성이 성공했다는 사실을 알 수 없기 때문이다.
그래서 현미경, MRI, X-ray, 분광기 등이 중요하다.
(특히 양자역학에서는 관찰은 모든 것이라고 할 수 있다.)
과학, 공학 기술의 두 축은 제조와 측정이다.
각각이 동등하게 중요하다. (50:50)


기능(function)을 하나 더 추가하는 것보다
우리가 만든 것을 우리 스스로 이해할 수 있게 하는 것이 더 중요하다.
아무리 기능을 많이 넣어봤자, 그 기능이 어떤 영향을 주는 지,
얼마나 많은 사람이 쓰는 지, 얼마나 유용한지를 모르면 장님과 같다.


'선택과 집중'을 위해서는 먼저 관찰이 필요하다.
관찰이 가능해야 선택을 할 수 있다.
관찰과 선택없이는 집중(특정 기능에 집중)하는 것도 불가능하다.


Visibility를 먼저 달성해야 Managable하게 만들 수 있다.


Compiler로 치면 debugger, Network Monitor, Analyzer 등이 이런 것들에 해당한다.


-------------------------------
얼마전 개발자 회의를 했는 데,
기획자들이 소외된 느낌을 많이 받고 있다는 의견이 나왔다.
그러니 좀 더 빡세게 일해서 기획자들이 정한 날까지
프로덕트를 빨리 만들어야 한다고 결론지어 졌는 데,
(개발자들이 마법사처럼 빨리 만들어 주지 않아서 기획자들이 삐졌다나..)
내 생각은 다르다.


기획자가 원하는 것은 자신들의 기획이 얼마나 빨리 구현되었느냐보다도
어떤 방향으로 만들어 지고 있는 지,
과연 어떤 식으로 동작하는 지, 얼마나 효과적인 지를 알고 싶은 거다.
(0 다음에 바로 100이 되는 progressive bar(진행상태표시바)보다는
  1씩 증가해서 100이 되는 progressive bar가 훨씬 직관적이다.) 


그들은 결과만 보고 마는 사용자(User)와는 다른 존재다.
기획자들은 소프트웨어의 내부를 알고 싶어야 한다.
내부를 서로 이해하기 쉽게 만들수록 개발자가 어처구니 없고 불가능한 일정과 계획에 시달리는 일도 줄어들게 된다.
적절한 feedback을 통해 서로가 상식과 감(Sense), 직관을 기를 수 있기 때문이다.


아무리 열심히 만들어도 기획자가 무엇이 추가되었는 지,
어떻게 바뀌었는 지 느끼지 못하면 서비스에서 소용이 없다.
기획자에게도 느끼게 하지 못 하는 데(awareness),
사용자가 어떻게 느낀단 말인가?


-------------------------------
검색 엔진을 만드는 데, 다루는 데이터가 너무 크다. 필터도 너무 많다.
그리고 검색은 데이터 크기가 Quality를 결정한다.
여러 Factor들이 줄다리기를 하는 통계물리학적인 상황이라서
한가지 factor(filter)를 추가했을 때 결과가 선형적으로 변하지 않는 다.


큰 데이터를 관찰할 많은 툴이 필요하다.
그리고 그런 툴들이 모여서 다시 filter가 된다.


스팸 필터는 자료를 몇 퍼센트나 통과 시키고 버리는 지,
어느 site가 인기가 많고 적은 지,
인터넷 전체 Traffic은 얼마나 되는 지,
각 검색어별 성향은 어떻게 되는 지,
시간대별 상황, 데이터의 평균크기,
인터넷 데이터의 역동성(새로 등장하는 데이터의 양과 사라진 데이터 - 깨진 링크들),
다른 검색엔진(경쟁자)과 결과 유사도는 얼마나 되는 지,
인구 통계학적으로 우리의 서비스는 얼마나 편향되어 있는 지(주 사용층),


스토리지는 얼마나 소모했는 지, 얼마나 필요한지,
미래에는 얼마나 필요할 지, 우리의 목표수치는 얼마인지,
우리 기술의 한계는 어디인지,

댓글 없음:

댓글 쓰기