The Nature of Software Development - 간결하게, 가치 있게, 하나씩 완성하기
론 제프리스 지음, 이기곤 옮김 / 한빛미디어 / 2017년 1월
평점 :
절판


간결하게, 가치있게, 하나씩 완성하기

책 표지에 있는 윗줄이 책 내용을 그대로 요약한 고압축 문장이다. 하지만 이대로 하기가 어렵기 때문에 소프트웨어 세상도 사바세계인 것이다. 나무아미타불.(똑똑똑똑)


책 내용도 그러하다.

# 간결하다.

저자가 익스트림 프로그래밍의 창시자이자 경력 15년 프로 애자일러(!)라서 얇은 책에 간결하고 가치있게 한 가지 주제로 읽기 쉽게 써 놓았다.

책을 읽으며 인상에 남거나, 아하! 싶은 부분에 줄을 긋고 줄 그은 페이지에 인덱스 테이프를 붙여봤더니 184쪽 짜리 책에 31쪽에 테이프가 붙었다. 이 이상 요약하기도 어려울 정도로 책 내용은 군살 없고 간결하다. 


읽기는 쉽지. 하지만 읽은 대로 하는 건 차원이 다른 이야기일 것이다. 교과서 위주로 시간 효율을 높여서 공부하고, 잠은 충분히 잤더니 성적을 잘 받았어요 같은.

책을 읽으며 그간 손을 담갔던 프로젝트들이 머릿속에 떠올랐고, '뭔가 잘못됐다'라고 느꼈던 것의 근본 원인은 무엇이었을까 생각해보게 되었다. 가치를 담고 있지 않은 요구사항 혹은 기획, 하나씩 나누지 못해서 거대한 덩어리로 작업했더니 막판에 '이 산이 아니다'라고 나와서 난리났던 일정, '애자일은 스크럼이죠!'같은 마케팅 표어들. 그리고 쌓여가는 상호불신. 써 놓고 보니 정말 사바세계 그대로다.


# 가치있게

소프트웨어가 가치가 없으면 기획하고 개발하겠나 싶지만 중요하다고 내걸던 가치는 온데간데 없고 애드웨어나 블로트웨어가 결과물로 나온 경험, 없는 사람은 정말 축복한다. 앞으로도 꽃길만 걸으세요. 이상한 이런 길로 들지 않기를 빕니다. 하지만 있는 사람은 책을 읽으며 지나간 프로젝트들이 머릿속을 스칠 것이고, 거기에 빠져있던 것 중 하나가 가치 아닐까, 생각하게 될 것 같다. 

그럼 가치는 무엇인가, 저자는 1부의 맨 처음과 2부의 맨 처음에 '가치란 무엇인가'에 대해서 이야기를 하고 있다. 2부의 맨 처음, 10장에서 "가치의 의미는 간결합니다. 바로 우리가 원하는 것이죠."라고 했다. 이것만 잘라놓고 보면 '하나마나 한 소리를 왜 하나'싶지만 경험을 돌이켜 보면 뼈아픈 말이었다. 정말 가치를 생각하고, 가치있는 것을 골라서 개발했던가? 아닌 적도 분명히 있다. 그리고 중요한 '가치를 주의깊게 관찰하고, 어떤 일을 해야 할지 적절히 골라내'지 못한 적도 있었다. 왜 그랬던가 생각해보면, 가치 보다 다른 것이 '암묵적으로' 더 대우받았다. '저걸 빨리 런칭해서 나의 실적으로 삼아야지' '나의 참신한 아이디어가 먼저 구현되어야 해' 등등. 

가치는 정말로 주의깊게 관찰하고, 어떤 일을 해야할 지 적절히 골라내야한다. 앵무새 같이 되풀이하는 것 같지만 달리 말주머니가 가난한 나로선 이 말을 달리 풀어쓸 재주가 없다. 


"가치있는 걸 어떻게 정하죠? 지표나 수치로?" <- 아니요. 책을 다 읽고, 2부 11장을 다시 읽어보면 어떨까요. 책 일부분을 그대로 따올까 생각도 했지만 문맥 무시하고 일부분만 가지고 '가치는 XX죠!' 라고 약 파는 사람 나올까봐 여기에 옮기지 않습니다. (여백이 부족한 게 아님.)


