노무현 대통령 배너

Java 교육과 애자일의 만남

Work & Study/TechTalk 2009/06/24 14:24 posted by k16wire
지난번에 이어 다시 강의를 진행했습니다. 정확히 말하면 'J2EE 개발을 위한 교육'이었는데 간단하게 교육내용을 정리해 봤습니다.
  • 교육의 목적: J2EE 시스템을 잘 개발 할 수 있도록 여러 기법들을 학습하기
  • 대상자: 저희 팀원 23명(이중 반은 Java를 몇년전에 해봤음, 심지어 10년된 분도..)
  • 교육내용:
    • 주어진 문제 영역을 이해한다.
    • 산출물(ex 화면정의, ERD, 클래스 다이어그램 등)을 이해한다.
    • Anyframe 기반으로 시스템을 개발한다.
    • 새로운 기법에 대한 강의를 듣는다.
    • 배운것들을 바로 개발에 적용해 본다.
  • 주요 학습 내용: Spring, SpringMVC, TDD, Refactoring, Scrum, Pair programming, Design patterns, Code review, Retrospective, 등
  • 특징: 이론 학습 + 툴 실습 + 개발 이 혼합되어 진행
이외에도 몇가지 학습의욕을 고취하기 위한 장치들이 있었는데 교육을 계속 진행해야 하기 때문에 여기에 적지 못하는게 아쉽네요. (혹시 수강할 팀원들이 알면 재미가 떨어질까 우려되서..^^)

일주일, 40시간을 진행했는데 기대했던 것 이상으로 많은 효과를 얻었습니다. 크게 세가지로 정리해 봤습니다.

첫째, 교육 자체에 대한 만족도가 매우 높았다.
프로젝트에 힘들게 일하다가 교육에 들어오게 되면 일단 교육 받는것 만으로도 즐거워 합니다.^^ 이런 것을 감안해도 다들 교육과정에 대해 "정말 좋은 교육이다."는 소감을 많이 주었습니다. 그것도 한두명이 아니라 거의 전부가 그랬습니다.

둘째, 학습 성취도가 매우 높았다.
사실 J2EE가 그렇게 쉽지는 않습니다. 그럼에도 불구하고 3일(강의등의 활동을 제외 했을때 실질 개발시간)이라는 짧은 시간에 꽤 많은 화면을 개발해 내는것을 보고 정말 놀랐습니다. 여기에는 페어의 역할이 매우 컸다고 생각합니다.

셋째, 팀워크가 좋아졌다.
저희 팀은 팀원들이 너무 많고 서로 다른곳에서 일하다 보니 팀원간에 끈끈함이 부족합니다. 5일간 정말 많이들 친해지더군요. 개중에는 그렇지 못한 친구들도 몇명 보이는걸 보니 개인성향은 어쩔 수 없는 듯 합니다.

그럼 어떻게 이런 효과가 난 걸까요? 전 이전에도 멀티캠퍼스에서 여러 교육과정을 만들고 강의를 한 경험이 있습니다. 그걸 비춰봐도 이건 잘 이해가 안가는 현상입니다. 그래서 나름 그 원인을 분석해 봤습니다.
  • 교육 자체가 즐겁다. 감정이 풍부한 사람이 기억력도 좋다고 합니다. 기억력이 좋으면 당연히 공부도 잘하겠죠. 이번 과정은 재밌게 만들려고 많이 노력했습니다. 웃고 떠들면서 공부하다 보면 지루한지 모르고 교육을 받게 되고 자연스레 집중을 하는거 같습니다.
  • 자기 주도형으로 학습한다. 과거 방식이 개발 분량을 강사가 할당하는 형식이었다면 이번에는 스크럼을 가르치고 스스로 교육기간에 개발할 분량을 스스로 산정합니다. 그리고 개개인의 책임을 강조하니 자습이나 과제를 따로 요구하지 않아도 팀단위로 토의하며 개발을 진행합니다.
  • 팀단위로 학습하고 평가한다. 모든 액티비티를 팀체제로 운영하니 팀원간에 커뮤니케이션이 많아지고 팀간에 선의의 경쟁을 통해 열심히 하게 됩니다.
저를 포함해서 강의를 진행하는 강사들이 교육과정을 만들고 강의하는것 자체를 즐기다 보니 수강하는 팀원들도 과정 자체를 즐기게 된다고 생각합니다. 앞으로 7~8개 차수를 더 진행해야 하는데 다 끝나고 나면 과연 팀이 어떻게 변할지 저도 궁금합니다.

이 다음에는 일전에 애자일컨설팅 블로그에서 본 커크패트릭 모델(Kirkpatrick Model)을 가지고 성과를 측정해 보려고 합니다. 하지만 쉽지는 않아 보이네요.

저작자 표시 비영리 변경 금지
이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License
지난주 저희회사 신입사원들을ㄹ 대상으로 강의를 했습니다. 강의 내용은 'J2EE 기반의 애플리케이션 개발' - 문제가 서술되어 있고 관련 산출물이 주어지면 이를 가지고 개발을 진행하는 과정

이미 만들어진 강의를 받아서 하는거라 큰 부담은 없었습니다. 하지만 강의전에 같은 강의를 들은 사원들을 인터뷰한 결과 "도무지 뭘 공부한 거야." 하는 말이 절로 나올 정도로 학습 효과가 낮다는걸 확인했습니다.

그래서 강의 내용 자체는 바꿀 시간이 없는 관계로 강의중 진행되는 실습에 스크럼을 접목하기로 했습니다. 제가 기존 강의와 다르게 진행한 부분을 뽑아 봤습니다.
  • 강의 시작전에 체크아웃
  • 강의가 끝나고 매일 매일 팀별로 회고, 전체 공유
  • 첫날 강의 중 진행되는 실습에 대한 계획게임 실시
  • 실습전에 데일리 스크럼 진행
  • 실습을 페어로 진행하도록 가이드
  • 2일 주기로 이터레이션 진행
  • 매  이터레이션마다 스프린트 리뷰 미팅(시연회) 실시
