경험을 정리하고 패턴화하는데 많은 도움이 되는 것인 것 같아 긁어모은 자료들 한번 정리해보았습니다.

----------------------------------


패턴라이팅 (Pattern Writing)과 저자 워크샵



[패턴이란?]

반복적으로 발생하는 문제에 대한 성공적 해결책을 문서화한 것을 패턴이라고 하고, 이 패턴들로 구성되는 언어를 패턴 언어라고 합니다.

간단하게 설명드리면 손자병법의 36계는 적군의 규모가 아군의 3배이상일때 쓰면 좋다라는 식으로 이해하시면 쉬울 것 같습니다. 

패턴 언어에는 컴퓨터 프로그램 설계뿐만 아니라 조직 구성, 새로운 아이디어 도입, 그룹 스터디 방식, 교육 방법론등에 대한 것까지 존재하고 있습니다.
이러한 패턴 언어의 장점은 여러가지가 있습니다. 무엇보다도 지식 전파와 공유가 쉬워지며, 효과적인 커뮤니케이션을 할 수 있습니다.

그리고 집단 아이큐를 더 높힐 수 있으며 사회적 변화를 일으키는 원동력이 될 수도 있습니다.


패턴의 개념은 크리스토퍼 알랙산더(건축가)가 만들었고, 우리가 익히 알고 있는 Kent Beck은 Ruby Conf 강연에서 크리스토퍼 알랙산더의

"Timeless way of Building"을 몰래몰래 감명깊게 읽었던 것에 대해서 이야기하고 디자인패턴의 큰 힌트가 되었던 것을 이야기 합니다.


개발자라면 GoF의 디자인 패턴을 안 들어보신 분이 없을 것입니다. 하지만 스스로 패턴을 작성해 보신 분은 드물 것이리라 생각합니다.

