실용주의

    [CHAPTER 15] 실용주의 장인정신

    좋은 품질이 되기까지 오랜 시간이 걸린다는 고정관념이 있다. 시작부터 저자의 말이다. 이전까지의 이야기를 몰라도 개발 경험이 있다면 좋은 품질이 대충 무엇인지 알 수가 있다. 나도 여러번의 비현실적인 일정 속에서 품질을 신경 쓸 수가 없었고, 좋은 품질이란 시간이 필요해야겠다는 관념이 있었는데 저자는 고정관념이라 표현한다. 안타깝게도 대부분 저급 품질의 싸고 빨리 만들 수 있는 코드를 선택하는 상황이 현실이다. 누구나 흔하게 접할 수 있는 상황이다. 이런 상황에 저자는 다음과 같이 말한다. '고품질은 고비용'이라는 것이 편견임을 설명한다. 시간이 필요하지 않더라도 코드의 품질을 유지할 수 있다는 저자의 말이다. 품질은 선택사항이 아니다 비용이나 시장 타이밍 같은 트레이드 오프같은 문제만 없다면 누구든 품..

    [CHAPTER 14] 기술적 변화의 실행

    새로운 기술적 실행 관례나 도구를 도입하거나 그러한 것들에 대한 태도를 바꾸려 할 때 상사나 관리자를 설득하는 것보다 실무 개발자들을 설득하기가 훨씬 어려운 편이다. 시작부터 저자가 말하는 내용이다. 변화를 시도하기 위해선 같은 실무 개발자를 설득하는 게 더 어렵다고 한다. 기술 변화를 시도할 때 발생하는 회의론과 새로운 아이디어에 좀 더 열린 태도를 갖도록 설득하는 방법을 살펴본다. 변화를 반대하는 다양한 회의론과 그런 실무 개발자들을 설득하는 방법을 알려주는 게 이번 챕터의 내용이다. 회의론의 종류 새로운 문화, 실행관례, 도구, 절차를 도입할 때 가장 먼저 어떤 반발에 부딪힐지 미리 파악해야 한다. 테렌스 라이언은 그의 저서 [기술적 변화 추진하기]에서 회의론의 종류 를 다음과 같이 정리했다. - ..

    [CHAPTER 1] 21세기의 소프트웨어 개발, Part1 이념과 태도 시작

    저자는 1990년대 복잡하고 난해한 코드로 남이 이해 못하면 실력이 좋다고 한다. 그리고 7년차에 '숙련된 개발자'가 아닌 '소프트웨어 아키텍트'로 커리어가 전환이 되면서 겪는 이야기를 한다. 아키텍처 팀은 개발자들이 따라야만 하는 디자인 패턴 북을 만드는 막강한 권한이 있다 (생략) 아키텍트는 비즈니스 분석가와 대화하며 요구사항의 기능적/비기능적 요소들을 이해하고 (생략) 요구사항과 고객 환경이 어떻게 바뀔지 무당이 점치듯 추측해야 한다. 예측하는 것은 거의 불가능했다. (생략) 시스템이 커지더라도 부작용이 적을지 고민해야 했다. 이에 대한 대응책이 추상화를 하고, 요소마다 디자인 패턴을 적용하는 것이다. 오늘날에는 그런 방식을 오버 엔지니어링이라고 한다. 어리석지만 그 당시에는 아키텍트의 혜안이라고 ..