김성민- 생활형 프로그래머

1. 참가 목적

    • 올 여름에 참가했던 P-Camp의 감동을 다시한번 느끼고 싶어서..

    • 생활형 프로그래머의 삶을 위한 재충전의 시간을 갖고 싶어서..

    • 다른 프로그머들의 어떤 생각을 하고 있을까 하는 호기심에서..

    • 평소에 관심이 많았던 함수형 언어와 애자일 개발 방법론을 좀더 배우고 싶어서...

2. 참가한 프로그램

3. 후기

  • 11월 28일 금요일

아~ 회사 업무 때문에 결국, 첫날은 참가하지 못했다 ㅜㅜ

  • 11월 29일 토요일, 설레임...

아침 9시까지 남산에 있는 서울 유스 호스텔에 가야하는데..

서울에 살아도 초행길이라서, 혹시 늦지 않을까 하는 걱정 반..

소풍을 앞둔 어린 아이 처럼 설레임과 기대감 반...

다행히 유스 호스텔을 잘 찾아왔고..

어제 부터 시작된 행사에 참가한 사람들은 하루만에 많이 친해졌는지..서로 모여서 오늘 행사를 기다리는 모습을 여기 저기서 쉽게 볼 수 있었다.

첫 시간이 언어 튜토리얼과 일반 튜토리얼인데, 고민 끝에 일반 튜토리얼을 듣기로 했다.

  • 소프트웨어 테스팅의 보물 지도 (Software Testing Adventure)

튜토리얼 제목 만큼, 보물을 얻었다.

평소에 테스팅에 관심은 많았지만, 테스팅 전반에 대한 전체적인 관점을 갖추지는 못했는데,

권원일 님의 강의와 강의실과 복도 벽면 이곳 저곳에 붙은 소프트웨어 테스팅 보물 지도는

백문이 불여일견이라는 말 처럼, 테스팅을 한 눈에 보여주고 있었다.

또, 행사 중에 사용하라고 나눠준 종이컵을 받을 때는 별로 눈여겨 보지 않았는데,

종이컵에도 보물이 숨겨 있었다.

종이컵에 곳곳에 그려진 그림과 글들..

모두 테스팅에 대한 내용을 너무 알기 쉽게 표현하고 있었다.

종이컵 대신 머그 잔으로 만들어서 판매된다면, 꼭 사고 싶다.

이 튜토리얼에서 꼭 기억에 남는, 꼭 기억해야할 키워드는

    • Risk-based Testing

      • 중요한 것 부터 테스팅을 하자 (장애와 비지니스 효과라는 2개의 기준으로 우선 순위를 결정함)

    • Early Test Design

      • 요구 사항 분석 단계에서 부터 테스트를 진행하자.

        • 요구 사항 분석 단계 - 테스트는 요구 사항을 정리한 것을 리뷰하면서, 애매 모호한 사항들을 정리함

        • 설계 단계 - 설계 리부를 하면서, 테스트 케이스 작성

    • 탐색적 테스팅

첫 번째 튜토리얼을 마치고, 맛있는 점심을 먹었다. 유스 호스텔라 큰 기대는 안 했는데, 식당도 깨끗하고, 음식도 맛있었다.

대학교 학생 식당 분위기가 나서..잠시 대학생활로 시간 여행을 갔다온 느낌도 들었다.

  • 두 번째 튜토리얼...

두 번째 튜토리얼로 언어 튜토리얼을 들었다.

팜플렛을 보면서, 속으로..

행사 팜플렛을 보니까, 언어 튜토리얼 2 에서 Erlang을 한다고 한다 ㅋㅋ

회사에서도 얼랭(Erlang)을 공부 중인데..프로그래밍 얼랭을 번역 하신 분이 직접 진행하신다니, 정말 기대된다...

여기까지는 좋았는데, 막상 언어 튜토리얼이 시작 되면서, 얼랭이 튜토리얼에서 제외되어서, 결국, 스몰토크 (Squeak)을 선택했다.

Ruby, Ruby On Rails, ActionScript, Processing, E-Toy, Scratch 등이 있었는데, 왠지 스몰 토크가 끌렸다.

순수한 객체 지향형 언어

메시지 패싱, etc

스몰토크에 대해서는 알고 있었지만, 실제 사용해본 경험은 없었던지라, 강사님의 설명을 들으면서, 천천히 따라해 보니,

항상 텍스트 에디터를 사용해서 프로그래밍을 하던 것과는 색다른 느낌이었다.

모든 것이 객체이고, 객체끼리 메시지를 주고 받으면서 프로그램을 실행하고...

