반응형
익스트림 프로그래밍, 애자일 프랙티스에 이어서 (고객 중심의 요구사항 기법) 사용자 스토리를 읽게 되었습니다. 이제 '린 소프트웨어 개발'만 읽는다면, 인사이트에서 나온 애자일 시리즈 도서를 다 읽게 되는군요. 사용자 스토리는 현실을 반영하지 못하는 요구사항 명세에서, 고객과의 지속적인 대화를 강조합니다. 대화로 하여금, 모호한 문장으로 생기는 고객과 개발자 사이의 간극을 좁힐 수 있습니다. 고객으로 하여금 사용자 스토리를 작성하게 함으로써, 개발자와 고객 사이의 공통된 언어를 사용하도록 돕습니다.

고객 또는 대리사용자로부터 수집한 사용자 스토리는 2부의 '추정과 계획'에서 점수를 매깁니다. 이 스토리 점수에 따라서 이터레이션마다 어떤 스토리를 개발할 것인지 계획하고,  각 이터레이션 주기를 모니터링 함으로써 이터레이션 차트를 그리도록 합니다.

3부에서는 스토리로 오해하기 쉬운 것들과, 사용자 스토리를 써야 하는 이유, 그리고 스토리를 사용할 때 주의해야 할 점들을 다룹니다. 또한 Agile 계열의 방법론 중 하나인 Scrum에서 사용자 스토리를 사용하는 예시를 보여줍니다. 4부에서는 항해업에 종사하는 사람들을 위해 온라인 도서 판매 서비스를 제공한다는 예제를 통해, 사용자 스토리를 전체적으로 짚어봅니다. 5부에서는 익스트림 프로그래밍을 접하지 못한 사람들을 위해, 간략한 개요가 들어있고 각 장의 연습문제 해답이 들어 있습니다.

다른 서적에 소개된 요구사항 기법들에 짓눌려 있었다면, 사용자 스토리를 통해 재빠르고 가벼운 기법을 도입한다면 어떨까요?
사용자 스토리 상세보기
마이크 콘 지음 | 인사이트 펴냄
애자일(Agile) 프로그램의 활용법과 사용자가 필요한 소프트웨어 개발에 대한 내용을 담고 있는『사용자 스토리』. 이 책은 사용자 스토리를 수집하는 현실적인 방법과 상황에 따른 대처 방법, 사용자 스토리 수집 후 조직화와 순위를 부여하여 계획하고 테스트 단계에 활용하는 방법에 이르기까지 상세하게 설명하고 있다. 《사용자 스토리》에서는 사용자 스토리가 무엇인지에 대한 개념과 개요, 사용자 스토리 작성과 수집, 테
반응형
반응형
(우리가 미처 알지 못한) 소프트웨어 공학의 사실과 오해(원서명: Facts and Allacies of Software Engineering)을 주변에서 추천해 주셔서, 읽게 되었습니다. 소프트웨어 컨플릭트 2.0의 저자이기도 한 로버트 L.글래스가 지은 책입니다. 책은 사실 55가지와 오해 5+5가지를 다루고 있습니다. [각주:1]

제일 감명 깊게 읽은 곳은 오해의 마지막 부분입니다. 교육에 관련된 오해인데요. 저도 처음에 프로그래밍 언어를 배울 때나, 아니면 특정한 프로그래밍 언어를 가르쳐 주는 책을 볼 때면 이런 이런 문법을 설명해 줍니다. 그 다음에 연습문제로 이런 이런 코드를 짜 보라고 하죠. 이렇게 많은 책에서 설명하고 있기 때문에, 그렇게 프로그래밍 언어를 학습하는 일이 당연한 것처럼 느꼈습니다. 우리가 어떤 언어를 학습할 때에 쓰기는 가장 끝 부분에 배웁니다. 읽는 법을 알아야, 쓰고 나서라도 자신이 쓴 문장을 읽는 일이 가능합니다. 그런데 프로그래밍 언어를 가르치는 쪽의 경우에, "코드 읽기"라는 부분에 대해 관심도가 떨어진다는 느낌이 듭니다. "코드 읽기"는 다른 사람이 썼던 코드를 인수받아야 할 경우나, 아니면 자신이 몇 달 전에 작성했던 코드를 분석할 때와 같이 쓸 일이 있음에도 말이죠.