이런식으로 진행하기 위해서 중간중간 미리 준비한 강의자료로 애자일, 스크럼에 대한 강의를 진행했습니다. 그 결과 거의 대부분의 학생들이 "기존에 본인이 받은 교육보다 훨씬 좋다. 이제는 뭘 배웠는지 알거 같다."는 자신에 찬 이야기를 해 주었습니다.



본인이 뭘 공부할지에 대해 명확히 알고, 그걸 학습하고, 학습결과를 매일 검토하면서 학습효과가 높아졌다고 생각합니다. 이를 가능하게  하는데 들어간 돈은 채 3만원도 안들었을거 같습니다.
  • 3M 포스트 잇 소형: 10개
  • 마커펜: 20개
  • 3M 대형 포스트 잇: 2개
작은 실험이었지만 매우 좋았다고 생각하며, 앞으로 저희팀에서 받게될 개발자를 위한 교육과정을 모두 이런 방식으로 운영할 생각입니다.


이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License
좀 됐습니다. 10월 19일부터 4일간 탐험적 테스트에 대한 대가라고 하는 제임스 바흐(James Bach)의 탐험적 테스트 교육을 듣고 왔습니다.
교육은 sten에서 제임스 바흐를 초청하면서 이루어 졌다고 하네요.

교육장은 구로역 근처 가산 디지털 단지에 있는 마리오 타워 8층 STA교육장에서 열렸습니다.

첫날은 제임스 바흐가 진행하지 않고 STEN의 권원일님이 탐험적 테스팅에 대한 일종의 예습으로 진행했습니다,

제임스 바흐가 강연한 첫째날 실습 진행하고 나서 서있는걸 한장 찍어봤습니다.

강연에 사용한 자료를 포함하여 대부분의 문서는 Satisfice.com에 가시면 받아 보실 수 있습니다. 제가 이번 교육을 통해서 배운것들을 몇 가지 정리해 보았습니다.

교육은 수강생들이 이해 할 수 있게 해야 한다는 것
부족하지만 저도 가끔 강의나 발표를 나가기도 합니다. 이 분 강의 참 재밌게 합니다. 강의만 하는게 아니라 간단한 실습을 통해서 사람들이 느낄 수 있게 강의를 합니다.
작은 볼을 가지고 하는 실습이 있었습니다. 한 명을 나오라고 합니다. 고무된 것처럼 보이는 볼을 줍니다. 이 볼을 가지고 테스트 해 보라고 합니다. 볼에 대한 정보를 얻기 위해 질문하면 기밀이기 때문에 말할 수 없다고 합니다. 이 실습은 테스터가 테스트 오라클을 대하는 자세에 대한 실습이었습니다.

수강생들의 참여를 적극적으로 유도합니다.
많은 질문을 던집니다. 슬라이드의 답을 사람들이 줄 때까지 줄기차게 물어봅니다. 아시죠 ? 우리나라 사람들 누가 물어보면 대답 잘 안하는거. ^^; 이분 끈질기게 물어보십니다. 대답 할 수 밖에 없게 만듭니다.
저도 한 가지 대답한게 기억 납니다. "니가 탐험적 테스팅을 수행한다고 가정하고 MS의 모든 솔루션의 Date입력에 대한 부분을 테스트 한다고 했을때 어떻게 테스트를 하겠느냐?" 팀으로 묶어서 이야기 할 시간을 줬는데도 마이크를 가져다 대니 당황되더군요. 그래서 이렇게 답했습니다. "하루에 몰아서 모든 시스템을 테스트 해 보겠다. 그리고 나서 감을 잡은 다음에 세션별로 솔루션을 잡아서 테스트를 진행하겠다." 그랬더니 의외로 좋아하면서 그런 대답을 한건 내가 전 세계를 돌아다니면서 강의하면서 니가 처음이다라고 하더군요. ^^;

탐험적 테스팅에 대해서 배웠습니다.
애자일 시범적용 프로젝트를 수행하면서 이미 탐험적 테스팅을 써봤다고 생각했습니다. 하지만 역시 처음 적용한거라 부족했던 부분이 많더군요. 제가 탐험적 테스팅에 갖고 있던 오해를 많이 없앨 수 있었습니다.
"그냥 스크립트를 테스트를 수행하면서 쓰는거 아냐."라고 생각했는데 스크립트 테스팅과의 결정적 차이는 그게 아니더군요. 반복을 통해서 테스트 프로세스를 지속적으로 개선하고 테스터가 테스트 작업 자체에 더 집중하도록 하는것이 탐험적 테스팅에서 정말 중요한 포인트 같습니다.

영어로 잘 말하는 것
동시통역이 있었지만 그냥 들었습니다. 제가 영어를 잘해서라기 보다는 이분이 정말 영어를 아주 또박또박 말해주더군요. 보통은 첨에는 천천히 말하다 갈수록 빨라지던데 이분은 강의를 많이 해서 그런지 다르더군요.
사실 저도 영어를 말할 때 괜히 빨리합니다. 잘하지도 못하면서 -_-;; 여러분 영어 천천히 합시다.

끝으로 세미나에 참가 못한 분들을 위해 구글 비디오의 동영상 강의를 링크합니다. 애자일 이야기에 올라온 탐험적 테스팅에 대한 글도 읽어보세요.




이올린에 북마크하기(0) 이올린에 추천하기(0)
크리에이티브 커먼즈 라이선스
Creative Commons License