반응형
지앤선에서 '조엘 온 소프트웨어를 넘어서'라는 책을 내 놓았다. 아래의 책 중 에이콘에서 나온 책의 2번째 권이라고 봐도 무방할 것 같다. 조엘 스폴스키는 책에서 자신이 블로그에 틈틈이 올린 글이 이렇게 책으로까지 나와서 10쇄를 거듭하며 Apress에서 팔릴 줄은 몰랐다고 했지만, 그가 솔직하고 날카롭게 풀어놓은 소프트웨어 개발 이야기가 그만큼 사람들에게 많이 회자되고 공감되었고 해석해도 될 것이다.

책 중간에 학습에 관한 부분이 많은 도움이 되었다. 이미 블로그로 틈틈이 글쓰기 연습을 하고 있지만, 기회가 되면 글쓰기를 많이 하는 습작 수업을 들어봐야겠다. 또한, C언어를 한 번 보고 잘 쓰지 않았는데, 이참에 기초도 다지고 복습도 할겸 C언어를 좀 잘 알아두어야 할 것 같다. 하드웨어를 떠난 소프트웨어는 상상할 수 없고, C언어는 그나마 포인터를 통해 메모리를 직접 제어하고 운영체제에 쓰인 언어이기 때문에 알아두면 운신의 폭이 넓어지리라 예상한다. 

채용에 관한 부분도 인상 깊었다. 포그크릭 소프트웨어는 정말 좋은 사람을 잘 낚는 어부인 것 같다. 인턴 제도를 저렇게까지 잘 활용하는 회사 이야기는, 이 책에서 처음 봤다. 우수한 인재를 뽑지 못하는데, 이력서 뒤지느라 비용만 날리는 다른 회사들은 바짝 정신 차리고 긴장해야 할 것 같다. 

기존의 책에서 꽤 흥미를 느꼈다면, 이 책에서도 흥미를 느낄 수 있을 것이다. 다만 조금 아쉬운 점은 역주가 너무 많아서 가독성이 떨어졌다. 차라리 '각 장의 뒤에 역주를 정리하면 더 나았을 텐데'하는 생각이 든다. 본문에 문맥상 꼭 언급해야 하는 것, 이건 꼭 부연설명이 필요하다는 건 본문 안에 괄호에 포함시킬 수가 있다.
MOREJOELONSOFTWARE(조엘온소프트웨어를넘어서)
카테고리 컴퓨터/IT > 컴퓨터공학 > 소프트웨어공학
지은이 조엘 스폴스키 (지앤선, 2009년)
상세보기

조엘 스폴스키가 쓴 다른 책의 번역서는 아래와 같다.
조엘온소프트웨어
카테고리 컴퓨터/IT > 컴퓨터공학 > 소프트웨어공학
지은이 조엘 스폴스키 (에이콘출판, 2005년)
상세보기

도와주세요!팀장이됐어요+똑똑하고100배일잘하는개발자모시기세트
카테고리 컴퓨터/IT
지은이 조엘 스폴스키 (위키북스, 2009년)
상세보기



반응형
반응형
The Pragmatic Programmers의 시리즈 중 하나인 The ThoughtWorks Anthology의 번역서입니다. 부제는 소프트웨어 기술과 혁신에 관한 에세이네요. 마틴 파울러는 리팩터링이라는 유명한 책을 낸 걸로도 잘 알려져 있는데, 블로그 글을 읽는 것처럼 부담 없이 읽을 수 있게 책이 나왔네요.

DSL(Domain Specific Language) 부분을 보면서 한 가지 문제를 여러 가지 방법으로 푸는 게 신기하더라고요. 프로그래밍 언어도 Concepts of Programming Language(8th edition)와는 다르게 여러 관점으로 범주화를 시킨 부분이 유익했어요. 실용적인 논의의 확산으로, 개발 실무에 유용한 프랙티스들이 잘 알려졌으면 좋겠네요,