이 책에서는 각각의 사실 또는 오해에 대해 "토의-논쟁-출처-참고문헌"의 구조로 짜임새 있게 이루어져서 자신이 관심있는 사실 또는 오해를 더 탐구할 수 있도록 열어두고 있습니다. 특히 오해 부분에서는 이 오해들을 읽더라도 화를 내지 말 것을 주문하는 문장이 기억에 남았습니다. 소프트웨어 부문의 문제를 지적하고, 설명하며, 문제를 보는 새로운 관점을 건넨다는 점에서 유용한 책이라고 생각합니다.
  1. 10을 굳이 5+5로 풀어 쓴 이유는 Fifty Five, Five + Five 처럼 F의 반복을 통해 저자가 책을 멋지게 보이려고 한 노력입니다. 자세한 내용은 책의 서론을 참고하시기 바랍니다. [본문으로]
반응형
반응형


JCO 공식블로그 포스팅에 의하면, 2007 JCO 오픈소스 컨퍼런스는 교재를 제외하고 무료행사라고 합니다.
기대되네요. 참가신청을 하려면 로그인 후 이용하라는 메시지가 뜨는 것으로 보아, JCO에 가입이 되어야 참가신청이 가능한 것으로 보입니다.
반응형
반응형
CC Salon 3rd(CC Real Mixter[각주:1])에 갔습니다. 2007년 9월 16일 남산 드라마센터의 Main Theater에서 열렸는데요. P.Art.y[각주:2]의 한 세션으로 진행되었습니다. CC Salon에 가 보는 일은 이번이 처음이었는데요, 이 행사의 목적에는 Creative Commons[각주:3]를 널리 알린다는 의도도 있습니다.

사용자 삽입 이미지 사용자 삽입 이미지

시작하기 전에 P.Art.y 2007 화면이 앞에 떠 있었습니다. 입장은 오후 2시부터였습니다. 건물 내부에는 사람이 붐볐는데, 비가 와서 그런지 내부 좌석이 가득 차지는 않았습니다. 연인 분들도 많이 오신 듯 했습니다.

사용자 삽입 이미지

윤종수 판사님께서 Creative Commons에 대한 설명과, CC Real Mixter에 대한 소개를 해 주셨습니다. Creative Commons를 띠고 있는 음악 파일로 멋진 음악을 조합할 수 있다는 사실이 정말 멋졌습니다. 애자일컨설팅의 김창준 님께서는 CC Salon 행사에 대해 소개를 해 주시면서, 기존에 행사를 돕던 분의 아는 분이 또 행사를 돕고 하는 이야기를 말해주셨습니다. 미디어아티스트 최승준 님은 마이크를 들고 행사의 진행에 도움을 주시고 계셨습니다. 세 분은 CC Salon 노드의 가운데에 계시더군요. ^^

LED를 던져라
LED를 던지면 그 LED가 철판에 달라붙어 빛을 내는 세션이었습니다.
따라하기 쉬워서 그런지 어린이들에게도 인기가 좋았죠. (그렇지만 조금 위험해 보이기는 했습니다.)

사용자 삽입 이미지

당신의 Creative를 Commons에 던지세요
동전을 원통안에 던져 넣으면, 지정된 소리가 울려 퍼지는 세션이었습니다. 이 세션도 재미있었습니다.
가운데 큰 원통에는 "dizzy max~!"라는 소리가 났던 것으로 기억합니다. 동전을 한꺼번에 넣으면 센서를 여러번 통과하기 때문인지 "d d dizzy max~!"가 되더군요.

사용자 삽입 이미지

Flash Sound Cube 세션
입방체 모양의 물건에 손전등으로 불을 비추면, 불이 들어오면서 지정된 소리가 퍼져 나왔습니다.
좌석에 앉아서도 즐길 수 있는 세션이었죠.

사용자 삽입 이미지

여러 세션이 동시에 진행되는 동안에 신정엽 님과 DJ짱가 님은 무대 가운데에서 각각 영상리믹스와 소리커뮤니케이션을 맡아주셨습니다. 리믹스미션이 세션이름인지는 모르겠는데, 특정 판을 가리면 그 판에 표시된 재미난 소리가 나는 기구도 LED를 던지는 세션 옆에 있었습니다. Perfoming Magic Wand 같은 경우 동시에 체험할 수 있는 인원이 제한되어 있어, 아쉬웠습니다. 막대기를 휘두르면 앞에 화면에 그 움직임이 반영되는 세션이었습니다. Interactive Hats도 신기했는데, 중간에 오류가 나서 잠깐 멈추었습니다. 모자를 쓰면 아래 화면에 꽃무늬가 퍼지는 모습이 나타났습니다. 사진으로 찍지는 못했지만 드럼을 두드리던 은하무적가극단의 공연도 매우 인상적이었습니다. 다음 4번째 CC Salon도 기대되네요.
  1. 커뮤니티 음악 사이트 ccMixter Korea를 참고하세요. [본문으로]
  2. People, Art, Technology를 조합한 말로, 자세한 정보는 P.Art.y 2007을 참고하세요. [본문으로]
  3. 라이센스 종류의 하나로, 특정 조건만 지키면 콘텐츠를 사용할 수 있는 some rights reserved에 해당됩니다. Creative Commons Korea를 참고하세요. [본문으로]
