본문 바로가기
SW

소프트웨어 장인 - Part 1 : 이념과 태도 (3 ~ 4장) (Software Craftsman)

by 라꾸스떼(YR) 2019. 12. 9.
반응형

[이전 장]

https://yrok.tistory.com/entry/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EC%9E%A5%EC%9D%B8-Software-Craftsmanship-Part-1-%EC%9D%B4%EB%85%90%EA%B3%BC-%ED%83%9C%EB%8F%84-1-2%EC%9E%A5

 

소프트웨어 장인 - Part 1 : 이념과 태도 (1 ~ 2장) (Software Craftsmanship)

[1장] 21세기의 소프트웨어 개발 [고참 개발자] - p32 개발자 세계에 있어서 고참/신참의 차이는 '경험' 뿐이라고 생각한다. 그 외의 개발자로서의 태도와 임무는 동일하지 않을까? [새로운 현실] - p33 이제 개발..

yrok.tistory.com

[3장] 소프트웨어 장인정신

[더 나은 비유] - p57

소프트웨어 장인정신은 개발자가 가져야할 삶의 태도가 아닐까 싶다. 단순히 '일'을 하는 데 필요한 것이 아닌, 전체적인 삶에 영향을 끼치는 태도 말이다.

 

[위키피디아에서의 정의] - p57

'소프트웨어 장인정신'은 소프트웨어를 개발할 때 개발자 스스로의 코딩 스킬을 강조하는 개념이다.

 

[좀더 주관적인 정의] - p57

'소프트웨어 장인정신은 소프트웨어 개발자가 스스로가 선택한 커리어에 책임감을 가지고, 지속적으로 새로운 도구와 기술을 익히며 발전하겠다는 마음가짐이다. 그리고 책임감, 프로페셔널리즘, 실용주의 그리고 소프트웨어 개발자로서의 자부심을 의미한다.'

저자의 정의에 전적으로 동의하는 바이다.

 

[짧은 정의] - p58

결론은 프로페셔널리즘이다.

 

[정의 이상의 의미] - p58

일은 프로페셔널하게! 동료들에게는 든든한 멘토가 될 수 있도록!

 

[공예, 사업, 엔지니어링, 과학 또는 예술] - p59

장인은 시키는 일만 하는 노동자가 아닌 책임감, 사명감을 가지고 작품을 만드는 프로이다.

 

[소프트웨어 장인정신의 토론 이력] - p61

저자는 책 2권을 추천해주었다.

'실행을 넘어선 장인정신으로' - 1. 클린 코더 : 애자일소프트웨어 장인정신을 위한 핸드북 & 2. 클린 코더 : 프로페셔널 프로그래머의 행동 강령

 

<소프트웨어 장인정신 모임>

-

 

<경계를 지나> - p63

저자는 책 2권을 추천해주었다.

방랑기(the wandering book), 도제의형태:소프트웨어 장인을 장려하기 위한 가이드북

 

<장인 교환 프로그램>

-

 

<소프트웨어 장인 커뮤니티>

-

 

<소프트웨어 장인정신 매니페스토>

-

 

<매니페스토> - p67 (책 발췌)

소프트웨어 장인을 열망하는 우리는, 스스로의 기술을 연마하고, 다른 사람들이 기술을 배울 수 있도록 도움으로써 프로페셔널 소프트웨어 개발의 수준을 높인다. 이러한 일을 하는 과정에서 우리는 다음과 같은 가치들을 추구한다. 동작하는 소프트웨어뿐만 아니라, 정교하고 솜씨 있게 만들어진 작품을, 변화에 대응하는 것뿐만 아니라, 계속해서 가치를 더하는 것을, 개별적으로 협력하는 것뿐만 아니라, 프로페셔널 커뮤니티를 조성하는 것을, 고객과 협업하는 것뿐만 아니라, 생산적인 동반자 관계를새롭고 혁신적인 절차를 제안만 하는 것이 아니라, 개발자 스스로가 자신이 하는 일 자체에 얼마나 책임감과 열정이 있는지 보이려는 것이다.

 

<'동작하는 소프트웨어뿐만 아니라, 정교하며 솜씨 있게 만들어진 작품을'> - p68

소프트웨어가 스펙대로 동작하게끔 하는 것은 크게 어려운 일은 아닐 것이다. 하지만 '프로'라면 그 이상의 것을 만들어야 한다고 생각한다.

여기서 그 이상은 스펙보다 추가된 무엇가가 아닌 개발자들 사이에서 고개를 끄덕일 만한 꾸준히 관리될 수 있는 소프트웨어라 말하고 싶다. 

 

<'변화에 대응하는 것뿐만 아니라 계속해서 가치를 더하는 것을'> - p70

