Software Engineering Note

소프트웨어 장인 본문

소프트웨어 장인

devmoons 2016. 6. 7. 01:49



페북 타임라인에 회자되길래 구입한 책. 구입한지는 꽤 되었는데 이제서야 다 읽었다.


전체적으로 필체가 강력하다고 해야할까? "~하면 안된다. 그건 프로페셔널이 아니다." 이런 문구가 자주 등장한다.

아주 대쪽같은 선비가 훈계를 하는 그런 느낌이랄까? 덕분에 정신이 번쩍나는 기분도 느낄 수 있었다.


저자는 브라질 출신으로 어릴적부터 프로그래밍을 해왔다고 한다.

그러다 유럽으로 가서 일을하고싶어 소프트웨어 개발자를 직업으로 선택하게 되었고, 그 이후로 자신이 전문가로 거듭나게 된 이야기를 간간히 섞어서 이야기 해준다. 예를 들면, 그 당시에는 난해한 코드를 짜서 코드를 읽는 사람들을 곤란에 빠뜨리는게 실력이 좋은 것으로 인정 받았었는데, 사수를 만나서 까인(?) 경험이 충격이었다고.


결국, 개발문화가 잘 정착되고 그걸 바탕으로 좋은 소프트웨어가 출시 되려면 동기부여된, 열정적인 장인들이 많아져야 한다고 이야기 한다.

그래서 그냥 유행하는 방법론을 따르는 것만이 장인이 되는길이 아님을 분명히 명시하고 있다.



다음은 생각나는 몇가지와 의견. 다분히 개인적인 의견임을 미리 밝혀둔다.


코딩은 개발자가 해야 하는 많은 일들 중에 하나일 뿐이다. 소프트웨어 개발자의 역할이 점점 커지고 있다.


요는, 그냥 개발만 하는 시절은 지나갔다는 것인데 개인적으로 어느정도 공감이 간다.

어디서든 기술영역 이야기가 나오면 개발자에게 문의가 오게 되어있고, 회의에도 수시로 참석해서 가부를 따져보게 된다.

프로젝트 진행시에 일정산정은 물론, 진척상황도 공유해야 하고 필요에 따라서는 대외협력도 해야한다.

실제로 진행중인 프로젝트에서 해외기업에 문의할 내용이 있었는데 개발과 관련된 부분이라 직접 메일을 보낸적도 있다.


이런게 무리한 요구일까? 생각해보면 점점 개발자의 역할이 커지고 있고 받아들여야 하지않을까 하는 생각이 든다. 

어차피 개발자가 그 내용에 대해서 가장 잘 알고있고, 결과물을 만들어내기 때문이다.



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


소프트웨어 장인을 열망하는 우리는, 스스로의 기술을 연마하고, 다른 사람들이 기술을 배울 수 있도록 도움으로써 프로페셔널 소프트웨어 개발의 수준을 높인다. 이러한 일을 하는 과정에서 우리는 다음과 같은 가치를 추구한다.


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

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

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

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


이 왼쪽의 항목들을 추구하는 과정에서, 오른쪽 항목들이 꼭 필요함을 의미한다.



당부의 말 중.


일에서 투자 이익을 얻는다는 개념을 이기적이고 프로페셔널하지 않은 이력서 채우기로 오해해서는 안된다. 

업무에 대한 기여는 생각하지않고 개인적인 이유로 이력서에 채워넣을 기술과 방법론들을 쫓아 다니는 것은 비윤리적이다.

소프트웨어 장인이라면 프로페셔널로서 자신의 고객을 생각해야한다. 


완전 사이다를 넘어 활명수. (+ 마지막 문장에 "동료" 도 추가하고싶다)



기회를 만들어 내기 위해 할 수 있는 활동들


- 익숙하고 편한 것에서 벗어나 새로운 것을 공부하고 기술적 지식을 확장한다. 예를들어 새로운 프로그래밍 언어나 기술들을 배운다.

- 지역 커뮤니티에 정기적으로 출석하거나 행사에 참여한다.

- 다른 개발자, 비즈니스맨들과 교류한다.

- 새롭게 배운것, 지금 하고 있는 것들에 대해 블로깅한다.

- 오픈 소스 프로젝트에 참여한다.

- 프로젝트를 만들고 공개한다.

- 콘퍼런스에 참석한다.

- 콘퍼런스에 연사로 나선다.



채용에 대한 이야기


뻔하디 뻔한 형식의 채용공고는 내지말것을 이야기한다. 예를들면, "Java개발 n년차 이상"와 같은 것들.


- 저 n이 3이 되어야 할까, 4가 되어야할까?

- 지원하는 개발자는 1년 경험한 일을 3년동안 했을까, 아니면 매년 혁신적인 진보를 했을까?


n을 채우는 수치를 고민할게 아니라 정말 우리 조직에 필요한 조건을 명시하고, 지원하도록 하는게 맞는것같다.


책에서는 어떤일을 하는 회사이며 무엇을 가치있게 여기는지, 새롭게 합류할 개발자에게 어떠한 것을 기대하는지를 중점적으로 기술할 것을 권장하고있다.



나부터 변해야 한다. 


조직에 활력을 불어넣어 열정적인 개발자들이 주변에 넘치게 하자. 모범을 보여라!


내가 속한 조직이, 내 주변이 마음에 안든다고 불평하기전에 스스로 돌아볼 필요가 있겠다. 

이 부분을 읽으면서 나도 "내가 할 수 있는건 없을까? 내가 시작할 수 있지않을까?" 하는 생각이 들었다.


가볍게 "어제 이런책을 읽었는데 좋았어요" 하면서 공유를 할 수도 있고, 일을 진행하면서 도입한 것이나 새로운 시도를 해본것, 알게된 것을 공유해도 된다.

물론 지금도 공유를 하고있긴한데, 그게 아주 자연스럽지는 않은 것같다. 마치 일상 이야기를 하듯이 기술 토론들이 이루어지면 더 좋을것같다.

더구나 이런건 조직장이 나서서 권장하면 어쩔 수 없이 따르는 악습이 될수도 있기때문에 개발자들 스스로 만들어내야 하는 문화라고 생각한다.


책에서는 새로운 문화 전파에 방해가 되는(?) 캐릭터 유형을 기술하고, 그 사람들을 어떻게 변화시킬 수 있는지도 다루고 있다.