반응형
반응형

사용자 삽입 이미지 사용자 삽입 이미지

MySQL[각주:1] User Conference Korea 2007을 다녀왔습니다. 2007년 9월 14일 오후 1시부터 강남 센트럴시티 컨벤션 5층 체리홀에서 있었습니다. 저는 다행히도 일찍오게 되어 컨퍼런스 장소가 열리자마자, 앞쪽에 앉을 수 있었는데요. 컨퍼런스가 시작될 즈음에는 상당히 많은 분들이 오셔서 통로나 뒤쪽에서 서서 계신 분들도 있었습니다. 기술적인 내용들이 주요하게 다루어져서, 기업의 경영과 관련해서 오신 분들은 다소 당황하셨을 것으로 생각합니다.
발표가 시작되기 전에, MySQL Enterprise를 한국에서는 리눅스데이타시스템에서 맡아서 하신다는 이야기가 간단하게 있었습니다. 좌석 자리마다 책상 위에 MySQL과 돌고래가 그려진 휴대전화 클리너가 있더군요.

첫 번째 발표는 Senior Product Manager이신 Jimmy Guerrero 씨가 MySQL High Availability Solutions라는 주제로 고가용성 솔루션에 대해 소개를 해 주셨습니다. 인상이 너그러워 보이시더군요. 현재 MySQL은 빠른 성장세를 보이고 있고, 확장성이 좋고, 성능이 높으며, 쓰기 쉽다는 등의 이야기가 나왔습니다. 그러면서 솔루션을 세 가지로 나누어 설명하셨는데요. 각각은, 였습니다. Replication같은 경우에는 동기성(Synchronousness)의 유무에 따라, 퍼포먼스와 데이터 안정성의 관계가 트레이드-오프로 놓였습니다. Heartbeat[각주:3]를 이용해 두 서버가 있을 때 한 쪽이 죽으면 복구된 후 Resynchronization이 일어나는 모습을 보여주기도 했습니다.

두 번째 발표는 Director of Technology이신 Brian Aker 씨[각주:4]가 Scaling에 대해 발표했는데요. LAMP[각주:5]를 도입할 때 하는 걱정을 이야기하면서, 다른 것에 대한 우려의 목록(Caching, Partitioning etc.)을 작성해서 각각에 대해 다루었습니다. 자신이 하고 있는 일에 대해서 MySQL 5.0에는 Added Offset Increment[각주:6] 기능을 도입했고, 5.1부터는 Row based Replication을 지원한다고 했습니다. Replication이 정확히 되는지 확인할 필요가 없다는 걸 장점이라고 하시더군요. 마지막으로 C/C++ 프로그래머이거나, 시스템/데이터베이스 공학 경험이 있거나 하는 분들을 고용하고 있다는 걸 말씀하시더군요. 만일 관심 있으시다면 freedom to work anywhere @ MySQL을 참조하세요.

세 번째 발표는 A Practical Guide to Migrating from Oracle to MySQL이라는 주제로 첫 번째 발표를 맡으셨던 분이 해 주셨습니다. MySQL로 이전하는 게 비용이 절약되고, 특징도 많지만, 오라클에서만 있는 기능을 많이 사용한다면 애플리케이션의 재작성이 필요하다고 합니다. 마이그레이션 전략을 6단계로 나누어서, 차근차근 설명했는데 중간 과정에서 MySQL Workbench, MySQL Migration Toolkit[각주:7], MySQL mysqlslab utility[각주:8] 등을 사용할 수 있다고 합니다.

네 번째 발표는 5.1 In-Depth라는 주제로 두 번째 발표를 맡으셨던 분이 해 주셨습니다. Partitionaing 사례의 가능한 여러 모습들이 나왔습니다. Plug-in enhancement 부분에서는, 한글을 parsing하는 plug-in을 만들어서 MySQL 내부를 건드리지 않고 쓸 수 있다고 하더군요. 관심 있으시다면 MySQL AB :: Developer Zone을 참고하시면 도움이 되실 듯 합니다.

다섯 번재 발표는 Daniel Saito 씨가 Fall 2007 Update What's New라는 주제로 말씀해 주셨는데요, 영어가 유창하시더군요. MySQL Enterprise Monitor에서 향상된 기능 업데이트에 대한 설명과, 실제로 어떻게 나타나는지 웹 브라우저로 시연이 있었습니다.
사용자 삽입 이미지