문법 중에 한 문장의 끝을 마침표(.) 로 표기하는 것은 왠지 얼랭과 닮아서, 프로그래밍 하는 것이 재미있었다.

멀티 미디어나 그래픽 관련 프로그래밍을 할 때 사용하면 좋을 것 같다는 생각이 들었다.

그리고, 튜토리얼이 끝나고, 강사분들이 준비하신 "Smalltalk with Style" 이라는 책도 받았다.

강사님이 말씀하시길..마이크로 패턴에 대한 내용이 담긴 책이라고 하는데, 목차 및 본문 몇 장을 읽어 보니까,

프로그래밍 구현 스타일에 대해서 잘 설명해 준 책 같다. 그렇지 않아도 요즘 켄트 벡의 Implementation Pattern 을 읽는 중인데,

같이 읽어 보면 재미있을 것 같다. (켄트 벡도 스몰 토크 고수 였다고 그러던데..)

언어 튜토리얼이 끝나고.. 두 번째 Project Hour 시간이 시작되었다.

Project Hour2 는 대강당에서는 Media Art, 중강당에서 청소년을 위한 웹 서비스 개발 프로젝트가 잔행되었다.

Media Art는 주로 Processing 과 같은 언어를 가지고, 영상이나 소리로 조합해서 게임이나 예술 작품 같은 것을 만드는 것이라,

Media Art 관련 언어 튜토리얼을 듣지 못한 나의 경우에는 프로젝트 진행이 어려울 것 같아, 청소년을 위한 웹 서비스 개발에 참가했다.

청소년을 위한 웹 서비스 개발을 말 그대로 청소년들을 사용할 수 있는 웹 페이지를 만드는 것이다.

사용자 인터뷰 -> 사용자 스토리 작성 -> 요구 사항 분석 및 서비스 기획 -> 프로토 타입 개발 -> 개발 -> ..

애자일스러운 프로세스를 따라가면서, 프로젝트를 진행했다.

페르소나와 사용자 인터뷰를 통해 청소년들이 좋아할 만한 서비스에 대한 아이디어 회의를 했는데,

벌써 30대 중반에 가까워진 난 요즘 청소년 문화가 왠지 외계 문화 만큼이나 낯설고, 세대 차이 마저 느껴졌다 ㅡㅡ;

우리 팀은 축구를 좋아하는 청소년을 위한 웹 서비스를 페이퍼 프로타입을 이용해서 개발했다.

  • LETS(Local Energy Trading System)

영어 약자도 어려운데, 약자를 풀어쓴 영문을 봐도, 잘 이해가 되지 않았다.

다행히, 진행자인 김창준 님의 설명을 듣고, 그제서야 이해를 했다.

한 마디로, 요약하면, 물물 교환, 품앗이, 뭐 이런 것과 비슷 한 것 이다.

자신이 가지고 있는 지식이나 특기, 기타 여러 가지 것을 다른 사람에게 전달해 주면, "땀" 이라는 가상의 화폐을 얻게 된다.

반대로, 자신이 다른 사람으로 부터 도움을 받거나, 어떤 것을 배우게 싶다면, 그에 해당하는 "땀"을 그 사람에게 주고, 원하는 것을 얻게 된다.

이런 교환의 목적은 가상의 화폐인 "땀"을 많이 얻어서, 부자(?)가 되는 것이 목적이 아니고, 참가자들이 "땀"을 주고 받으면서,

서로가 서로에게 도움과 배움을 줄 수 있고, 이런 활동을 통해, 각자가 자신의 가치를 새롭게 발견하는 것이다.

행사에 참여한 100명 정도에 가까운 사람들이 모두 참가해서, 약간 어수선 하기도 했지만, 매우 실험적이고 재미있었다.

난 "유학 경험담"과 "Erlang 사용 경험담"으로 몇 땀을 얻었다.

그리고, "Scrum 도입 경험"과 "애자일 회고"에 몇 땀을 썼다.

LETS가 시작될때, 각자 자신이 줄 수 있는 것과 받고 싶은 것을 포스트잇 2 장씩 따로 적어서, 한쪽 벽면에 붙여야 했는데,

막상 포스트잇에 내가 줄수 있는 것을 적으려고 하니, 참 적을 만한 게 없어서 좀 난감했다.

암튼, LETS가 시작되고, 한참이 지나서도 좀 적응하기 어려웠는데, 다행히 나부군님이 먼저 "애자일 회고"에 대해서

