소프트웨어 장인
[CHAPTER 16] 소프트웨어 장인으로서의 커리어 (마지막 챕터)
드디어 기나긴 여정의 마지막이다. 이번 챕터는 이전까지의 모든 주제를 총망라하는 포괄적인 주제다. 소프트웨어 개발자는 멋진 직업이다. 주변을 둘러보자. 오늘날 생산되는 거의 모든 것들이 소프트웨어의 뒷받침으로 가능하다. 언제나 우리 주변에는 소프트웨어의 흔적이 가득하다. 매일 손에서 뗄 수 없는 스마트폰부터 시작하여 매일 먹는 음식까지 모두가 소프트웨어의 도움을 받아 관리되고 이동되어 우리의 앞까지 오게 된다. 차가운 맥주를 마시거나 TV에서 수백 개의 채널을 볼 수 있는 것 또한 소프트웨어 덕분이다. 어떻게 우리의 일을 자랑스럽게 생각하지 않을 수 있을까? 어떻게 우리의 일을 그저 출퇴근하는 생계수단으로만 치부할 수 있나? 소프트웨어 개발자들은 우리가 살고 있는 세상이 진화해 나가는데 꼭 필요한 존재다..
[CHAPTER 15] 실용주의 장인정신
좋은 품질이 되기까지 오랜 시간이 걸린다는 고정관념이 있다. 시작부터 저자의 말이다. 이전까지의 이야기를 몰라도 개발 경험이 있다면 좋은 품질이 대충 무엇인지 알 수가 있다. 나도 여러번의 비현실적인 일정 속에서 품질을 신경 쓸 수가 없었고, 좋은 품질이란 시간이 필요해야겠다는 관념이 있었는데 저자는 고정관념이라 표현한다. 안타깝게도 대부분 저급 품질의 싸고 빨리 만들 수 있는 코드를 선택하는 상황이 현실이다. 누구나 흔하게 접할 수 있는 상황이다. 이런 상황에 저자는 다음과 같이 말한다. '고품질은 고비용'이라는 것이 편견임을 설명한다. 시간이 필요하지 않더라도 코드의 품질을 유지할 수 있다는 저자의 말이다. 품질은 선택사항이 아니다 비용이나 시장 타이밍 같은 트레이드 오프같은 문제만 없다면 누구든 품..
[CHAPTER 14] 기술적 변화의 실행
새로운 기술적 실행 관례나 도구를 도입하거나 그러한 것들에 대한 태도를 바꾸려 할 때 상사나 관리자를 설득하는 것보다 실무 개발자들을 설득하기가 훨씬 어려운 편이다. 시작부터 저자가 말하는 내용이다. 변화를 시도하기 위해선 같은 실무 개발자를 설득하는 게 더 어렵다고 한다. 기술 변화를 시도할 때 발생하는 회의론과 새로운 아이디어에 좀 더 열린 태도를 갖도록 설득하는 방법을 살펴본다. 변화를 반대하는 다양한 회의론과 그런 실무 개발자들을 설득하는 방법을 알려주는 게 이번 챕터의 내용이다. 회의론의 종류 새로운 문화, 실행관례, 도구, 절차를 도입할 때 가장 먼저 어떤 반발에 부딪힐지 미리 파악해야 한다. 테렌스 라이언은 그의 저서 [기술적 변화 추진하기]에서 회의론의 종류 를 다음과 같이 정리했다. - ..
[CHAPTER 13] 배움의 문화
구성원들이 동기가 부여되어 있지 않거나 자신의 일 자체에 별 관심이 없으면 그 어떤 변화도 효과적으로 일으킬 수 없다. ... 관리자들은 상황을 얼마든지 더 악화시킬 수 있다. 개발자들이 새로운 규칙을 준수하도록 업무 고과나 보너스를 연계시키는 것이다. 이전 챕터와 이어지는 내용이다. 관리자가 잘못된 방법으로 변화를 이끄려 한다면 더 안 좋은 상황이 될 거라 말한다. 이 장에서는 배움의 문화를 만들기 위해 개발자들이 할 수 있는 여러 활동들에 대해 살펴본다. 잘못된 방향으로 동기 부여하기 어느 유명한 투자 은행에서 회사에 일을 맡겼다. 고객사의 요구사항은 매우 특정적이었다. "우리의 레거시 코드 베이스에 단위 테스트를 역을 끼워 맞춰줄..." 작업을 고객사가 아닌 우리 회사의 사무실에서 하기를 바랐다. ..
[CHAPTER 12] 낮은 사기의 대가
개발자들의 낮은 사기는 소프트웨어 프로젝트 실패이 주된 이유 중 하나다. 애자일 절차들과 애자일 실행 원칙들을 기반으로 개발하고 있다고 전제한다. 이번에는 애자일이 실행되고 있는 상황에서 낮은 사기로 발생하는 사례를 다룬다. 애자일 행오버 : 낮은 사기 거의 대부분의 회사들이 나름대로 애자일 전환을 경험했다. 애자일로 전환하고 몇 년 후, 예외 없이 제품 개발 역량이 여전히 뒤떨어져 있다는 것을 깨닫고 있다. 이 깨달음을 애자일 행오버라고 부른다. 애자일로 전환되었고 몇년이 지났으면 구성원 모두가 변화에 발 빠르게 대응하지 않을까? 왜 개발 역량이 떨어진다고 할까... 애자일 행오버에 빠진 회사들의 흔한 문제는 사기가 낮다는 것이다. 개발자들이 불평할 때가 많아지고... 관리자들이 실제로 뭘 해야하는지 ..
[CHAPTER 11] 잘못된 면접 방식
소프트웨어 장인을 유인하기 위해서는 면접을 할 때 무엇을 피해야 하는지 면접관이 잘 알고 있어야 한다. 이번 챕터는 잘못된 면접이 무엇인지 면접관과 지원자에게 알려주는 내용이다. 똑똑한 척하는 면접관을 세운다 지원자 앞에서 거만하고 오만한 사람이 되어서는 안 된다... 상황에 맞지도 않고 배배 꼬인 질문으로 똑똑한 척하는 것은 금물이다... 지원자를 아래로 내려다보는 면접관이라면 누가 면접관과 같이 일할 생각을 할까 권위적이며 계층적인 회사라 생각할 수 있다. 지원자 앞에서 겸손하고 정직해야 한다... 지원자의 이야기를 경청하고 그에게 마음을 여는 것이 중요하다. 실제로 무언가 새로운 것을 배울 가능성이 높다. 이전 챕터 중에서 프로페셔널은 배움을 위해 행동한다는 것은 면접에서도 해당되는 의미다. 수수께..
[CHAPTER 10] 소프트웨어 장인 면접하기
면접은 쌍방향이다. 흔히들 면접은 회사가 지원자를 평가하는 것만 아니라 지원자도 회사를 평가하는 자리라고 말한다. 이번 챕터는 지원자 입장과 회사의 입장에서 면접에 대한 이야기를 한다. 비즈니스 협상 면접을 볼 때, 일자리를 구걸하는 입장이 아니라는 것을 기억해야 한다. 비즈니스 협상을 하는 것이다... 장인들은 업계에서 나름의 평판이 있다. 이 평판에 해를 끼치는 것도 위험요소로 보아야 한다. 이전까지 언급되었던 잘못된 프로젝트들을 생각해보자. 그런 곳이 도움이 될까? 이러한(잘못된) 프로젝트에서 얻을 수 있는 것은 당황과 분노뿐이다. 생산적인 파트너십이 자리 잡히지 않은 회사들은 피해야 한다... 나쁜 파트너와 함께 일을 해야 할 이유는 없다. 특히 요즘처럼 좋은 소프트웨어 개발자가 부족한 시기에는 ..
[CHAPTER 9] 인재 채용, Part2 완전한 전환 시작
인재 채용에 대한 이야기다 채용하는 입장이 아니여도 내용을 이해할 수 있다. 오히려 취준생, 주니어에게 채용에 관한 좋은 이야기를 들려준다. 챕터 시작부터 나오는 문구다. 새로운 인재를 채용할 때 현재의 문제를 더 키우지 않아야 한다는 것을 우선으로 고려해야 한다.... 기준에 미달되는 개발자를 채용하는 것도 어리석은 일이다... 회사들이 최고의 인재를 원한다고 표방하지만 최고의 인재가 실제로 어떤 의미인지는 잘 모르는 경우가 허다하다... 전형적인 채용 공고 회사에서 인재를 구하면 채용 공고는 빠질 수가 없다. 금융 IT 업계에서는 아래와 같은 공고를 쉽게 볼 수 있다. - 자바프로그래밍 경력(5년 이상) - 스프링 프레임워크 경험 - 금융권 IT 업무 경험(2년 이상) - 전산 전공(석박사 우대) ...