소트웍스 앤솔러지
카테고리 컴퓨터/IT
지은이 마틴 파울러 (위키북스, 2009년)
상세보기


반응형
반응형

"더 쉽고 재미있게 소프트웨어를 개발하는 방법"을 부제로 단 Head First Software Development를 monaca님의 애자일 3종 강탈 1탄 이벤트를 통해 읽게 되었습니다. 1장에서는 훌륭한 소프트웨어 개발에 앞서서 훌륭한 소프트웨어 개발의 정의를 짚고 갑니다. 요구사항을 주어진 시간과 비용으로 제공하는 것인데요. 그 비밀을 이터레이션이라고 소개하고 있습니다. 이터레이션을 통해 프로젝트의 방향이 고객이 원하는 목표와 맞는지 자주 점검하는 일이죠. 이터레이션의 규모를 추정하는 부분은 불확실성과 화해하는 프로젝트 추정과 계획과 유사했습니다. 딱딱해질 수도 있는 주제를 그림과 화살표로 시각적으로 표현해서 더 쉽게 다가왔습니다. 요구사항 수집 부분은 사용자 스토리를 연상하게 하는 인덱스카드와 시작했는데요. 책에서 개발자 역할을 맡은 희와 혁의 짤막한 대화가 등장합니다. 책 안에 개발자와 고객에 사진과 이름을 붙여서 중간에 제시하니깐, 내가 그 스토리에 참여하는 것처럼 몰입이 잘 되는 효과를 가져온다고 봅니다. 거만한 자세의 고객에 말풍선을 붙여 말을 넣어 두니깐, 독자의 처지에서 괜히 서늘하더라고요. 읽다가 180쪽에 "이번 장의 훼방꾼이 나타났어요" 부분 때문에 깜짝 놀랐습니다. 헤드퍼스트의 파격적인 구성 때문에 소프트웨어 개발 도서임에도, 이런 반전이 갑작스레 등장할 수 있다고 생각합니다.

객체 지향 방법론인 단일 책임 원칙(SRP)나 DRY 원칙을 통해 리팩터링도 다루고, 버전 관리를 돕는 도구인 서브버전의 필요한 사용법도 소개합니다. 빌드 자동화를 위한 빌드 도구인 Ant를 소개했는데, Ant로 빌드 스크립트를 잘 짜두면 컴파일 명령을 입력하면서 실수하는 일도 줄어들고, 빌드할 때마다 편하리라 느껴졌습니다. 블랙 박스 테스트나 화이트 박스 테스트의 이름은 얼핏 들어본 적은 있지만 무얼 뜻하는지 정확히 모르고 있었는데, 테스트를 바라보는 시선도 다르고 집중하는 분야도 다르다는 걸 알게 되었습니다. 테스트 주도 개발 규칙을 설명하고 테스트로 나온 버그는 "버그 트래커"로 관리하라고 이야기합니다.  재사용 소스 코드가 등장하면서 개발자 집단은 엉망인 상황에 부닥치지만, 차근차근 순서대로 문제를 풀어나가는 개발자 집단이 흥미로웠습니다.

테스트 주도 개발, 사용자 스토리, 빌드 자동화, 버전 관리, 디자인 패턴, 리팩터링, 추정과 계획 등 소프트웨어 개발 전반을 골고루 요약해서 다루고 있다는 점이 이 책의 강점이라고 봅니다. 각 주제를 깊이 익힐 시간은 부족하고 이런 개념들에 익숙해져야 할 때 도움이 되리라 생각합니다. 책의 이야기가 자바 언어로만 씌어 있어서 다른 언어의 관점도 소개하면 좋겠지만, 소프트웨어 개발과 관련된 책이라 다른 언어 사용자에도 적용하는 데 무리가 없으리라 예상합니다.

HEAD FIRST SOFTWARE DEVELOPMENT
카테고리 컴퓨터/IT
지은이 댄 필로네 (한빛미디어, 2008년)
상세보기



