[펌]OSCON 둘째날 III - Exceptional 소프트웨어 개발

ITWeb/스크랩 2008. 7. 25. 10:30

그냥 개인적인 생각 입니다만.
개발자는 문서쟁이는 하지 말았으면 한다는 짧은 생각이 스쳐 가내요...
좀더 설계, 개발 등에 집중할 수 있게 해줬으면 좋겠내요..
문서는 전문 writer 에게... ^^*

Channy's Blog 에서 퍼왔슴돠
ref.
http://channy.creation.net/blog/531

두번째 키노트로 나선 Robert Lefkowitz의 발표는 정말 인상적이었습니다. 우선 그는 마이크로소프트의 개발 프로세스를 꼬집어서 전통적인 개발 방식이 오픈 소스와 얼마나 다른지 비교해 주었습니다.

뿐만 아니라, 켄트벡의 익스트림 프로그래밍의 라이프 사이클도 비교 대상에 올렸는데요. 이러한 과정은 과거 5세기 부터 발달한 수사학 단계의 일반적 접근으로 보았습니다.

수사학의 분야는 착상(inventio), 배열( dispositio), 표현(elocutio), 암기(memoria), 발표(actio-pronuntiatio)라는 다섯 부분으로 이루어져 있고, 이는 일반적으로 연설이 행해지기까지의 과정으로 알려져 있죠. 수사학과 MS, XP, 오픈 소스를 비교한 도표는 아래와 같습니다.

방법론 개발 과정
Rheotic(수사학) Inventio- Dispositio- Elocutio- Memoria- Pronuntiatio
Microsoft Requirement- Development - Test - Release - Maintainance
XP방법론 Exploration- Planning - Iteration - Release - Productionizing
오픈소스 Bug Report- Tiage - Integration - Commit/Update - Run/Use

하지만, 오픈 소스의 개발은 실제로 Bug Report가 아니라 Commit으로 부터 출발합니다. 즉, Commit / Update (memoria) - Run / Use (Pronuntiatio) - Bug Reporting (Inventio) - Triage (Dispositio) - Integration (Elocutio)의 순서를 따르고 이 점이 전통 소프트웨어 개발과 확연히 다른 것이죠. 여기서 Exceptional Software Methodology가 나옵니다.

먼저 우리가 만드는 소스 코드의 70%는 예외 처리 코드입니다. try - catch를 보면 catch쪽의 코드가 꽤 많죠. 즉, 일단 만들고 문제점을 파악하는 익셉션 처리 방식을 힌트로 오픈 소스 개발 방법론을 정의한 겁니다. 이것은 유지 보수만 있고 개발이 없기 때문에 당연히 프로젝트 단계에서 맨먼저하는 (우리가 늘 고민하는) ‘요구 사항’을 만들지 않습니다. (여기서 모두들 박수를!)

실제로 많은 오픈 소스 프로젝트에서 요구 사항이란게 존재하지 않죠. 사람들은 일단 가져와 그냥 쓰거나 원하면 직접 ㅏ 고치죠. 진짜 필요하면 원하는 기능을 담은 버그를 제출할 뿐입니다. 이게 들어가는지 좋을지 여부를 사용자와 개발자가 판단할 뿐 입니다. 궁극에는 모든 개발 프로젝트의 원흉인 ‘요구 사항’이 없어지는 순간입니다. 행복한 개발 프로세스의 시작인가요? 흠…

p.s. 세번째 키노트는 Larry Wall과 함께 Perl 커뮤니티를 이끌고 있는 Damian Conway 였는데 이렇게 유쾌하면서 지적인 기조 연설을 처음 입니다.

그의 발표는 뭐랄까 ‘유머와 지적 유희’가 겸비되어 있어서 뭐라고 설명하기가 어렵군요. 우선 앞서 발표한 Mark, Robert와 자신의 친구 Larry Wall을 가지고 노는 희화를 통해 사람들에게 유머를 줍니다. 물론 오픈 소스의 미신이라는 것을 섞어서 풍자해서 말이죠.

한바탕 웃고 나서 자신이 구현한 양자 역학과 일반 상대성 이론을 결합할 수 있는 Perl 모듈을 소개했습니다. 제목이 “Temporally Quaquaversal Virtual Nanomachine Programming in Multiple Topologically Connected Quantum-Relativistic Parallel Timespaces — Made Easy” 인데요. 대략 ‘다중 위상으로 연결된 양자-상대적 평행 시공간에서 일시적 양자우주 가상 나노 머신 프로그래밍- 아주 쉬워요!’ 입니다. 솔직히 진짜 쉽게 풀어냈습니다.

그의 이론은 양자역학의 결론은 반물질(Dark Energy)에서 힌트를 얻어 시간이 반대로 흐를 때 사용할 수 있는 positronic variables 라는 변수를 얻어 내는 module을 만듭니다. (이를 이용하면 정의 없이도 값을 얻어 낼 수 있답니다. 흡…)

그의 발표가 끝나자 사람들이 그의 Geek적이고 학자적인 창의적 아이디어에 우뢰와 같은 기립 박수를 보내더군요. 재미있는 광경이었습니다.

: