장인정신

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

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

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

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

    [CHAPTER 12] 낮은 사기의 대가

    개발자들의 낮은 사기는 소프트웨어 프로젝트 실패이 주된 이유 중 하나다. 애자일 절차들과 애자일 실행 원칙들을 기반으로 개발하고 있다고 전제한다. 이번에는 애자일이 실행되고 있는 상황에서 낮은 사기로 발생하는 사례를 다룬다. 애자일 행오버 : 낮은 사기 거의 대부분의 회사들이 나름대로 애자일 전환을 경험했다. 애자일로 전환하고 몇 년 후, 예외 없이 제품 개발 역량이 여전히 뒤떨어져 있다는 것을 깨닫고 있다. 이 깨달음을 애자일 행오버라고 부른다. 애자일로 전환되었고 몇년이 지났으면 구성원 모두가 변화에 발 빠르게 대응하지 않을까? 왜 개발 역량이 떨어진다고 할까... 애자일 행오버에 빠진 회사들의 흔한 문제는 사기가 낮다는 것이다. 개발자들이 불평할 때가 많아지고... 관리자들이 실제로 뭘 해야하는지 ..

    [CHAPTER 11] 잘못된 면접 방식

    소프트웨어 장인을 유인하기 위해서는 면접을 할 때 무엇을 피해야 하는지 면접관이 잘 알고 있어야 한다. 이번 챕터는 잘못된 면접이 무엇인지 면접관과 지원자에게 알려주는 내용이다. 똑똑한 척하는 면접관을 세운다 지원자 앞에서 거만하고 오만한 사람이 되어서는 안 된다... 상황에 맞지도 않고 배배 꼬인 질문으로 똑똑한 척하는 것은 금물이다... 지원자를 아래로 내려다보는 면접관이라면 누가 면접관과 같이 일할 생각을 할까 권위적이며 계층적인 회사라 생각할 수 있다. 지원자 앞에서 겸손하고 정직해야 한다... 지원자의 이야기를 경청하고 그에게 마음을 여는 것이 중요하다. 실제로 무언가 새로운 것을 배울 가능성이 높다. 이전 챕터 중에서 프로페셔널은 배움을 위해 행동한다는 것은 면접에서도 해당되는 의미다. 수수께..

    [CHAPTER 10] 소프트웨어 장인 면접하기

    면접은 쌍방향이다. 흔히들 면접은 회사가 지원자를 평가하는 것만 아니라 지원자도 회사를 평가하는 자리라고 말한다. 이번 챕터는 지원자 입장과 회사의 입장에서 면접에 대한 이야기를 한다. 비즈니스 협상 면접을 볼 때, 일자리를 구걸하는 입장이 아니라는 것을 기억해야 한다. 비즈니스 협상을 하는 것이다... 장인들은 업계에서 나름의 평판이 있다. 이 평판에 해를 끼치는 것도 위험요소로 보아야 한다. 이전까지 언급되었던 잘못된 프로젝트들을 생각해보자. 그런 곳이 도움이 될까? 이러한(잘못된) 프로젝트에서 얻을 수 있는 것은 당황과 분노뿐이다. 생산적인 파트너십이 자리 잡히지 않은 회사들은 피해야 한다... 나쁜 파트너와 함께 일을 해야 할 이유는 없다. 특히 요즘처럼 좋은 소프트웨어 개발자가 부족한 시기에는 ..

    [CHAPTER 8] 길고 긴 여정, Part1 이념과 태도 마무리

    Part1 이념의 태도의 마지막, 길고 긴 여정이다. 커리어가 중심이 된 주제로 저자의 어린 시절에 대한 이야기로 시작된다. 브라질 어느 십대 소년의 이야기 브라질 시골, 평범한 집안의 십대 소년이었던 당시의 나는 런던에서 사는 것이 꿈이였다... 부모님은 나의 이런 꿈에 대해서 길게 대화하는 것을 피했다... 가능성이 거의 제로에 가까웠기 때문이다... 설령 영국으로 간다고 한들... 세계 유수 대학을 졸업한 인재들 사이에서 나의 이력서는 보잘 것이 없었다. 누구나 가고 싶은 기업들이 있다. 이력서가 화려한 인재가 많이 지원할 것이다. 그런 인재들 사이에서 경쟁을 해야한다면, 그들에 비해 나는 보잘 것이 없을거다. 그럼에도 불구하고 나는 결심했다. 고등학교를 졸업할 때 진로를 정했다... 최선의 선택은..

    [CHAPTER 7] 기술적 실행 관례

    지금까지 읽은 내용으로 기술적 실행 관례가 얼마나 중요한지 알 것이다. 그렇지만 관리자 입장은 비지니스로 체감을 못하는 경우가 많다. 이번 챕터에서는 기술적 실행 관례를 도입할 때 동료나 관리자를 설득하는데 도움이 될 내용으로 구성되어있다. 올바르 일 vs 올바른 실행 애자일 방법론은 빠르고 짧은 피드백 루프를 제공하여 우리가 올바른일을 실행하고 있는지 점검하도록 도와준다... 이러한 실행 관례들이 애플리케이션의 품질 사애가 어떠한지는 알려주지는 않기 때문에 이 부분에서 문제가 된다. 품질 상태가 비즈니스의 발목을 잡을 정도로 나쁘다는 사실을 깨달았을 때는 이미 많이 늦었을 가능성이 높다. 코드가 망가지고 있는지를 비즈니스 담당이 눈치채기는 대단히 어렵다, 반면에 개발자가 그것을 숨기는 것은 너무나 쉽다..

    [CHAPTER 6] 동작하는 소프트웨어

    소프트웨어 프로젝트가 실패하는 원인은 아주 다양하다. 잘못된 비즈니스 의사 결정, 우월한 경쟁자, 잘못된 프로젝트 관리 등 매우 많다. 소프트웨어 프로젝트에는 중요한 일들이 많아서 덜 중요해 보이는 것들이 있다. 어떤 조직에서는 유능한 관리자, 깊은 계층구조, 마이크로 매니지먼트, 엄격한 절차, 대량의 문서들이 프로젝트의 성공을 좌우한다고 생각한다. 많은 조직들이 소프트웨어 개발을 공장 라인으로 취급한다. 직접 경험한 SI 업계가 대다수 이런식으로 많이 진행한다. 이러한 조직에서 훌륭한 개발자를 끌어들이고 유지할 수 있는 경우는 거의 없다. 그저 그런 개발자들의 손에 전체 비즈니스를 맡기게 된다. 어떤 프로젝트에서는 개발자만 70~80명 있었는데, 대다수가 그저 그런 개발자였다. 함수선언도 못하던 10년..