# 하나씩 완성하기

"왜 하나씩 완성해야 되죠?" <- 1부 2장, 3장 읽어보면 어떨까요. 17쪽 밖에 안됩니다. (그리고 책 전반에 걸쳐서 일관되게 설명하고 있는 내용이기도 합니다.)

"아 이거 개발자만 읽는 책이군요?" <- 아니요. 개발에 관련된 사람은 모두 읽어줬으면 좋겠습니다. 개발은 개발자만으로 이루어지지 않으니까요.

"저는 매니지먼트를 하는데요? || 저는 개발자가 아니고 사장이에요!" <- 오, 환영합니다. 2부에 정말 필요한 이야기가 가득 있습니다. 10장부터 구구절절 필요한 이야기입니다.16,17,18장이 제목부터 유혹적일 겁니다.

"뜬구름 잡는 소리만 있는 거 아니에요?" <- 아니요. 실천하기 어렵다고 뜬구름 잡는 소리가 되는 건 아니죠. 어떻게 실천할 것인가는 상황에 따라 다를 수 있는 거죠. 서문을 조금 인용하면 "소프트웨어 개발에는 본질적인 방법이 존재한다. 그 방법은 모두에게 도움을 준다."


???: 너의 소원이 무엇이냐.

나: 소프트웨어 개발을 순조롭게 하고 싶어! 모두 행복해질 수 있도록!

???: 정말 무슨 일이든 하겠느냐...

나: 무슨 수를 써서라도, 영혼이라도 팔겠어!

???: 그렇다면..가치가 높고 비용이 적게 들어가는 피처를 우선으로 개발하고 자주 배포해라.

소프트웨어 개발에는 본질적인 방법이 존재한다. 그 방법은 모두에게 도움을 준다.

가치를 주의깊게 관찰하고, 어떤 일을 해야 할지 적절히 골라내야만 합니다

이 책은 할 일 목록을 정리한 책이 아닙니다!


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
프로그래밍 스칼라 - 실용적인 스칼라 활용법을 익히는 가장 확실한 실전 바이블, 스칼라 2.11.x 버전 기준
딘 왐플러.알렉스 페인 지음, 오현석 옮김 / 한빛미디어 / 2016년 6월
평점 :
절판


솔직하게 털어놓자면, 1장 소개 부터 쉽지 않았다. 축약형은 익숙하지 않아서 거듭 읽어야 했고 동시성을 다룬 부분은 모르는 것 * 모르는 것 승수효과가 나서 그냥 예제 코드를 따라 해보는 데에 그쳤다.

1장이 맛보기라고 했는데 맛보기가 아니고 스칼라 자랑같았다.

1장에서 혼이 나가서 그런가 2장에서는 코드는 조금씩 눈에 들어왔다. 하지만 예제를 이어서 바꿔나가는 걸 보노라면 끊임없이 ‘우아한 표현’을 지도하는 선생님이 등 뒤에 서 있는 기분이었다. 3장까지도 기초란다. 도메인 특화 언어를 소개할 때는 ‘아 이거 진짜 자랑이구나’ 싶었다. try-catch-finally 는 제목만 보고도 너무 반가웠다. 조금이라도 아는 게 나와서;ㅅ;

예제를 따라하면서 조금씩 바꿔보는 편인데 2부 들어가서는 예제를 바꿀 엄두가 안났다. 30% 정도 실제로 예제만 따라 했을 뿐 내용을 제대로 이해하지는 못한 것 같다.


하지만 내게 어렵다는 것과는 별개로, 책은 매끄러웠다. 

번역은 어색함이 없었고, 예제는 눈에 잘 안들어 오지만 실행시켜 보면 아, 이럴 수도 있구나 하고 놀라곤 했다. 역시 프로그래머는 백문이 불여일타인 것일까. 책 서문에도 이럴 때는 이렇게 표기하겠다고 잘 써 두기도 했고 코딩폰트도 괜찮았다. 원본을 본 적이 없어서 모르겠지만 거의 흑백인 책에(grayscale?) 코드도 잔뜩 있는데 이정도로 만들기 어려웠을 것 같다.