In the Cherry Hall


커뮤니티 버전에 대한 내용도 조금이나마 나오지 않을까 약간 기대했는데, 아쉬움이 조금 남네요. MySQL에 대해 조금 더 가까이 느끼게 된 계기가 되었네요. MySQL Enterprise가 앞으로 한국에서 얼마큼의 인기를 누릴 것인지 기대됩니다.
  1. MySQL에서는 "에스 큐 엘"이라고 읽고, SQL에는 "시퀄"이라고 분리하여 발표자들이 말씀하시더군요. 관례적인 발음으로 보입니다. [본문으로]
  2. Distributed Replicated Block Device [본문으로]
  3. 고가용성 리눅스로에서 클러스터링 소프트웨어, GPL 라이센스이며 자세한 사항은 High Availabilty Linux Project를 참고한다. [본문으로]
  4. 그의 블로그 Brian "Krow" Aker Presents와 오픈소스 소프트웨어를 퍼블리싱하기 위해 그와 친구들이 사용하는 Tangent Software를 참조하세요. [본문으로]
  5. Linux, Apache, MySQL, PHP(or Perl, Python, Java, Ruby etc.)의 앞글자만을 타서 조합한 단어입니다. [본문으로]
  6. index를 한 쪽은 1, 11, 21로 증가하고, 다른 쪽은 2, 12, 22로 증가해서 겹치지 않도록 하는 기능이라고 합니다. [본문으로]
  7. MySQL GUI Tools 페이지에서 두 개를 내려받을 수 있는데, Workbench의 경우 1.1.10 Alpha 버전입니다. [본문으로]
  8. MySQL 5.1 Reference Manual 7.17 mysqlslap을 참조하세요. [본문으로]
반응형
반응형
LIFT evening Seoul을 다녀왔습니다.
LIFT는 사회 안에서 기술의 도전과 기회에 대한 콘퍼런스입니다. 스위스 제네바에서 LIFT 06과 LIFT 07 행사가 열린적이 있죠. 더 자세한 사항을 알고 싶으시다면 LIFT conference 공식 홈페이지를 방문하세요.

사용자 삽입 이미지

LIFT korea


2007년 9월 12일에 열렸던 LIFT evening Seoul은 2008년 6월에 예정된 LIFT Asia의 예비 행사라고 생각하면 될 듯 합니다. 물론 스위스 제네바에서 열리던 LIFT 08 행사는 2008년 2월에 열립니다. 예비 행사라서 그런지 발표자 분들이 원래 이렇게 짧은시간에 맞춘 내용이 아니라서(원래는 LIFT 07에서 더 충분한 시간으로 발표되었던 내용으로 보입니다.) 그런지 발표하실 때 압축해서 발표를 하신다는 느낌이 들었습니다.

압구정역에서 내려서 유림아트홀을 찾는데 길이 복잡해서 헤매다가, 어떤 여성 분이 유림아트홀을 찾아 내셔서 시작하기 전에 무사히 들어갈 수 있었습니다. 이미 자리 앞에는 많은 분들이 오셔서 이야기를 하고 계셨는데, 외국 분들이 많이 보이셔서 분위기가 익숙하지 않았습니다.

첫 번째 발표는 Adam Greenfield 씨가 도시에 관한 주제로 발표해주셨습니다. 영어로 발표가 진행되었지만, 다행히도 동시통역이 제공되어서 잘 들을 수 있었습니다. "도시학"이라는 학문이 있다는 걸 그때 처음 알았습니다. 도시가 점점 즐거움은 사라지고, 더럽고, 미끄러우며, 미관이 악화되는 방향으로 변하는 현 상황을 제시하면서, 더 나은 방향으로 나아갈 필요가 있다고 했습니다. 우리나라도 버스나 지하철을 타다보면 귀에 이어폰을 끼고 음악을 듣거나, DMB로 TV를 보거나 하는 모습 등을 자주 볼 수 있는데, 이런 현상은 미국에서도 있다고 합니다. Adam Greenfield 씨는 이런 현상을 사람들이 System에 참여하기를 그만두는 현상으로 분석했습니다.

이에 대해 더 관심이 있으시다면 Adam Greenfield 씨가 쓰신 Everyware라는 책을 보시는 것도 좋을 듯 합니다.

뒷 부분은 잘 알아듣지는 못했는데, Nike+iPod, bio-medical(PET), 휴대전화로 이용하는 지리정보시스템, 인식거리 넓은 RFID[각주:1] 등의 이야기가 나오면서, 행동(또는 패턴/시각화)으로 문제를 해소해야 한다는 이야기가 나온 것으로 기억합니다.