반응형
반응형
드리밍 인 코드 표지
드리밍 인 코드가 2009년 1월 출간 예정이라고 포스팅이 올라왔네요. YES24, 교보문고, 인터파크에서 예약판매를 받고 있는 중이라고 합니다. 실제 소프트웨어 개발 프로젝트를 추적하면서 이론과 방법론을 설명하는 책이라고 해서 내용이 기대됩니다. 불분명한 코드나 멤버들의 예측 불가능한 활동 때문에 어려운 소프트웨어 개발에서, 이 책이 참고가 되리라 생각해서 읽어보고 싶습니다. 
드리밍 인 코드 (예약판매) 상세보기
스콧 로젠버그 지음 | 에이콘출판 펴냄
이 첵에서는 추상적인 코드와 예측하기 어려운 프로그래머들의 행동과 씨름하면서 이들이 맞닥뜨리는 모험과 퍼즐 속으로 우리를 끌어들인다. 해답을 구할 수 있을까? 소프트웨어 기술의 성배를 찾아 나서는...
반응형
반응형
Alistair Cockburn이 지은 Agile Software Development(Addison Wesely)의 역서 Agile 소프트웨어 개발(피어슨에듀케이션코리아)를 읽었습니다. 이 책은 2002년 productivity award 상을 수상하기도 했는데요. 이오커뮤니케이션이 번역하였는데, 현재 그 회사는 와이즈북을 거쳐, 전자책 사업을 하는 북토피아로 바뀌었네요. 커뮤니케이션과 협력적 게임, 개인이 실천할 수 있는 일, 물리적 거리가 대화에 미치는 영향, 방법론과 방법의 정의 관점에서 본 차이 등 Agile 방법론에서 논의되는 각 주제들이 차근차근 설명되어 있었습니다. 특히 지나가는 사람들이 질문할 필요가 없도록 도와주는 정보 라디에이터(정보 방열기) 부분이 가장 흥미로웠습니다. 적은 노력으로 정보를 쉽게 전달할 수 있다는 점에서 유용합니다. Agile 방법론에 대한 전반적인 길잡이와, 응용 방법, 충고, 규칙의 한계점 등을 다룬다는 점에서 유익한 책입니다. 

오탈자 메모
  • 41쪽 밑에서 4번째 줄 
    프트웨어 -> 소프트웨어
  • 242쪽 9번째 줄 
    민접하고 -> 밀접하고 또는 민첩하고
  • 289 6번째 목록(14번째 줄)
    동기 부여가된 -> 동기 부여가 된
 
AGILE 소프트웨어 개발
카테고리 자연과학/공학
지은이 ALISTAIR COCKBURN (피어슨에듀케이션코리아, 2002년)
상세보기

반응형
반응형
관리자 권한 계정이 아니면 달력도 못 보여주는 윈도의 '날짜 및 시간 등록 정보', 삭제할 때마다 전 세계인의 시간을 낭비하게 하는 삭제 확인 대화 상자. UPS의 국가 선택 페이지와, 구글이 IP를 추적하여 자동으로 국제화된 페이지를 보여주는 방식. 사례에 많은 공감이 갔다. 이런 사용성을 바꾸기 위해서, 개선을 요청하는 일이 마지막 즈음에 나왔다. 예를 들면, 네이트온의 리눅스/맥 버전 요구, 오픈웹(openweb) 운동이 여기서 말하는 요청에 부합하는 듯 하다. 또한, 사용성 테스트는 아무리 기간이 부족해도 필수적임을 강조했다.
소프트웨어 누가 이렇게 개떡같이 만든 거야 상세보기
데이비드 S. 플랫 지음 | 인사이트 펴냄
『소프트웨어 누가 이렇게 개떡같이 만든 거야』는 왜 사용자가 소프트웨어를 사용하기가 어려운지에 대해 이야기한다. 소프트웨어를 어렵게 느끼는 이유는 무엇인지, 누구 때문에 이러한 일들이 발생하는지,...
반응형
반응형
린 소프트웨어 개발의 적용(원서명:Implementing Lean Software Development: From Concept to Cash)을 읽고 있습니다. 테스트 주도 개발이라는 책으로 알려진 켄트 백의 추천을 받기도 했는데요. 서문에 의하면 린 소프트웨어 개발이라는 책의 연장선 상에서 이 책이 출발했더고 저자들은 밝힙니다.

