패턴 만들기 (PatternWriting)

PLoP이 시작 하기 전에,  Pre Conference 행사로 BootCamp가 매년 열립니다.  BootCamp는 패턴을 올바로 이해하고, 올바른 패턴을 만드는 방법을  전수하기 위한 목적이 있습니다.  위 그림 처럼 패턴을 만들어 보고, 서로간의 의견을 주고 받으면서 점진적으로 패턴을 완성해 나갔습니다.

주제는 자전거 경주에서 승자가 되는 패턴인데. 신선하고 재미있었습니다.   이러한 패턴을 잘 만들기 위한 가이드라인을  알고 있었던 것이지만, 직접 누군가와 같이 애기하면서 패턴을 만들어 나간다는게 흥미로웠습니다.   짧은 영어로 인해 후배녀석한테 물어보면서 눈치껏 듣느라🙂 고생했지만, 좋은 경험이었습니다.  올바른 패턴을 만들기 위한 Pattern Template을 간략히 요약해 나누어 주셨는데, 나중에 집에가서 스캔해서 올리도록 하겠습니다.

오늘 BootCamp행사 도중 깨달은 몇가지를 나누고자 합니다. PLoP의 정신을 이해하는 행사였다고 봅니다.

Pattern 에 대한 새로운 시선

남이 만든 패턴을 배우는 입장이 아닌, 직접 패턴을 만든다는 것은 흥미로운 경험이었습니다.  패턴을 만들때 특별히 중요시 해야 되는 것을 Context라고 강조해주셨습니다.  많은 분들이 Solution에만 초점을 맞추는 결과 위주의 학습 을 하고 있습니다. 패턴의 결과로 나온 A라는 객체/클래스를 보고 이게 Proxy인가? 이게 Decorator인지 고민하는 것은 보다는.  Context에 좀더 집중해야 된다는 것입니다. 예를 들어 Target User, 제약 사항들, 선행 조건 들과 같은 부분을 신경써서 기술하게 되면, 결국 요구사항들을 세밀하게  기술하게 됩니다.  패턴을 학습하는 사람에게는 좀더 언제 패턴을 사용해야 될지 명확한 가이드라인을 제공하게 되면, 패턴 저자에게는 Problem과 Solution을 좀더 쉽게 쓸수 있다는 것입니다.    여러분이 지금 패턴을 공부하신다면 Context와 Problem을 주의 깊게 보도록 권해드립니다.

PLoP에서 가장 중요한 것은 다른 사람의 말을 경청하는 것이다.

대부부의 컨퍼런스는 논문 저자가 말을 하고, 자기의 주장을 내세웁니다. 하지만 PLoP은 정 반대입니다. 저자는 심지어 어느 순간까지는 발언권도 없이 “벽위의 파리”가 되어 단순히 듣기만 해야 합니다. 다른 사람이 이 나의 (저자) 의도대로 패턴을 올바르게 이해하고 있는지,  저자가 만든 패턴에서 부족한 것이 무엇인지 듣게 됨으로서, 컨퍼런스가 끝나면 오히려 더 완성된 패턴이 나오게 됩니다. 다른 컨퍼런스와 같이 한명이 앞에서서 자신의 의견을 피력하는 Conference와는 전혀 다른 양상이죠.

어떤 분이 “자전거 경주에서 이기는 패턴”에 대한 것중, Solution 부분이 이상하다며 완성도에 대한 미심쩍은 듯한 애기를 했는데, 행사를 진행한 Linda 씨가 이런 말을 했습니다. “우리는 완벽한 패턴을 보고 있는 것이 아니라, 완벽한 패턴을 만들기 위한 과정에 있다.” 이 말에서 이번 행사에서 중요시 여기는 관점이 즉 서로 대화를 나누면서 점진적으로 완성도 있는 패턴을 만들어 나가는 그런 과정을 가르켜 주는게   바로 PLoP의 정신이 아닐가 생각이 듭니다.

PLoP 행사의 백미 – Games

PLoP에서는 행사 중간 중간에 게임을 합니다. 그런데 이 게임에는 아주 미묘한 장치들이 숨겨져 있습니다. 보통 우리가 하는 게임은 상대방을 이기기 위한 게임을 진행합니다. 그런데 PLoP에서 진행하는 게임들은 하나같이 이기기 위한 게임이 아닌, 협동력을 강화시키기 게임들이 구성되어 있습니다. 예를 들면 중간에 누군가에 도움을 받을수 밖에 없는 상황들을 미묘하게 숨겨 놓았습니다.

사람의 기억력의 한계에 도전하는 게임들 예를 들어 많은 사람들이 원을 이루어 자신의 이름과 행위를 말합니다. “Rinda는 피리를 연주해” 하면서 피리를 연주하는 시늉을 합니다. 그다음 저는 Rinda가 했던 행동을 똑같이 따라하고, 저의 행위를 말합니다.  “영수는 애기를 돌봐” 하면서 흔들흔들 시늉을 합니다.  그럼 저의 다음 사람은 Rinda와 저(영수)의 Action을다 취한다음 자신만의 Action을 취합니다. 계속해서 원을 돌면서 하는 거죠.  뭐 3명이면 문제가 없겠지만, 7~8명이라면 사람의 기억력의 한계로 인해 가물 가물 합니다.