책에 아쉬운 점이라면, 첫 장을 스칼라 자랑(?)으로 시작한 것과 압도하는 지식량으로 겁먹기 쉽다는 점(…) 하지만 일단 곁에 있으면 네가 이해할 때 까지 가르쳐주고야 말겠다는 선생님이 있는 기분이라 든든하긴 하다. 


이 책으로 곧 스터디도 꾸려진다고 하니까, 스터디에서 다시 한 번 천천히, 숨을 고르면서 습득해보려고 한다. 혼자 가면 멀리 못가니 함께 가려고 :)


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
코딩의 기술 - C와 C++ 게임 코드로 알아보는
오즈 모리하루 지음, 윤인성 옮김 / 한빛미디어 / 2016년 4월
평점 :
절판


0. 대상 독자+ 효과를 볼 수 있는 독자 : 리팩토링이 어려울까 걱정했던, 그러나 필요할 것 같다고 무의식/의식 어디선가 생각했던 사람에게 추천합니다. 책이 상냥하게 이끌어줍니다.


1.책이 쉽게 읽히고, 활용하는 데 까지 시간과 노력이 오래 걸리지 않습니다.(언어가 다름에도!)

문장이 쉽고 번역도 매끄러워서 술술 읽히는 데다, 예시로 충분한 코드를 볼 수 있어서 바로바로 이해가 됩니다. 그리고 예를 보고 내가 만드는 코드에 응용하기도 좋구요. 코드는 c, c++의 특징보다는 논리 위주로 되어있어서, 사용하는 언어에 상관없이 이해하기 좋습니다. 컴파일러를 사용하지 않는 언어도요! (실제로 제가 만든 java/javascript 코드에 금방 써먹을 수 있었습니다.)

1장의 일부를 예로 들면, 왜 작게/단순하게 만들어야 하는 지 코드로 보고 바로 납득 할 수 있었어요. 특히 '1.6.7 함수를 사용할 때 마음가짐'은 글쓰기에 비유했는데, 깔끔하면서도 이해가 잘 되는 보석같은 챕터였습니다.


2.좋은 코드를 만들기 위해서는 결국 디자인 패턴에 이르게 된다

토비의 스프링에서 강조했던 부분을 여기서도 볼 수 있었습니다. 좋은 코드로 가는 여정에 빼 놓을 수 없는 지식이죠. 물론 모든 패턴을 다루고 있는 것은 아닙니다. 코드를 만드는 과정에서 자주 활용하는 패턴을 설명하고 있어요. 패턴이 골치아프다고 생각했던 사람이라면 이 챕터가 몹시 반가울 것 같네요.


3. 새로운 방법 : 품질 측정 매트릭스

처음 보는 방법이라, 한 번 적용해보고 싶어졌습니다.


4. 이 책이 다루지 않는 내용

실제 게임 개발이나 프레임워크, 라이브러리에 대한 내용이 나오는 게 아닙니다. 게임 개발 관련 지식은 다른 책으로 얻어야 해요.

모든 디자인 패턴을 다루는 게 아닙니다. 그러니까 디자인 패턴이 궁금하면 뒤쪽 책날개에 '함께 읽으면 좋은 책'을 살펴보세요 :)


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
클라우드 시스템을 관리하는 기술 - 클라우드 관리자가 알아야 할 웹 규모 분산 시스템 설계와 운영
토머스 리몬첼리 외 지음, 류광 옮김 / 한빛미디어 / 2016년 2월
평점 :
절판


내용은 웹 프로그래머인 제게 어려웠습니다. 하지만 그건 타당한 어려움이었던 게, 이 책은 서문에서 밝히듯이 "시기를 타지 않는 근본적인 원리(principle)들과 관행(practice:실천사항)들"을 다루는 책이기 때문이라고 생각합니다.

또한 "종종 이상주의적인 태도를 취하는데, 이는 의도적인 것이다. 이 책은 독자가 추구해야 할 더 나은 상황을 제시한다. 이 책에서 우리 저자들은 기준을 높이고자 했다."고 밝히고 있듯이 도달해야 할 높은 지점을 제시합니다. 그러니 관련 지식이 부족한 제게 어려웠던 건 이상한 일은 아닙니다.