기억에 남는 부분은 "프로세스 가치 효율"에 관한 부분이었습니다. 이는 "실제로 가치를 더하는데 사용된 시간의 비율이 얼마인가?"라는 의문에서 출발한 개념인데요. 이는 기업에서도 주요한 개선이 될 수 있겠지만, 개인에게도 적용하기에 좋다고 생각했습니다. 짧은 시간 안에, 자신의 능력을 끌어올려서 높은 가치를 얻는다면, 그것은 다른 사람보다 가용시간이 많은 것과 비슷한 효과를 가져오기 때문입니다.

이 책은 총 11개 장으로 나누어져 있는데요, 서문을 제외하고는 각 장의 말미에 "시도해 볼 것"이라는 부분이 있습니다. 이 "시도해 볼 것"에서는 여태까지 그 장에서 다루었던 모델, 통념 등에 대해 실제 조직에 적용하기 알맞은 형태로 배열되어 있습니다. 이는 수업을 듣고, 그 수업의 이해를 돕기 위해 주어지는 숙제와 유사해 보였습니다. 책 표지 바로 뒤에 위치한, 파란 속지 "린 소프트웨어 개발의 원칙"이 2쪽에 걸쳐 깔끔하게 정리되어 있어서 유익했습니다.

프로젝트에 관련된 여러 사람에게 도움이 되겠지만, 특히 관리쪽에 관련이 깊은 분이라면 이 책을 통해 인상적인 통찰을 얻을 수 있을 것이라고 생각합니다.
반응형
반응형
아키텍트 이야기를 읽고 있습니다. 처음에는 딱딱하고 어려운 책 아닌가 생각했었는데, 설명 중간에 줄거리가 되는 이야기가 있어서 책을 읽을 때 흥미를 꾸준히 느낄 수 있도록 합니다. 책에서는, 아키텍트란 소프트웨어 개발과 관계되어, 기술적 결정을 하는 최고 책임자라고 정의합니다. 프로그래머의 정년은 다른 직업보다 짧게 이야기되곤 하는데요, 이 책에서는 그에 대한 대안으로 아키텍트라는 역할을 제시합니다. 줄거리가 되는 이야기의 등장인물들은 이니셜을 가지고 등장하는데요. C라는 인물이 아키텍트로서 마주하는 상황들이 재미있으면서도 현실적으로 느껴졌습니다. 이는 저자가 다양한 시스템을 개발한 경험을 가지고 있는 데에서 기인한 듯합니다.

한국에서도 아키텍트라는 직업은 이제 낯선 이름이 아니게 된 듯합니다. 네이버 카페 아키텍트를 꿈꾸는 사람들에서는 스터디와 캠프 등 활발한 활동을 펼치고 있습니다. 문제를 풀기 위해 기술을 판단한다는 점에서 아키텍트란 직업은 매력이 있습니다. 다만, 훌륭한 아키텍트가 되기 위해서는 끊임없이 기술을 학습하고 의사소통을 잘 하는 법을 익히는 등 많은 노력이 필요할 것 같습니다. 아키텍트에 대한 전반적인 정보를 듣고, 아키텍트와 개발자 사이의 차이를 인지하는 데 도움을 주는 책이라고 봅니다.
아키텍트 이야기 상세보기
야마모토 케이지 지음 | 인사이트 펴냄
개발자들을 위한 아키텍트 이야기를 담은『아키텍트 이야기』. 이 책은 아키텍트가 프로젝트의 흐름에 따라 어떠한 역할을 하고 어떻게 프로젝트를 성공시키는 가에 대하여 가상의 아키텍트를 통하여 상세하게 설명한다. 《아키텍트 이야기》에서는 아키텍트의 요구 분석 단계 업무와 설계방법, 아키텍처로 문제를 해결하는 방법, 왜 아키텍트가 돌파구인가에 대한 내용으로 구성했다.
반응형
반응형
사용자 삽입 이미지