도움을 줄 수 있다면서 먼저 찾아 주셔서, 그 동안 궁금했던 것들과 회고를 할 때, 어려웠던 점들에 대해서 조언을 받을 수 있었다.

내가 궁금했던 것은 아래와 같은 상황에서, 어떻게 회고를 도입해야할지 궁금했다.

    • 팀원들이 각기 서로 다른 업무를 하고 있어서, 업무 상의 공통 영역을 찾기 어려움

    • 업무가 많아서 회의가 길어지는 것을 싫어함 - 회의로 인한 인터럽트 시간을 최소화 하고 싶어함

(혹시, 저와 같은 상황에 있는 분들은 댓글로 조언 부탁 드립니다.)

애자일 회고에 관한 나부군님의 조언을 몇 가지 적어보면...

회고 진행 순서 (기억 해야 할 것)

    1. 회고 들어가기

      • 참가자의 적극적 참여를 이끌어 내기 위해, 오늘 자신의 기분을 한 마디씩 말해 보기와 같은 체크인 과정을 거친다

    2. 자료 모으기

      • 잘한 것 잘 못한것 테이블, 별점 등의 방법 사용 (준비물: 포스트 잇, 화이트 보드)

    3. 통찰 이끌어 내기

    4. 무엇을 할지 결정 하기

      • S.M.A.R.T (Specific, Measure, Attainable, Relevant, Timely) 한 목표 설정 - 구체적이고, 측정가능하고, 달성가능하며, 적절하고, 시기적절한 목표를 세움

    5. 회고 마치기

      • 회고를 마무리하면서, 서로에게 감사의 마음을 전하는 감사하기을 하는 것도 효과적임

회고 시 주의할 점

  • 회고를 할 때, 반드시 회고의 목적이 있어야 한다.

  • 회고의 성과는 진행자의 자신감에 비례한다. 자신감을 가지고 회고를 진행하라.

    • (나부군님도 첫 회고 때는 이미지 트레이닝을 밤새 했다고 한다.)

  • 잘 못한 것 보다는 왜? 잘 했는지, 어떻제 잘 됬는지를 중심으로 회고하자.

    • 잘 못한 것은 모두 이유를 잘 알고 있지만, 잘 되는 것은 그냥 잘 되는 경우가 많으므로, 왜 잘 되는지를 회고 해서 다음에 일을 할 때, 활용 할 수 있도록 하자

  • 주기적으로 하자 - 일주일에 1시간씩 1번 정도

아침 9시 부터 시작한 일정이 밤 10시가 되어서 모두 종료되고,

402호 내 숙소로 돌아갔다.

오늘 행사는 저녁 10시에 모두 끝날 줄 알았는데,

진짜 행사는 지금 부터였다.

  • 공식적(?) 뒷풀이

운영진들의 푸짐한 야식을 안주 삼아서, 밤새는 줄 모르고, 이번 행사에 참가한 개발자들과 수다를 떨었다.

개발자들과의 수다 중에 가장 기억에 남는 2가지를 적어보면..

어떤 개발자가 한국에 온 독일 개발자와 함께 일을 한 적이 있었는데, 한국 개발자들은 야근도 자주하고, 늦게까지 잔업을 하는데,

독일 개발자들은 항상 정시 출근에 정시 퇴근을 하는 것을 보고,

한국 개발자가 "너희등을 어떻게 그런 식으로 일할 수 있느냐?" 묻자,

독일 개발자 왈 "우리 아버지가 10년 전에 너희들 처럼 일했다" 라고 답했다는 것이다.

"우리 아버지가 10년 전에 너희들 처럼 일했다" 라는 대답이 순간 좌중을 웃음 바다로 만들었지만, 금새 모두들 깊은 생각에 빠지게 했다.

과연 10년 후에 우리 아이들은 독일 개발자 처럼 일할 수 있을까?

다른 하나는..생각만 해도 웃긴데..

어떤 개발자가 실연을 당한 날, 서버 관리실에서 서버의 전원 버튼을 아무 생각 없어 그냥 꾸~욱 눌렀다고 한다.

결국, 그날 장애 처리하느라 실연의 아픔은 느낄 수 조차 없었다고 한다 ㅋㅋ

다음날 새벽 5시까지 수다를 떨었는데, 즐거웠다. 다들 여기서 처음 봤는데, 오래 전부터 알고 지나던 사람들 처럼,

스스럼 없이 즐거게 얘기하고, 웃고... 그 동안 쌓였던 스트레스를 확~ 날려 버렸다.

  • 11월 30일 일요일, 아쉬움...새로운 시작...내년을 기약하며..