더 훌륭한 소프트웨어 설계자가 되려면, 훌륭한 소프트웨어의 설계가 어떻게 발전해왔는지 그 과정을 공부하는 것이 훌륭한 설계 자체를 공부하는 것보다 훨씬 중요하다. 그 발전 과정 속에 진짜 지혜가 숨어 있기 때문이다. -Joshua Kerievsky의 Refactoring to Patterns
부모에게서 물려받은 것을 진정으로 소유하려면, 그것을 얻는 과정을 처음부터 다시 반복해야 한다.-괴테 That which thy fathers have bequeathed to thee, earn it anew if thou wouldst possess it. - Goethe
구글링을 하던 중 발견한 재미있는 카툰을 공유하고자 합니다. 이 만화를 그린 사람은 누구일까요? 아마 프로그래밍을 업으로 하는 사람일지도 모르겠습니다.
영어해석이 불완전해서 좀 그렇지만 나름대로 옮겨보면
의뢰인이 설명한 것 ≠ 프로젝트 리더가 이해한 것 ≠ Analyst(분석가?)가 설계한 것 ≠ 프로그래머가 작성하는 것 (코드일까요?) ≠ 사업 컨설턴트가 설명하는 것 ≠ 프로젝트가 문서화된 방식 ≠ 실제로 설치된 것(?) ≠ 의뢰인이 청구한 것(?) ≠ 프로젝트가 지원된 방식 ≠ 의뢰인이 진정 원했던 것
이렇게 모두 다를 수 있다니 이해하고 실행에 옮기는 것이 이렇게나 힘듭니다.
시험칠 때 귀에 못이 박히도록 들었던 말, '출제자의 의도를 파악하라'는 말, 이건 시험만 치고나서는 잊어버릴 말이 아닌 듯 합니다.
베르나르 베르베르가 '쥐의 똥구멍을 꿰멘 여공'이란 재미있는 이름의 책에서 썼던 비슷한 글을 옮겨봅니다.
내가 생각하는 것, 내가 말하고 싶어 하는 것, 내가 말하고 있다고 믿는 것, 내가 말하는 것,
그대가 듣고 싶어 하는 것, 그대가 듣고 있다고 믿는 것, 그대가 듣는 것, 그대가 이해하고 싶어 하는 것, 그대가 이해하고 있다고 믿는 것, 그대가 이해하는 것,
내 생각과 그대의 이해사이에 이렇게 열가지의 가능성이 있기에 우리의 의사소통에는 어려움이 있다
A RIVER IS A LINEAR BODY OF WATER THAT FLOWS IN A GENERAL DIRECTION UNTIL IT EMPTIES INTO A LARGER RIVER OR THE SEA OR OCEAN.
A LAKE IS A BODY OF WATER INTO WHICH STREAMS OR RAIN RUNOFF FLOWS AND EITHER HAS NO OUTLETS OR THE OUTFLOW IS SMALLER THAN THE INFLOW.
A SEA IS A LOCALIZED AREA IN THE SALT WATER THAT COVERS 70% OF THE EARTHS SURFACE THE TWO EXCEPTIONS THAT I AM AWARE OF ARE THE CASPIAN SEA AND THE GREAT SALT LAKE.
AN OCEAN IS A LARGER LOCALIZED AREA OF THE SALT WATER COVERING 70% OF THE EARTHS SURFACE.
WATER IS THE BASIS OF LIFE ON EARTH WITH ALL LIVING THINGS BEING COMPOSED OF IT TO A GREATER OR LESSER DEGREE. THE HUMAN BODY IS 60 TO 70 % WATER. ALL FRUITS AND VEGETABLES HAVE A HIGH DEGREE OF WATER IN THEIR MAKEUP WITH THE WATER MELON BEING ABOUT 90 TO 95 % WATER.NUFF SAID.