P-Camp 그 두번째 만남을 다녀왔습니다. 2007년 10월 10일 수요일, 코엑스 컨퍼런스센터 401호에서 열렸습니다. 시작하기 전에 신청했던 샌드위치를 먹고나서(처음에는 물이 없어서 그냥 먹다가… 나중에 물을 주셔서 다행이었습니다.) 401호로 들어갔습니다. 오프닝 튜토리얼로 김창준님 께서 "Ontogeny[각주:1] of Unit Tests in Test Driven Development"를 주제로 발표해 주셨습니다. 국제 콘퍼런스 때에 발표되었던 자료라, 발표자료가 영어로 되어 있다고 하시더군요.

Test에는 두가지 방식이 있다고 하셨는데요.
  • Support Programming Test to pass
  • Critic Programming Test to fail
이 있다고 합니다. "린 소프트웨어 개발"의 저자 중 한 명인 Merry Poppendick은 둘 다 선택하라고 하는데, 발표자료에서 다루는 건 "Test to pass"쪽에 중점을 맞춘다고 하셨습니다.

V-Model
이야기와 함께, Design Pattern에는 GoF[각주:2] 여러가지 경험을 두루 쌓은 Christopher Alexander[/footnote]물리와 화학, 수학, 건축학, 전산과학 등을 공부했다고 합니다. [/footnote]가 지었다는 4권으로 된 "Nature of Order"가 소개되었습니다. (시간 없는 분은 2권만이라도 읽으라고 추천하시더군요. 저도 도서관에 신청했습니다.) 이 책은 검증받진 못했지만, 가능성이 있다고 합니다. Best practice라기보다는, A practice로 보는 게 맞다고 하시더군요.

Living Structure의 기준은 Wholeness(전체성)가 언급되었습니다. Life에 대해서 Christopher Alexander는 A와 B를 두고 어느 것이 더 살아있는 느낌이 나는지 피실험자로 하여금 고르게 하였는데, 대부분의 사람들이 살아있다고 느끼는 선택점은 대부분 일치했다고 합니다.
Which one of these two things would I prefer to become by the day of end of life?[각주:3]
Mistake-free[각주:4], 즉 실수가 없으려면 창조(설계적)보다는 생성(단계적)으로 접근하는 게, 실수의 여지가 감소하며 살아있는 느낌을 받을 수 있다고 합니다. 이는 Community, Product, 시(Poem)에도 적용 가능하다고 합니다.

여기서 정의된 Ontogeny는, "Living Sturcture를 만드는 과정"이라고 정의되었습니다. Addition(추가)와 대치되는 Differentiation(분화)[각주:5] 즉 자라나기 전에 기미가 나타나고, 그 후에 출현한다는 모습으로 설명되더군요.

또한 Contextual(직역하면 '문맥상의')을 키워드로 하여 본래 존재하던 것의 훼손을 경계한다는 이야기를 들었습니다. "건물을 피어나게 한다"라는 생각에 약간 감동을 받았습니다. 이를 Structure Preserving Transformation이라고 하더군요. 화가 Henry Matisse의 이야기와 더불어, 살아있는 특징에 대해 몇 가지 언급되었는데요. Center는 주의를 집중하게 하고, 도드라져 보이며, 하나 이상일 수 있다고 합니다. Pattern은 Center를 생성하는 규칙이고, 이보더 더 일반적인 Sequence는 과정을 거치면 Center가 만들어지는 것을 말한다고 합니다.