상세 목차를 보고 놀라기도 했고 어렵겠구나 예상도 했습니다. 지식을 생각보다 훨씬 더 폭넓게 다루고 있기 때문이었습니다. 한 번쯤 들어보긴 했는데 뭘까 싶은 것에서 부터 처음 들어보는 것 까지 - "의사소통 매커니즘", "개발운영 문화", KPI까지 다루고 있습니다.


특히 기대했던 것은 "개발운영 문화"였습니다. 잘못 이해하고 있던 부분을 풀어준 챕터이기도 합니다. 


그래서 읽고 나니, 이 책은 클라우드 시스템을 구축하고 운영하는 데 필요한 지식을 모두 통합한 책이라고 생각하게 되었습니다.


시스템 관리자가 아닌 웹 프로그래머가 읽어서 그래겠지만, 여러 분야의 지식과 단어를 알게 되어 좋았습니다.


그리고 이 책은 부록에 문서 양식과 예제 문서가 있어서 어떻게 문서를 쓸 지 고민을 줄이고 바로 가져다 쓸 수 있을 것도 마음에 들었고요. 연습문제도 생각을 다시 정리해보고, 뭘 모르는 지 돌이켜보게 하기 때문에(...) 좋았습니다.


굳이 아쉬운 점을 꼽자면 부록 E의 참고 문헌이 본문의 어느 부분과 연결되는 지 표시가 있었다면 시스템 엔지니어가 아닌 사람도 참고 문헌을 좀 더 쉽게 볼 수 있었을 것 같습니다.


그래서 제가 생각하는 이 책을 추천하고 싶은 대상은 이렇습니다.

- "시스템 관리자(system administrator)들과 그들을 관리하는 관리자(manager)" : 책에서 밝힌 대상 독자 

- "클라우드를 구성하는 서비스를 구축하고 운영하는 방법"을 알고 싶은 사람 : 클라우드 기반 서비스 사용법이 아니다!

- 호기심 많은 프로그래머 : 클라우드 시스템 구축/운영은 어떤 점이 어렵고 어떻게 돌파해나가는지 궁금한 사람



이 책은 시기를 타지 않는 근본적인 원리(principle)들과 관행(practice:실천사항)들을 다룬다.

이 책에서는 분산 시스템을 컴퓨터 과학자가 아니라 시스템 관리자의 관점에서 다룬다.

사람들은 위험한 행동을 피하려는 경향이 있기 때문에, 작은 일괄 단위 원리가 직관에 반하는 것처럼 느끼기도 한다. 소프트웨어를 실제 환경에 배치하는 데에는 위험이 따르며, 따라서 전통적으로 기업은 배치 빈도를 최소화한다. 그러면 마음이 편하긴 하겠지만, 사실 그것은 자승자박의 길이다.

재난(disaster)과 주용 가동 중단(outage)은 발생할 수밖에 없다. 사장에서 말단 직원까지 기업의 모든 사람은 이 사실을 인식해야 하며, 가동 중단을 받아들이고 그로부터 배운다는 사고방식을 가져야 한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
요리는 화학이다 - 확실히 성공하기 위한 70여 개 레시피의 모든 비밀과 해독
Arthur Le Caisne 지음, 임석 옮김, Jeremy Mariez 그림 / 도림북스 / 2015년 3월
평점 :
품절


'요리는 화학이다' 읽고 나서 짧게 정리

1. 내용 5/5 : 요리에 관심이 있는 사람이라면 재미있게 읽을 수 있을 것이다.

2. 번역 2/5 : 번역이 썩 매끄럽지 않다. 불어를 잘 모르지만, 영어였다면 원문이 떠오르는 정도가 아닐까 싶은 정도. 한국과 프랑스가 요리 재료가 다르고 같은 요리 재료를 다르게 부르기도 하고 비슷하게 쓸 수 있지만 엄밀하게 물성이 다른 재료도 있는데 그런 부분을 주석으로 처리해야 했다고 생각한다. 하지만 고기 부위에 대한 그림이나 설명도 한국 자료로 대체 했으면서 어떤 것(A)을 어떤 것(가)으로 바꾸었는지 설명조차 없다. 영어로 번역 되어있나 싶어서 아마존에서 책을 찾았으나 불어 버전만 있는 것 같다.

3. 구성 3/5: 책이 본래 일러스트에 대충 그린 것 같이 나와서 그걸 살린 건진 모르겠는데 읽기는 편하지 않다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo