Framework 설계시 가장 중요시 여겨야 하는 것이 사용성이다.
사용자들이 쉽게 사용하고, 생산성에 만족하느냐가 Framework의 생존 여부와 연결되어 있기 때문이다. 쉽게 사용할 수 있는 사용 편의성을 일전에 얘기한 적이 있지만,이 못지 않게 중요한 것이 Framework 사용자가 실수를 하기 어렵게 만드는 것이다. 즉 실수하지 않게 성공의 웅덩이를 만들어서 성공할 수 밖에 없게 만들라는 얘기다.

PLoP10으로 인해 Framework 관련 논문을 작성하면서, .NET과 Java Framework를 설계한 대가들의 공통적인 충고를 들을 수 있었다.
영어 발표 때문에, 새벽 3시까지 Script를 준비하느라, 이미 눈은 팬더가 되어 버렸습니다. T_T!! 자 그럼 AsianPLoP 2일차 행사를 여러분과 공유합니다.
Joshua Kerievsky 의 A Timeless Way of Communicating

1번째 세션은 Refactoring to Pattern의 저자인 Joshua Kerievsky 의 A Timeless Way of Communicating 이었습니다.AsianPLoP의 세션이 아닌 GRACE의 전체 세션이었으며, 너무나 많은 청중과 강의장이 어두워서 사진은 찍지 못했습니다.
이 세션의 내용은 Christopher Alexander의 The Timeless Way of Building과 이름이 비슷한걸 눈치 채신 분도 있을 겁니다.
패턴과 패턴 언어들 형식(Form)과 내용(Contents)을 분석하고, Pattern Languages가 소프트웨어의 지식 체계로써 사용되기 위해, 패턴 사용자들에게는 어떻게 제공되어야 하는지에 대한 깊은 얘기를 했습니다.
또한 그가 운영하는 컨설팅 회사인 Industrial Logic에 가시면 좋은 자료들이 넘쳐납니다. 이중 제가 가장 인상깊게 본 것이 Pattern Poker 입니다. 아주 짧은 시간안에 효율적으로 패턴을 익힐 수 있을 뿐만 아니라, 경험을 공유하는 좋은 방법이더라구요. 다음 스터디때 EVA 팀들과 함께 한판 치기로 했습니다.
우리는 종종 소프트웨어 공학을 고층빌딩,댐 또는 도로를 만드는 것에 비유하는 것을 들을 수 있습니다. 몇몇 중요한 측면에서는 사실입니다.
도시 공학에서 가장 어려운 부분은 한번에 완성되는 빌딩을 설계하는 것이 아니라, 건축 과정을 이해하는 것입니다. 건축 과정은 황량한 땅에서 완공된 빌딩까지 진행됩니다. 그 사이에, 모든 작업자는 각자의 업무를 책임감을 가지고 수행할 수 있어야 하며, 모든 공사기간 동안 완공되지 않는 구조체는 지탱해야 합니다. 우리는 거대한 통합 시스템(완공된 빌딩)을 배포하는 시점에서 교훈을 얻을 수 있습니다. (여기서 “통합”이란 단어는 거의 모든 엔터프라이즈 및 웹 어플리케이션을 포함합니다.!)
전통적인 “빅 뱅(big bang)” 1방식의 배포는 대들보(집과 지붕을 받치는 큰 보)와 들보(하중을 지탱하는 구조물 ) 더미를 쌓아 올려, 높이 올린 다음(공중으로 집어 던진 다음), 건물 형태대로 잘 이어 붙기를 기대하는 것과 같습니다.