Unfolding Generative 15 Properties (of Natural Morphology)가 다음에 소개되었는데요. 다음과 같습니다.
(강조된 것은 *)
  1. Levels of Scale
  2. Strong Centers *
  3. Boundaries
  4. Alternating Repetition *
  5. Positive Space
  6. Good Shape
  7. Local Symmetries
  8. Deep Interlock and Ambiguity
  9. Contrast
  10. Gradients
  11. Roughness
  12. Echoes
  13. The Void
  14. Simplicity and Inner Calm
  15. Not-Separateness[각주:6]
이는 15 transformations라고도 불리고, Refactoring(Latent Center를 찾음으로써)에도 적용될 수 있다고 합니다. 신용카드가 유효한 지 검증하는, Luhn Algorithm으로 원시적인 코드에서 Center를 강화시킴으로써 자라는 코드를 보여 주셨는데 매우 인상깊었습니다. 특색처럼, 대규모 응용에는 Process, People Relation, Online Community, Interaction Design이 언급되었습니다.

Q&A시간에는 어떻게 이런 것들을 적용하면 좋겠냐고 하셨는데,
Do once more good thing, Do it again and again…이라고 하시더군요.
작은 좋은 것들이 모여 더 큰 좋은 일에 기여한다는 것이었죠.

토론에는 "14. 효율적인 교육과 여가활용 방안"에 참석했습니다. 뵙기 힘든 다양한 분들을 만나, 진솔한 이야기를 나누고 들을 수 있어 유익한 자리였습니다. 각자 여가를 어떻게 활용하는 지에 대해 퍼실리테이터 역할을 맡으신 분의 조정으로 돌아가면서 이야기를 듣고는 했습니다. "아키텍트를 꿈꾸는 사람들"이라는 네이버 카페에서 활동하시는 분도 있으시더군요. 혼자서 하는 공부와는 다르게 여럿이 하는 스터디는 책임감에서라도 더 열심히 하게되는 동기가 주어진다는 생각을 했습니다. 하지만 토론규칙이나 형식이 지나치게 제약을 주지 않은 한에서, 더 짜임새있더라면 좋지 않았을까 하는 아쉬움도 남았습니다.

토론이 끝나고 나서는, 희망하는 조에 한해서 퍼실리테이터가 토론에서 의미있는 결론이나, 새로이 통찰할 수 있는 것들을 모아 정리해서 간단히 발표하는 시간이었습니다. 발표하는 분에게는 한정판 Geek 티셔츠(!)가 주어지더군요. 발표까지 끝나고 나자, 어느덧 저녁 10시를 약간 넘긴 시각이 되었습니다. 만나기 힘든 분들이 한 자리에 모여 서로 소통하고 배울 수 있다는 점에서 P-Camp는 가치있다고 생각합니다. P-Camp 세 번째 만남을 기대합니다.

사용자 삽입 이미지 사용자 삽입 이미지
사용자 삽입 이미지 사용자 삽입 이미지
  1. 개체발생(Ontogeny)으로 번역되곤 합니다. 발생생물학에서 연구되는 주제 가운데 하나. [본문으로]
  2. Gang of Four의 두문자어(acronym)로, "GoF 디자인패턴"으로 번역된 책이 있다. [본문으로]
  3. http://www.spamula.net/blog/archives/000243.html에서 두 번째 *** 다음 부분을 참고하세요. [본문으로]
  4. free는 무료가 아닌 없다라는 의미 무설탕(sugar-free)과 같은 맥락. [본문으로]
  5. Cellular differentiation을 의미합니다 [본문으로]
  6. Nature of Order에 관한 PDF 형식의 자료를 보려면 다음을 참고합니다. http://www.dreamsongs.com/NewFiles/NatureOfOrder.pdf [본문으로]
반응형

+ Recent posts