이런 시스템에도 단점은 있기 마련인데, 지나치게 좋은 가독성이라는 것입니다. 자기가 받아들일 수 있는 정보량보다 너무 많은 정보가 주어져서, 사람에게 안 좋을 수 있다는 이야기로 들렸습니다.

두 번째 발표는 Bruce Sterling 씨가 해주셨습니다. 미래에 의자를 매개로 한 이야기를 애니메이션으로 보여주고, 이를 뒤에서 분석하는 식으로 발표가 진행되었습니다. 의자 이야기의 줄거리는 다음과 같습니다.

남자와 여자가 자기가 원하는 스타일의 의자를 온라인 상에서 주문합니다. 주문을 받은 회사는 넓고 적당히 얇은 판에 도면을 인쇄해서 잘라 조립합니다. 조립된 의자는 남자와 여자에게 배달됩니다. 그 의자는 RFID 기능 등 다른 기능들도 포함되어 있습니다. 어느날 그 의자를 옥상에 두었다가 그 의자에 벼락이 치게되어 망가지게 됩니다. 그런데 의자를 주문했던 회사에서 신 모델 의자를 새로 주겠다고 합니다. 그러면서 회사 사람이 망가진 의자를 수거해가고, 그 의자를 의자재료로 쓰이는 넓은 판으로 재활용하기 위해 가루로 만듭니다.
세 번째 발표는 XL Games의 송재경 씨가 해 주셨습니다. 온라인 게임의 변화를 몇 단계로 나누어 짚어 주셨는데요. MUD 게임에 대한 이야기가 나왔습니다. 플레이 해 본 경험은 없는데, 공간적 감각에 결함이 있는 경우가 있다고 합니다.
일반적인 2D 게임에서 아래로 한칸, 옆으로 두칸 움직이고, 위로 한칸 움직이면 처음 출발했던 위치와는 달라야 합니다. 그런데 머드 게임에서는 위와 같이 움직일 경우 처음 위치로 돌아오게 됩니다.
2D MMORPG로 넘어오면서 지리적으로 올바른 형태가 되고, 교통수단(말, 배 등)이 등장했습니다. 사람의 키를 기준으로 해서 한 세계의 크기는 400 km2 정도 된다고 합니다. 이보다 크면 이동하는 데 시간을 보내느라, 사용자가 피곤해지기 때문이죠.
이후 3D MMORPG에서는 던전에서도 병목현상(또는 악성사용자가 길을 막는 행위)을 막기 위해 즉석으로 생성되는 던전을 도입하게 됩니다.  이동 시간이 지나치게 많아 역효과를 주는 일을 막기 위해, 교통수단도 늘어나고요. 현실에서 썼던 상식이 가상공간에서도 통하도록 설계를 하도록 한다고 합니다.
미래 MMORPG에 대해서도 조심스럽게 이야기해주셨는데요.
  • 지금의 세계보다 더 큰 세계가 도입될 것인가(병렬 연산등을 도입한 서버 퍼포먼스가 관건)
  • 손수제작물 열풍에 힘입어 사용자 주도의 공간이 도입될 것인가
  • 던전처럼 주택도 즉석으로 생성될 것인가(이를테면 아파트)
  • 사람과 사람 사이에 서로 통과할 수 없게 할 것인가(악용의 위험)
  • 환경변화를 도입할 것인가[각주:2]
  • 환경 변화의 도입이 비용 대비 얼마나 가치를 줄 것인가
  • 인위적 세계 바꾸기를 가능하게 할 것인가(파괴/건축, 세계가 황폐화 되는 건 아닐까)
등을 들을 수 있었습니다.

네 번째 발표에서는 건축가 유석연 씨가 '방'에 대한 자신의 연구와, 도시에 관한 자신의 여러 연구에 대해서 발표해 주셨습니다. 중간에 들었던 Glocal에 대한 이야기가 인상깊었습니다. 도시계획방법론 등에 대해서도, 배경지식이 부족해 충분히 이해하지는 못했지만 흥미로워 보였습니다. 특히 노드와 그래프로 이루어진 다이어그램을 보면서, 물리와도 상성이 잘 맞겠다는 생각이 들었습니다.

사용자 삽입 이미지

아사히맥주 레스토랑 사진