참으로 씁쓸한 행사에 다녀왔습니다. 제가 5년동안 몸담은 조직이 해체되고, 다 같이 헤어지는 자리였습니다. 오래된 분은 10년동안 몸담은 분도 있으니 전 새발의 피죠..
뭐라고 말을 할수 없을 정도로 너무나 서로에게 상처가 크네요. 정말 열심히 했다며, 울먹이며 말하는 분들도 있었고, 말을 아낀체 술만 계속해서 털어 넣는 분도 있었습니다. 물론 애써 밝은 분위기를 만들어 보려는 분도 있었구요.. (겉은 항상 웃는 가면을 쓴것 처럼요..)
또한 왜 서로에게 이렇게 잘해주지 못했을까? 왜 하드웨어는 소프트웨어를 이해하지 못했고, 소프트웨어는 하드웨어를 이해하지 못했을까? 왜 이 친구하고는 이렇게 싸우며 살았을까? 왜 있을때 서로 잘해주지 못했을까? 라는 생각을 서로하면서 만감이 교차하는 순간이었습니다.
Pattern을 어떻게 하면 잘 만들수 있을까요? Joe 의 패턴 라이팅을 공개합니다.
이번 AsianPLoP에서는 작년에 참여한 PLoP BootCamp와는 조금 다른 형태로 Joe(Joseph William Yoder) 아저씨의 패턴 라이팅(Pattern Writing)을 경험해 보는 좋은 시간을 가졌습니다.
패턴 라이팅을 말하기 전에 Joe 아저씨에 대해서 간략히 소개를 해 드리면, 그는 Refactory Inc. 를 운영하고 있으며, 런타임시에 객체의 생명주기를 관리하는 유명한 패턴인 AOM (Adaptive Object Model) 을 만든 사람입니다. GoF 중 한 명인 Ralph Johnson의 제자 이기도 합니다.
그의 발표자료를 공유합니다. 브라질에서 열리는 PLoP인 SugarLoad PLoP에서 2년전에 이미 발표한 자료네요. 이 자료를 읽기 전에 저의 블로그에 공유한 Linda 아주머니의 Pattern 만드는 법, 또 PLoP에서 소개한 Pattern Template을 먼저 읽어보시길 바랍니다.
Writing Patterns “The Straight Scoop” 다운 받는곳 (출처 SugraLoad PLoP)
패턴 템플릿 설명
Linda Rising 아주머니가 보낸준 멜로 인해 AsianPLoP이라는 것이 열린다는 정보를 받았고, 충동적으로 지원을 했습니다. 논문이 accept 되었지만, 정말 운인것 같습니다.
이번 PLoP은 Piggyback 패턴(큰 행사뒤에, 연이어 작은 행사를 여는 패턴 – 참가자들이 쉽게 모이기 하기위한 패턴)의 일환으로, 일본의 가장 큰 소프트웨어 공학 학회인 GRACE와 함께 열렸습니다. 우리나라로 하면 정보처리학회 정도 될듯 합니다.
장소는 소프트웨어 진흥원과 유사한 NII(Nataional Institute of Informatics) 라는 곳(진보쵸)에서 열렸습니다. 참가비및 행사비는 일체 무료였습니다.
제가 참가한 프로그램을 중심으로 AsianPLoP을 소개하고자 합니다. 이번 행사는 영어권, 그리고 일본권으로 나누어 진행이 되었습니다. 일본은 일본인 끼리 진행하는 행사가 되어 버렸고, 반대로 영어권은 말 그대로 영어권 사람들이 모였습니다. 미국, 호주, 인도, 그리고 일본 조금, 한국 조금 이렇게 두가지 그룹으로 나뉘어 저자 워크샾이 진행되었습니다.
역시 언어로 인해 소통의 제약을 받는 것은 일본도 마찬가지 인가 봅니다. 아시아 권의 씁쓸함을 같이 느낄 수 있는 행사였죠.
비오는 날엔 여러분은 무엇이 생각나시나요?
커피, 소주, 해물 파전? 무엇을 선택하든지 아마 이런 맘일 겁니다. 우울한 날엔 분위기에 빠져 보기도 싶고, 또는 친한 친구들과 함께 얘기를 나누며 적적함을 달래고 싶을 수도 있습니다. 저는 동완이 아빠가 되고 나서는 거의 꿈도 못꾸고 있습니다. 🙂
자!, 만약 여러분의 프로젝트가 비오는 날 (Rainy Day)라면 어떻게 할까요? 이 Rainy Day의 의미는 우리가 구축해야 될 시스템이 무엇인지 고객도 모르고, 나도 모른다는 얘기입니다.
구체적인 목표나 비교 대상이 없는 프로젝트를 말하는 거죠. 이런 비오는 날에 여러분의 대처 방법이 어떨지 궁금합니다.
사실 우리는 이해당사자들이나 고객의 요구사항을 받아들이고, 멋진 프로그램을 만들길 원합니다. 하지만 고객은 정작 자기가 뭘 원하는지 구체적인 것을 제시할 수 없다면, 참 막막할겁니다. 전 이럴때 걸어다니는 해골 (Walking Skeleton)을 추천해 드립니다.
이 아이디어는 Agile 에서 유명한 Allestair Cockburn이 아주 오랜전에 낸 아이디어 입니다.
오래 기다리셨습니다!
드디어 Framework Design Guidelines 2nd Edition의 1차 번역이 완료되었음을 알려드립니다.
참으로 오랜 기간동안 번역되었습니다. 사실 더 일찍 번역될수 있었지만, 저를 제외한 몇몇 분들이 취업, 개인사등의 문제로 예상외로 아주 오랜 시간이 걸렸습니다. 거기다 저의 PLoP 욕심도 한 몫 했습니다.
정말 이 책을 기다리시는 많은 분에게 죄송하고, 특히 지앤선 가족 분에게 많이 미안하네요.
죄송한 말씀이지만 1차 번역이 완료되었다고 해도, 전 아직 저를 못믿습니다…
POSA 시리즈 만큼 설계의 명서이고 몇 안되는 Framework 서적중 하나이기 때문에, 잘못 오역 하거나 너무 어렵게 번역되면 (사실 충분히 어려운 내용이죠 .) 미치는 파급 효과가 엄청나기 때문이지요.
이 책의 저자인 Linda Rising은 조그만 Recorder Consort 팀을 이끕니다. 5명이라고 하지만 다 제각기의 다양한 장단점과 개성이 있기 마련입니다.