저자는 '소프트웨어의 생명을 늘리면서 변화에 빠르게 대응할 수 있도록 유지하는 것이 우리의 주요 목표다.'라고 말한다.

끊임없이 유지보수가 될 수 있는 확장 가능한 상태를 유지되어야 함을 강조하고 있다. 

"같은 일을 반복하면서 다른 결과를 기대하는 것은 미친 짓이다." - 알버트 아인슈타인

 

<'개별적으로 협력하는 것뿐만 아니라 프로페셔널 커뮤니티를 조성하는 것을'> - p71

'프로'라면 협업은 기본이고 오픈 소스 프로젝트에 기여하며 지식을 나눌 줄 알아야 한다.

이러한 이유로 블로그도 시작하게 되었다. 

 

<'고객과 협업하는 것 뿐만 아니라, 생산적인 동반자 관계를'> - p73

'프로'는 책임감을 갖고 주도적으로 일에 임해야 한다. 월급쟁이라 하여 프로젝트에 대한 책임에 자유로워져서는 안된다.

 

<생산적 동반자 관계가 될 준비가 안 된 고객> - p74

'절이 싫으면 중이 떠나라.' 마음에 드는 속담은 아니지만 별 수 없는게 현실이다...(아직까진 마음에 든다...!)

 

<매니페스토의 문제점> - p75

매니페스토가 너무 이상적일 수도 있지만, 제대로 따르고 있는지에 대해 스스로에게도 질문을 해보아야 한다. 제발 좀...

 

[4장] 소프트웨어 장인의 태도

'오래 전에 작성했던 코드를 지금에 와서도 고칠 부분이 없어 보인다면, 그것은 그동안 배운 것이 없다는 뜻이다.'

'내 커리어와 프로페셔널로서의 미래는 누구의 책임인가?' 저자의 말이 뼈를 때렸다...

배움엔 끝이 없고, 배움을 게을리한 어두운 미래는 온전히 나의 책임이다...

 

[내 커리어의 주인은 누구인가] - p79

'프로'라면 프로답게 스스로의 커리어를 책임지고 주도적으로 행동해야 한다. 자기 계발 및 투자를 멈추지 말자.

 

<고용자-피고용자 관계> - p81

소프트웨어 개발자 중 '프로'라면 프로답게 행동해야 함을 강조한다.(저자는 공장 노동자를 놓고 비교하지만, 굳이 비교를 하고 싶지는 않다.)

 

[끊임없는 자기계발]

'오늘날 우리는 계속해서 늘어만 가는 정보 속에, 계속해서 줄어만 가는 의미를 목도하는 세상에서 살고있다.' - 장 보드리야르

 

<독서, 많은 독서> (책 발췌)

특정 기술에 대한 서적 - Node.js, Java 등

특정 개념에 대한 서적 - TDD, 도메인 기반 개발, OOP, 함수형 프로그래밍, NoSQL 등

행동양식에 대한 서적 - 애자일 방법론, 소프트웨어 장인정신, 린 소프트웨어 개발 등

혁명적 서적(고전) - 실용주의 프로그래머, The Mythical Man-Month, 디자인 패턴(GoF), 테스트 주도 개발, 익스트림 프로그래밍, 클린코더, 소프트웨어 장인정신, 리펙토링 등

 

<블로그> - p84

저자의 뜻을 본받아 블로그를 개설하고 '1일1글'이라는 목표를 세워 공부하며 자기계발을 꾸준히 하려고 노력하고 있는데... 너무 힘들다...ㅠㅠ

 

<기술 웹사이트>

-

 

[팔로우할 리더 찾기]

 

<소셜미디어>

-

 

[끊임없는 훈련] - p86

"훈련을 할 때는 문제의 해결 자체가 아니라 해결에 사용한 테크닉에 집중해야 한다. 훈련을 할 때는 그 문제를 '어떻게' 해결하는지가 중요하다. 훈련할 때는 작성 가능한 최선의 코드를 만드는데 집중해야 한다."

저자의 말을 염두하고 알고리즘 공부도 시작해보아야 겠다.

 

<카타(품세)>

-

 

<펫 프로젝트> - p90

평소 관심사가 '경제 및 금융, 투자'(결국 돈...) 이다 보니 관심사에 맞는 사이드 프로젝트를 재밌게 진행해보려 한다.

원래는 인디 게임에도 관심이 많지만... 그건 다음 사이드 프로젝트로! 

무엇보다 사이드 프로젝트는 '흥미'가 가장 중요한 요소인 것 같다. 끊임없는 원동력이 필요하기 때문이다.

 

<오픈 소스> - p92

늘 어떻게 하면 오픈 소스에 기여할 수 있을지에 고민이 많다. 활용하는 것은 그래도 자신감이 넘치고 곧 잘 써먹는 것 같다...