발표 이후에는 유림아트홀에서 1분 거리인 아사히맥주에서 뒷풀이가 있었습니다. 분위기가 상당히 자유롭고 수평적인 느낌이 들더군요. 안주는 낯설었지만, 맥주도 맛있었고요. 여러 사람들과도 만나서 조언도 듣고, 이야기도 나누어 보고 할 수 있어서 보람을 느꼈습니다. 외국 분들이 많아서 새삼스럽게 "영어가 중요하다."라는 사실을 느끼게 되더군요.
  1. 이 부분은 홍콩의 교통카드 예를 들면서, 핸드백안에 교통카드를 넣고 개찰구를 그냥 통과만 해도 지불이 된다고 하더군요. 우리나라의 경우에는 교통카드를 인식기기에 5cm 내외로 대야하는 것과 대비되더라고요. [본문으로]
  2. 마비노기에서는 낮과 밤이 변하고, 비가 오는 날, 번개가 치는 날, 맑은 날이 있다. [본문으로]
반응형
반응형
익스트림 프로그래밍(Extreme Programing Explained 2/E)를 읽었습니다. Extreme Programming, 줄여서 XP는 "애자일 소프트웨어 개발"에서 논의되는 방법론 중의 하나입니다. 한국 eXtreme Programming 사용자 모임도 있고요.
첫 부분에 XP에 대한 설명과 1부 XP 탐험하기에 대해서는 차근차근 XP가 추구하는 가치, XP의 실천방법 등에 대해 나와 있습니다.

제일 관심있게 읽었던 부분은 "제약이론"입니다. 세탁하는 과정을 비유로 들어서 제약 이론을 설명하고 있었는데, 제약 지점을 찾는 것에 대한 이야기를 하고 있었습니다. 제약 이론은 전체적인 처리 역량을 좋게하는데 초점을 두고 있다는 점에서 좋은 방법으로 보입니다. 다만 XP를 적용함으로써 새로운 제약지점 부서는 주목받는 일을 원하지 않기 때문에, XP가 도입되기 여렵다고 하는 점에서 아쉬웠습니다.

도요타 생산 시스템이 언급되는 장도 있었습니다. 이 장에서 언급되었던 Lean Software Development가 2007년 9월 중순에 번역본으로 나왔던 소식을 들었던 터라, 반가웠습니다. 테일러주의가 보편적으로 사회에 자리잡기는 했지만, 특정 분야(이를테면 소프트웨어 개발)에서는 그에 적합한 방법을 사용하는 것이 맞다고 봅니다.

책 끝부분에 많은 참고문헌이 소개되어 있어서,
어떤 주제에 대해 관심이 있다면 찾아서 학습할 수 있도록 돕고 있습니다.

블로그에 읽었던 책을 틈틈이 정리하고는 하는데, 이번주는 정말 책을 열심히 읽었네요.
익스트림 프로그래밍(Extreme Programming) 상세보기
켄트 벡 지음 | 인사이트 펴냄
익스트림 프로그래밍 입문서 개정2판. 이 책은 XP의 소개와 운전하는 법 배우기, 가치와 원칙, 실천 방법, 제약 이론, XP확장, XP의 철학 등의 내용을 담았다. 저자는 이 책에서 소프트웨어를 개발하는 데 필요한 핵심과 실천 방법들을 소개하고, 프로젝트를 어떻게 더 잘 운영할 것인지, 사실에 기반을 둔 계획성들에 관하여 이야기한다. 《익스트림 프로그래밍》에서는 XP를 적용하여 얻게 되는 가치와 조화되는 삶에 관한 실천

반응형
반응형
맨먼스 미신을 도서관에서 빌려 읽었습니다. The Mythical Man-Month라는 책을 여러 책에서 추천하고 있었는데, 번역본이 출간되어 반가웠습니다. 책 겉면에는 출간 20주년 기념판이라고 써 있었는데, 본래 책이 1995년에 나왔으니 32년 넘게 시간이 흘렀군요. 꾸준하게 다양한 배경의 사람들이 읽었다고 들은 책이라 기대가 되었습니다. "소프트웨어 컨플릭트 2.0"처럼 한겨레신문에서 제공하던 서체를 사용하던데, 처음에는 좀 어색했지만 적응하고 나니 글씨도 큼직하고 읽기 좋습니다.

이 책의 구조에서 가장 깊은 인상을 남긴 것은 각 장이 시작될 때마다 한 페이지 전체에 관련된 그림이나 사진이 실리는 모습이었습니다. 앞의 그림을 떠올리면서 책을 읽어나가다보면, "이런 주제를 드러내려고 이런 그림을 실었구나!"하고 느낄 수 있었습니다.

다른 소프트웨어 공학 에세이에서도 빈번하게 나타나는 주제인, "은총알(Silver bullet)"에 대한 언급도 있었습니다(은총알은 없다). 소프트웨어 공학에서 발생하는 괴물같은 주제를 늑대인간에 비유하고, 이른 해결할 돌파구를 늑대인간을 무찌를 수 있다고 알려진 은총알에 비유한 것인데요. 흥미롭게 읽었습니다.