과연 Fearless의 저자인 Linda는 어떻게 이 팀을 이끌까요? 바로 개별적으로 만나는 것(Personal Touch)입니다.
- Karen은 어렸을때부터, 레코더를 불었기 때문에, 가장 뛰어난 실력자입니다. 그래서, 가장 어려운 부분과 솔루 부분을 맡깁니다.
- Rick은 레코더도 잘 부르지만, 기타와 노래도 잘 부릅니다. 하지만 Rick 은 어러운 부분을 부르는 것을 싫어하며, 튀기 좋아합니다.
그래서 어려운 부분은 Karen에게 다양한 악기 파트는 Rick에게 맡깁니다.
- Anne 와 Karl 은 온화한 성격이며, 적당한 도전을 기쁘게 받아들입니다. 그리고 Anne는 피아노도 잘 칩니다.
Anne와 Karl의 온화한 성품때문에, 합주나 Karen을 뒷받침하는 연주를 부탁합니다.
결국 Linda는 Personal Touch와 Tailor Made 패턴을 이용해, 구성원의 다양한 성격과 장단점을 파악하고, 적합하게 팀을 조율했습니다.
Fearless Change 그 전장 들을 통해 이미 사람도 나의 편으로 만들어 놓고, 자주 소통할 수 있는 상황을 만들었습니다.
이제 다 준비 되었으니 촬영을 시작해야죠! (Take Action)!

A라는 변화나 행위를 하고 싶을때, 부정적인 생각과 피드백을 받을수 도 있지만, 해보지 않고는 모르는 일입니다. 완벽을 너무 추구한 나머지 아무것도 하지 않는 것보다는, 어떠한 행동을 취하면서 실제 느껴 보는 것이 중요합니다.
춤을 배우고 싶을때, 먼저 춤을 쳐보고, Mentor에게 도움을 받는 것이 좋지, 아무것도 안하고 멘토링 받을 수 있을까요?
행동을 취하기 위해서는 다음과 같은 패턴들이 필요합니다.
- Study Group : 서로의 의견을 받아 들이고 발전시켜라!
- Mentor : Study Group에서 먼저 시작한 사람, 경험있는 사람이 Mentor가 되어서 이끈다.
- Just Do It : 무언가 하면서 해라!!