관심 가는 프로젝트들부터 기여를 해보아야 할 텐데 자신이 없다. 그렇다고 개인 프로젝트 공개를 통해 기여하자니 부끄럽다...

 

<페어 프로그래밍> - p93

가끔은 회사에서도 페어 프로그래밍이 필요할 때를 느낀다. (답답한 경우... 아니다. 나부터 잘하자!) 

 

[사회활동: 다른 개발자들과 어울리기]

 

<'개별적으로 협력하는 것뿐만 아니라, 프로페셔널 커뮤니티를 조성하는 것을'>

-

 

[의도한 발견] - p96

"나는 아테네에서 가장 똑똑한 사람임에 틀림없다. 왜냐하면 나는 내가 아무것도 모른다는 사실을 알기 때문이다" - 소크라테스

인생이 과연 계획대로 흘러갈까? 나름 계획대로 잘 살아왔다고 느끼지만 점점 계획을 지킨다는게 힘들고 계획을 세우는 것 조차 두려워 지고 있다.

'프로'답게 잘 헤쳐나가길...

 

[일과 삶의 균형] - p98

"진실은, 우리는 항상 시간이 있다는 것이다. 시간을 최적화하지 못할 뿐이다."

저자가 자꾸 뼈때린다. ㅠㅠ

 

<시간 만들기> - p99

"혼자서 학습해서 배울 수 있는 것에는 한계가 있다."

아무래도 의지가 약해지는 것 같다. 스터디 모임 혹은 강의를 통해서라도 의지를 굳게 해야 되나 싶다.

 

<집중: 뽀모도로 기법> - p100 (책 발췌)

1. 어떤 일을 할지 정한다.

2. 뽀모도로(타이머)를 25분에 맞춘다.

3. 타이머가 끝날 때까지 그 일을 한다.

4. 짧게 쉰다(보통 5분).

5. 매 4회의 '뽀모도로'마다 길게 쉰다(15~30분).

"뽀모도로를 하는 동안에는 절대 방해받아서는 안 된다. 뽀모도로를 잠시 멈추는 것이 아니라 종료해야 한다.

새로운 뽀모도로를 처음부터 다시 시작해야 한다."

이 책을 통해 처음 접하게 된 '시간 관리 기법'이다. 정말 강력 추천하는 방법으로 평소 의지가 약하거나 집중할 수 없어 미루었던 일들을 차례 차례 해결할 수 있게 해주고 있다. 타임타이머가 없더라도 관련 앱도 많으니 꼭 해보길 추천한다. (하지만 타임타이머를 사용 중이다... 관련 후기도 포스팅해야지...)

 

<균형> - p101

과유불급. 일관되게 하는 것이 무엇보다 중요한 것 같다.

[요약] - (책 발췌)

1. 소프트웨어 장인정신은 소프트웨어 개발자의 프로페셔널리즘을 말한다.

2. 소프트웨어 장인은 고객과 고용자/피고용자 관계가 아닌 생산적인 동반자 관계를 기대한다.

더불어 유능한 프로페셔널이 좋은 평판으로 이어짐을 이해하고, 프로젝트를 성공적으로 꾸준히 이끌어내 고객을 만족시킨다.

3. 소프트웨어 장인은 소프트웨어를 장인의 작품으로 여기며 자신의 기술을 마스터하기 위해 모든 노력을 기울인다.

4. 소프트웨어 장인으로서 성공적인 커리어를 가지려면 결단력과 열정이 필요하다. 집중하지 못하면 많은 노력들이 낭비된다.

배움과 훈련이 멈추는 순간 우리의 커리어도 멈추버린다.

5. 시간이 없다는 말은 더 이상 변명이 될 수 없다. 우리는 항상 시간이 있다. 우리는 모두 정확히 같은 만큼의 시간이 주어진다.

차이점은 우리가 그 시간을 어떻게 쓰느냐일 뿐이다.

 

[다음 장]

https://yrok.tistory.com/entry/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EC%9E%A5%EC%9D%B8-Software-Craftsmanship-Part-1-%EC%9D%B4%EB%85%90%EA%B3%BC-%ED%83%9C%EB%8F%84-5-6%EC%9E%A5

 

소프트웨어 장인 - Part 1 : 이념과 태도 (5 ~ 6장) (Software Craftsmanship)

[5장] 영웅, 선의 그리고 프로페셔널리즘 '우리는 프로페셔널하지 못했다. 우리가 왜 그 일을 하는지 스스로 묻지 않았다. 고객이 실제로 무엇을 원하는지 이해하려 하지 않았고 다른 대안을 제시하지도 않았다...

yrok.tistory.com

 

반응형

댓글