제 이름이 뭐였지, 무슨 행동을 취하고 있었지  당황하고 있을때, 주위에서 수군거리는 소리와 제스츄어를 취해줍니다.

plop의 게임들

결국 패자가 없는 게임 즉 서로 도와 주고 잘했다고 칭찬하는 게임 몇개를 통해  아  이 사람들은 날  도와주는 사람이구나. 라고 생각하게 됩니다. 저만 그럴수도 있습니다. 단순해서 :)  이렇게 하고 나서 저자 워크샾을 하면 어떨가요?   🙂 결과는 비난이 아닌 진심어린 충고와 염려로 들릴 것입니다.

이제 겨우 BootCamp를 마쳤는데. PLoP을 너무 칭찬하고 있지 않나 모르겠네요 :  서로 경쟁하면서 발전하는 것도 중요하겠지만, 반대로 서로 도와가면서 부족함을 채우는 것도 값지다는 것을 알게 되었습니다.

ps) 그리고 이번 BootCamp에 참여한 사람들 끼리 한 장 찍었습니다.🙂

저의 아랫배를 볼때 역시 전 애기 아빠라는 것이 느껴지는 그림입니다. ㅎㅎㅎ 저의 뒤에 약간 머리가 없으신 분이 :)  저희 논문 인도자이신 Robert Hanmer (Bob)입니다.  Fault Tolerant 패턴책을 가지고 가서 싸인도 한장 받았죠. 낼은 둘이서만 한번 찍어보자고 부탁 드려볼 생각입니다.

Join the conversation! 9 Comments

  1. [협동과 상호 의견 수렴] 지금 제게 부족한것 같내요

    응답
    • 겨울비 님 외에도 누구나 이게 부족하다고 느낄겁니다🙂
      너무 자책하시지 마시길. 열린 마음을 가지는게 중요하죠🙂

      이번 PLoP을 통해서 경쟁 보다는 서로 도와주고 협력해서 더 좋은것을 만들수 있다는 것을 알게되었습니다.:)
      팀 플레이. 이게 참 중요하죠🙂

      응답
  2. 더 나은 결과를 위해 협력하는 모습, 참 보기 좋네요.

    소프트웨어공학에 있어서도
    이제 우리도 남들에게서 배우기만 하는 것이 아니라 우리의 것을 만들고 발전시켜 나갈 때라고 생각합니다.
    영수님의 패턴 활동 더욱 기대됩니다.

    멋집니다.

    응답
    • 아, 그리고 글을 읽는데 스쳐지나가는 생각이 있네요.

      ‘패턴을 만든다’
      패턴이란 Context에서는 ‘발견한다’가 …

      응답
      • 안녕하세요🙂 현남님
        저도 생각을 많이 하게한 글이네요.
        물론 패턴을 어떤 상황에서 mining 과정을 거쳐 발견할수도 있겠지만, 만들수도 있다고 생각이 듭니다.
        아마 가장 대표적인 경우가 Ralph Johhson의 Evolving Framework 가 아닌가 쉽습니다. 이 분은 이 패턴을 Context에서 발견했다고 하기 보다는 직접 많은 경험과 시행착오에서 만들었습니다.

        저 같은 경우는 몇년전에 이 문제로 고민해서 새로운 아이디어로 만든 패턴이라서요🙂 특허도 출원했구요..
        여튼 패턴은 발견도 있을수 있고, 변형과 창조로 만들어 질수도 있다고 생각합니다.

        발견이라고만 쓰기에는 너무 많은 노력이 들어가서요🙂 어떤 면에서는 발견일수도 있지만, 어떤 면에서는 창조의 고통도 따르기 때문에..🙂

        또 다른 시선으로 봐 주셔서, 생각을 이것 저것 하게 되었습니다. 조언 감사드립니다.

    • 이제 한발을 뛴것 같습니다. 이제 또 한발을 걸을 준비를 해야겠죠🙂
      노력하겠습니다. 감사합니다.

      응답
  3. […] 읽는 것이 아닌 패턴을 만들어 본 경험이 있는 저에게는요. 읽으면서 PLoP BootCamp 때가 많이 […]

    응답
  4. […] PLoP Bootcamp 때는 Linda 아주머니와 Bob Hanmer 아저씨는 칠판에서 서로의 얘기들을 조율하면서, Pattern Writing을 진행했습니다.  중간 중간 Interaction을 하며, 하나의 의견이 제시될때, 서로 공유하며, 더 다듬는 형태였습니다. 이번 Joe 아저씨는 카드를 나눠줘서 서로의 생각을 정리하는 형태로 진행을 했습니다. 그리고 그 생각을 취합해서 하나의 패턴으로 만드는 것이지요. Ward의 패턴 라이팅은 혼자서 패턴 라이팅을 하기 적합한 방식이며, Joe의 패턴라이팅은 여럿이서 하나의 패턴을 만들기 적합한 방식인거 같습니다. Pattern Writing 실습 […]

    응답
  5. […] 블로그에서 언급한 Joe Yoder’s Pattern Writing을 보시면 됩니다.  전 예전에 PLoP BootCamp 때 느낀 경험과 Joe Yoder’s의 방식을 나름 절충 시킬려고 생각하고 […]

    응답

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

카테고리

My Activity, My Thinking, News, Pattern, PLOP, Software Architecture, Software Engineering

태그

, , , , , ,