다른 한 가지는 프로젝트 팀을 수술 팀이라는 은유로 생각했던 부분이었습니다. 이 해결책은 Harlan Mills라는 분이 제안했던 것인데, 문제를 조각내지 않고 많은 손이 필요한 부분에 적절히 역할을 맡아 효과적인 문제 해결을 위해 노력한다는 점이 마음에 들었습니다.

맨먼스 미신의 초판에서 제안되었던 사항들이 지금은 어떻게 되었는지, 맨먼스 미신의 초판에 대한 저자의 고찰과 회고가 담긴 장들이 뒷부분에 추가되어 있었습니다. 과거가 미래 예측에 도움이 되는가에 대해서는 논란이 있지만, 그래도 현재 살아가는데 과거의 지식이 가치있으리라고 생각합니다. 책에 나온 기술들이 현재 사용되는 것과 다소 동떨어질 수 있지만, 근본적인 가치는 크게 변하지 않아서 여러 사람들에게 도움이 되리라 생각합니다.
맨먼스 미신 상세보기
프레더릭 브룩스 지음 | 케이앤피북스 펴냄
컴퓨터 공학 이론서. 이 책은 대형 프로그래밍 프로젝트에서 소형 프로그래밍 프로젝트와 다른 종류의 관리 어려움을 극복하는 방법을 설명하고 소프트웨어 공학 관리의 특징에 관하여 에세이 형식으로 구성했다.
반응형
반응형
애자일 프랙티스를 읽었습니다. Practices of an Agile Developer의 제목 공모 이벤트에 참여만 했을 뿐인데 책을 받게 되어 기쁩니다. 책을 처음 펼치자 마자 맞닥뜨린 인용구가 인상적이었습니다. 책에서는 한 장이 시작할 때마다 그와 관련된 속담, 격언, 인용구 등으로 주제를 도입하고 있습니다. The Pragmatic Programmer(실용주의 프로그래머로 국내에서 번역되었죠.)의 공동저자 중 한 사람인 앤디 헌트와 Agile Developer의 설립자 벤캣 수브라마니암이 쓴 이 책은 말 그대로 적용 가능한 실천 지침들을 제공하고 있습니다.

1장에서는 우선 애자일 소프트웨어 개발에 대한 배경적 지식을 논합니다. 2장부터 8장까지 각 장의 서두에는 어떤 지침들이 나올 예정인지 간략히 소개되어 있습니다. 각 지침의 첫 부분에는 악마가 사람들이 피해야 할 나쁜 습관을 일러줍니다. 지침에 관련된 에피소드나 실례를 제시하여 이 지침이 왜 유용한지 거부감없이 느낄 수 있게 하며, 천사가 사람들이 가져야 할 좋은 습관을 일러 줍니다. 책 표지에 악마와 천사가 등장하는 것은, 독특한 캐릭터들이 지침의 설명 부분에 등장하기 때문으로 생각합니다. 그 후에는 "어떻게 느껴야 하는가?"라는 부분이 있습니다. 말 그대로 이런 느낌을 갖고 있다면, 바르게 가고 있다는 안내를 해 주기 위해 도입된 것으로 보입니다.

하지만 어떤 지침이든 지나치게 적용하거나, 느슨하게 적용하면 그 효과를 제대로 발휘하지 못할 수 있습니다. 이런 부분을 바로잡기 위해 "균형 유지하기"에서는 어떤 부분에 중점을 두어야 하고, 어느 정도가 적당한지 지적합니다.

에필로그를 읽다보니 전에 보았던 Ship It!을 개발 기반의 마련을 위한 Starter Kit으로 추천하더군요. 뒤에는 여러 참조 링크와 관련 문헌들이 소개되어 있고, 실용주의 프로그래머처럼 가이드라인 요약본이 뒷표지 앞에 붙어 있습니다.

최근에 IT 회사에 다니시는 분에게 이야기를 들을 기회가 있었습니다. 그 분이 의아해하셨던 것은, "왜 대학에서는 테스트를 가르치는 과목이 없느냐?"였습니다. 애자일의 인프라스트럭처에는 "유닛테스트"가 중요한 위치를 차지하고 있습니다. "테스트 주도 개발"이라는 움직임이 보이고, 국제 테스팅 컨퍼런스(2007년 10월 초에 서울 코엑스에서 열린다고 합니다.) 도 열리고 있으며, 수습 불가능한 스파게티 코드가 되는 일을 피하고 유지보수를 쉽게 하기 위해서라도 테스트의 중요성은 날로 커지고 있습니다. 그래서, 테스트에 대한 과목도 교과과정에 들어있으면 하는 바람이 생겼습니다.

