번역서 서문을 쓰면서 좋은 점 한 가지는 원어 서적을 출간하고 나서 관찰했던 내용을 추가할 수 있다는 점입니다. 책을 읽기 전에, 여기 계신 여러분에게 몇 가지 요점을 알려 드리고자 합니다.
이 책은 얇습니다. 그런데 얇은 이유가 따로 있지요.
제 생각에 IT 서적을 주로 읽는 대부분의 독자는, 보통 많은 분량을 집중해서 읽지 않습니다. 그래서 이 책도 최소한의 분량으로 구성했습니다.
여기에 있는 개념은 소프트웨어 설계에 대해 제가 알고 있는(또는 안다고 생각하는) 것의 일부이지만, 제가 가장 자신 있게 설명할 수 있는 개념입니다. 더 많이 쓸 수도 있었으나 그 부분들은 오히려 안 하느니만 못할 우려가 있었죠.
이 책은 연작으로 기획 중인 최소 3권의 시리즈 중 첫 번째입니다. 여러분이 이 책의 내용을 적용하는 데 익숙해지고, 제가 추가 개념을 더 잘 설명할 수 있게 된다면 우리는 함께 2권을 더 나은 환경에서 준비할 수 있게 될 것입니다. 물론, 그렇다면 2권에 이어 우리는 또 3권도 준비하게 될 것입니다.
숙련된 개발자들 입장에서 보면, 이 책에는 새롭다고 할 만한 내용은 별로 없다고 말합니다. 그런데도 책을 읽고 나서는, 이전보다 더 명확히 스스로 설명할 수 있게 되었다고 고백합니다. 총 3부 중에서 1부에 있는 코드 정리 내용이 여러분에게는 기본에 불과한 것으로 드러나더라도 나머지를 계속 읽어 보기를 권합니다. 책이 얇은 만큼, 코드 정리는 금방 지나가고 대신, 여러분을 성공으로 이끌어 온 몇 가지 기술을 1부 이후에서 새로운 시각으로 설명했기 때문입니다.
비숙련 개발자들은 책의 초반부에서 기술 체크리스트를 제시했다고 말하기도 합니다. 코드 정리에 적용할 기회를 하나라도 찾아보세요. 친구들과 함께 포켓몬 게임하듯이 진행해 보세요. 그리고 모두 잡아 봅시다.
관리자로서는 엔지니어들이 여러 해 동안 이야기해 온 것을 이제야 잘 이해할 수 있게 되었다고 말합니다. 엔지니어링과 제품 관리자를 대상으로 한 것은 아니지만, 일단 책이 얇잖아요. 그만큼 누구나 빠르게 읽을 수 있는 책입니다.
익스트림 프로그래밍(XP)에서 얻은 한 가지 경험은, 국가 문화가 소프트웨어 개발에 미치는 영향이 매우 지대하다는 점이었습니다. ‘한국인으로서’ 여러분과 여러분의 팀에서는 소프트웨어 설계에 어떤 취향을 가질지 잘 모르겠습니다. 그러나 소프트웨어 설계를 형성하는 근본적인 힘은 여러분이 지구상에 어디에 계시던지 똑같이 작용합니다. 결합도는 결합도일 뿐입니다. 미래를 예측할 수 없다고 말하면 그저 미래를 예측할 수 없다는 의미입니다.
따라서 여러분은 이러한 저의 아이디어를 받아들이고, 의미 있다고 생각되는 선에서 적용해 봤으면 좋겠습니다. 1년 정도 지나서 다음 편에서 또 뵙겠습니다.
켄트 벡,
2024년, 샌프란시스코
원문 전문도 함께 공개합니다.
One advantage of writing the preface for translations of a work is that I can include observations from the release of the book in its original language. Here are some points I'd like you to know before you start reading.
This book is short. It's short for reasons, though.
I believe most readers only read the first 100 pages of technical books, so I stopped after 100 pages.
The concepts here are a fraction of what I know (or think I know) about software design, but they are the concepts I'm most confident in explaining. I could have written more, but the explanations would have been worse.
It's the first of at least 3 books. When you have had a chance to get comfortable applying the contents of this book & I have gotten better at explaining more concepts, then we will both be better prepared for book 2. Book 2 will prepare us for book 3.
Senior developers have reported that there is little new information for them in this book. However, after reading it they have been able to explain themselves more clearly than before. If the first third, the tidyings, see, basic to you, I invite you to keep reading. Because the book is short, the tidyings will soon be over & you will find new explanations for some of the techniques that have made you successful.
Junior developers have reported that the early parts of the book have given them a checklist of skills. Try to find one opportunity to apply each tidying. Make it a kind of Pokemon game with your friends--catch 'em all.
Managers have reported being able to better understand what engineers have been talking about all these years. While not directed at engineering & product managers, it's a short book. You can wade through it quickly.
One experience from Extreme Programming was the profound influence national culture has on software development. I don't know how being Korean will flavor software design for you & your team. However, the fundamental natural forces shaping software design don't care about your location on a map. Coupling is coupling. Not being able to predict the future is not being able to predict the future.
I invite you to take these ideas & apply them in ways that make sense to you. I'll see you in a year or so with the next installment.
Kent Beck
San Francisco, 2023