패턴을 글로 옮기는 것을 패턴 쓰기(Pattern Writing)라고 합니다. 그리고 함께 서로의 패턴을 개선시켜주는 것을 저자 워크샵(Writer's Workshop)이라고 합니다.

PLOP이라는 컨퍼런스는 매년 세계 도처에서 이 저자 워크샵을 진행해 오고 있으며, 그 결과물이 Pattern Languages of Program Design이라는 책으로 벌써 5권

까지 출간되기도 했습니다. 이 PLOP의 워크샵은 전통이 깊고 효과적이기로 유명합니다.




[패턴을 모으고 공유하기]
Planet: Pattern Language Network 은 일종의 civic movement 로 패턴을 모으고 공유하는 운동을 하고 있습니다.

Planet 에 대한 소개는 http://blip.tv/file/1813796  의 영상을 참조해주세요.

플래닛에서는 케이스 스터디를 뽑고 그 중에서 패턴 후보를 선별하여 패턴을 만들고 시나리오에 적용하고

마지막으로 패턴을 매핑하는 단계로 패턴을 만들고 공유합니다.


*케이스 스터디 모음
http://patternlanguagenetwork.myxwiki.org/xwiki/bin/view/Cases/


*케이스 스터디 쓰는 법
http://patternlanguagenetwork.myxwiki.org/xwiki/bin/view/Help/CaseStudyHelp




[패턴 사례 : 제가 임의로 만들어본 패턴]

---------------------------------------------------------------------------------------------
"Buffering Defect Registration"


Situation
-What was the setting in which this case study occurred?
SW Product 을 처음 테스트할 때, 테스트 중에 중요한 결함과 사소한 결함들이 여러가지 발견했으나, 개발팀의 리소스(시간,인력)가 여유있지 않을때,


Task
-What was the problem to be solved, or the intended effect?
한꺼번에 많은 결함을 등록할 경우, 원인은 같지만 중복되어 등록된 결함이 많을 수 있는데 중요한 결함해결보다는 결함처리 행정절차에

시간을 사용함으로써 비효율적인 중복이 발생할 수 있다. 또한, 초기에 한꺼번에 많은 결함 리포트는 개발팀의 사기나 자신감을 저하시키고,

결국 모든 결함을 해결하지 못하고 다음 릴리즈로 일부 결함을 연기하게 된다.
 
Actions
-What was done to fulfil the task?
1차 테스트에는 사소한 결함들은 개발팀에 숨겨두고 중요하고 핵심적인 결함만 리포트하여 그들이 충분한 시간을 가지고 결함을 해결하고 제품을 안정화 시킬 수 있는 버퍼를 제공한다.


Results
-What happened? Was is a success? What contributed to the outcomes?

개발팀의 협업 만족도 증가, 1차 테스트 결함 100% 해결, 2차 테스트 패스율 향상.


Lessons Learned
-What did you learn from the experience?
개발자의 입장에서 그들을 배려한 테스팅을 하되 해피 패스(Happy Pass)가 되지 않게 주의할 필요가 있다.
----------------------------------------------------------------------------------------



[저자 워크샵]
저자 워크숍이라는 것은, 여러 사람의 의견을 통해 저작물을 개선하려는 경우에 모두 적용할 수 있다. 어떤 종류의 저작물이건 가능하다.

저자 워크숍을 통해 글 첫머리에 예를 들었던 제품 의견 수렴회를 대체할 수도 있고, 시인들이 모여 자신의 시를 갈고 닦을 수도 있으며,

논문 준비하는 학생들이 자기 논문을 개선할 수도 있고, 화가들이 그림을 개선할 수도 있으며, 당연히 개발자들이 자기들의 소스 코드를

개선할 수도 있다. 뭐든지 개선이 가능하면 된다.

저자 워크숍은 19세기 말, 아이오와 대학에서 시작되었다. 이 워크숍은 매우 성공적이어서, 예를 들면 이곳 출신 퓰리처상 수상자만 16명이

될 정도다. 아이오와 대학의 저자 워크숍은 빠른 속도로 저자 커뮤니티 사이에 번져 나갔고, 현재는 초중급 작가들이 자신의 실력을 빠르게

높일 수 있는 가장 효과적인 방법 중 하나로 알려져 있다.

하나의 전문 분야에서 무엇인가가 대성공을 이루면 당연히 다른 분야에서 그것을 도용한다. 리처드 가브리엘(시인이면서 프로그래머다)이

문학 쪽에서 이 저자 워크숍을 훔쳐왔다. 그래서 소프트웨어 패턴으로 저자 워크숍을 했고, 나아가서는 소프트웨어 쪽만 아니라 마케팅

캠페인, 요리, 비즈니스 기획, 음악, 인테리어, 헤어 스타일 등 다양한 분야에 걸쳐 적용되었다.

자세한 사항은 아래 글들을 참조해주세요.
* http://www.ibm.com/developerworks/kr/library/dwclm/20081230/
* http://www.yes24.com/chyes/ChyesView.aspx?title=003002&cont=185




[적용사례]
P-CAMP 행사 : http://p-camp.tistory.com/entry/PatternWriting
한미유치원 적용 사례 : http://sites.google.com/site/hanmikindergarten/jeongbowa-gang-yeon-1/gang-yeon-1
Creative Commons Korea 커뮤니티 내부 적용 : http://vc.cckorea.org/boards/14/posts/1611
Creative Commons Korea 커뉴니티 내부 적용 : http://sites.google.com/site/cckwiki/contentworking/20090105
Software Test Engineer Network 커뮤니티 공유 사례 : http://www.sten.or.kr/bbs/board.php?bo_table=infodata&wr_id=1070
                                      http://www.sten.or.kr/bbs/board.php?bo_table=infodata&wr_id=1077
Xper 커뮤니티 공유 사례 : http://groups.google.co.kr/group/xper/browse_thread/thread/a7f079dc1d5b48ca/404336907f4d1e9c?lnk=gst&q=pattern#404336907f4d1e9c
사회적 패턴 공유 운동 Planet - Pattern Language Network : http://patternlanguagenetwork.myxwiki.org/xwiki/bin/view/Cases/

Posted by gedwarp


Trackback URL : http://blog.sten.or.kr/agile/trackback/64

Trackbacks List

  1. josephyeo의 생각

    Tracked from josephy74's me2DAY 2009/08/28 22:52 Delete

    패턴화하기, 저자워크샵 도입하기.. ㅋㅋ 재밋겠다. 해보자

Comments List

  1. pandora beads 2010/07/02 17:57 # M/D Reply

    패턴화하기, 저자워크샵 도입하기.. ㅋㅋ 재밋겠다. 해보자

  2. pandora jewellery 2010/07/27 14:20 # M/D Reply

    패턴 언어에는 컴퓨터 프로그램 설계뿐만 아니라 조직 구성, 새로운 아이디어 도입, 그룹 스터디 방식, 교육 방법론등에 대한 것까지 존재하고 있습니다.
    이러한 패턴 언어의 장점은 여러가지가 있습니다. 무엇보다도 지식 전파와 공유가 쉬워지며, 효과적인 커뮤니케이션을 할 수 있습니다.

Leave a comment

블로그 이미지

에릭반 뷔넨달에 의하면 한국의 SW테스팅이 선진국에 비해 5년가량 뒤쳐져 있다고 합니다. 이러한 갭을 줄이고 Agile Software Testing 분야의 Practitioner 가 되기 위해 노력중입니다.

- gedwarp

Calendar

«   2010/07   »
        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

Bookmarks

Site Stats

Total hits:
41223
Today:
20
Yesterday:
30