애자일이라는 걸 머리로는 알고 있지만, 어떻게 실천해야 하는가에 대해 막막함을 느낀 분들도 있을거라 생각합니다. 이 책에서 시도하기 쉬운 지침을 선택하여 점진적으로 적용한다면, 개인과 팀에 긍정적인 변화가 생기지 않을까 생각해 봅니다.
애자일 프랙티스 상세보기
벤캣 수브라마니암 지음 | 인사이트 펴냄
애자일 소프트웨어 개발 전문서. 이 책은 45개의 애자일 프랙티스 사례를 통해 어떤 문제에프랙티스를 적용하고 맞추는 방법을 통해 애자일 소프트웨어를 익힐 수 있도록 구성했다. 프랙티스를 올바르게 적용했을 때 어떻게 느껴지는지, 과하게 적용하는 것과 성기게 적용하는 것 사이에서 균형을 맞추는 방법을 설명하고 코딩과 디버깅에 관한 내용도 함께 설명한다. 책 뒤편에는 애자일 프랙티스 자료에 관한 내용도 포함했다.
반응형
반응형

한국 루비 사용자 포럼
BarCamp RubykrSeminar4
루비 세미나 공식 블로그

사용자 삽입 이미지

4회 루비 세미나


2007년 9월 8일.

4회 루비kr세미나에 다녀왔습니다. 장소는 3호선 양재역 근처의 다음커뮤니케이션 건물 3층이었습니다. 전에 매쉬업 세미나때문에 갔던 곳이라 길이 익숙했습니다. 원래 2시부터 시작이었는데, 일찍 왔는데 문이 잠겨있길래 문 앞에서 기다리고 있다가 직원 분이 카드로 문을 열어주셔서 들어갈 수 있었습니다. 엘리베이터에도 카드를 찍으시던데 정말 신기하더군요.

저녁의 다른 약속과 겹쳐서 아쉽게도 세션을 다 들을 수는 없었습니다. 세션 1에서는 코디안님이 Rails 기반의 RSS 서비스를 소개하셨습니다. Main DB를 사용하지 않고 API만으로 RSS 리더를 구현하는 모습이 신기했습니다. 그 뒤에 나루라는 블로그 검색엔진과 관련있는 온네트에서 API에 대한 소개를 해주셨는데요, 아직 공중에 공개되지는 않았지만 그렇게 될 예정이라고 합니다.

세션 2에서는 우선 강규영님이 JSSpec을 이용한 JavaScript BDD(Behavior Driven Development) 개발을 주제로 발표해 주셨습니다. BDD는 TDD(Test Driven Development)에서 갈라져 나온 개발양식이라고 이해했는데, 맞는지 모르겠습니다. 끝에 TDD에 관한 바른 이해를 돕는 여러 좋은 말을 들었습니다. (테스트 주도 개발을 어쩌다가 읽고난 뒤 오래되서 기억이 가물가물하네요.)
그 다음에는 '쉽게 배우는 JRuby on Rails'를 번역하신 이창신님이 저자직강으로 JRuby에 대해 이야기해주셨습니다. 현재 C/C++나 Java가 꽤 많이 쓰이고 있는 것은 사실이고, 그래서 Java와 연동이되는 JRuby on Rails는 미래지향적인 곳이라면 한번 도입해보는게 좋다고 들었습니다. JRuby on Rails는 앞으로 Java SE 5를 선행 요구사항으로 하여 개발될 예정이라고 합니다.

세션 3에서는 RubyCocoa에 대해서 Jenix님이 발표해주셨습니다. 코코아 프로그래밍이라는 책을 번역하셔서 곧 나올 예정이라고 하셨는데 9월 15일에 정식으로 인사이트에서 출판되었군요. 맥 개발환경이 낯설긴 했지만, 드래그앤 드롭으로 버튼을 만들고 하는 모습이 신기해 보였습니다. 덧붙여 Objective-C에 대한 호기심도 생겼고요.

그 다음 부분부터는 듣지 못해서 아쉬움이 남았습니다. 일찍 나와서 루비가 신입 참가자에게 준다는 루비가 그려진 가방도 못받고, 기념품도 못 받은채 갔네요. 루비 세미나 공식 블로그를 방문하시면 4회 세미나의 내용을 동영상으로 보실 수 있습니다. 저도 시간나면 세션 3 뒷부분과 세션 4 부분을 봐야겠네요.

여러 유익한 점들을 배울 수 있어서 좋았습니다. 차회 세미나에 또 참가하고 싶네요.

반응형

+ Recent posts