인간, 조직, 권력 그리고 어느 SW 엔지니어의 변
항우는 굶주린 장병들에게 눈물을 흘리며 밥을 주지만 관직은 아까워서 내리지 못하는 사람이라고 말한다.
1
현실이란, 우리가 살아가는 현실이란, 이런거다. 아무리 IT가 새로운 시대의 조류가 되고, 세상을 변화시킬 수 있는 기술이라고 하지만 우린 조직이란 틀 안에서 자유로울 수 있는 존재이고 기술이란 생각을 하게 되었다.
2
이 책은 국내 개발자에게 받치는, ‘군주론’이다. 군주론을 어떻게 받아들일지 본인의 문제겠지만 현실을 어떻게 파악하고 솔루션을 제공할지에 대해서 생각해 봐야 하지 않겠는가?
3
많은 사람들이 이 책을 어떻게 평가할지 모르겠지만, 한국의 모든 개발자에게 이 책을 권한다.
살벌한 전쟁터에서 착하게 살라는 말은 도움이 되지 않는다. 일단 내가 살아남은 것이 중요하다. 내가 산다는 것은 프로젝트가 어떻게 되든지 우선 살아남아야 한다는 것이다.
-
[…] 한국 소프트웨어 엔지니어들은 노조조차 없이 전근대적인 환경에서 착취당하는 노예나 다름없다.
-
[…] 일단 막 대학 졸업하여 직장을 알아보고 있는 후배들에게는 “제발 이 세계에 들어오지 마라”고 말리고 있다. […] 음, 내가 할 수 있는 얘기는 딱 한가지다. 어쨌든 살아남으라는 거다. 더 나은 미래는 생각할 것도 없고 일단 생존이 문제다.
-
[…] 덴버공항 수하물 처리 프로젝트를 […], 설계를 잘못한 것도 아니고 품질관리를 잘못해서 그런 것도 아니다. 문제의 원인은 고객이 너무 과도한 욕심을 부렸고 거기에 개발 회사는 확신도 없으면서 호응했다는 데 있다.
-
[…] 문제는 시스템의 규모가 커짐으로 인하여 발생하는 시스템 구축의 복잡성이 시스템의 규모에 선형적으로 비례하는 것이 아니고 지수함수적으로 커진다는 것이다.
-
둘째, 개발팀에게는 엄격한 품질관리를 절차를 요구하면서 FAA는 요구사항을 계속 변경했으며 FAA가 내놓은 요구사항조차 모호했다. […] 세 번째, 왜 FAA는 개발 업체에게는 엄격한 품질관리 체계를 요구하면서 자신들은 요구사항을 계속 변경했을까, 하는 것이다.
-
[…] 소프트웨어는 비즈니스를 지원하는 기능을 가지기 때문에 어떤 모순된 규칙들도 비즈니스에 필요하면 수용해야 한다.
-
[…] 소프트웨어를 모듈화한다고 해서 로직도 모듈화되는 것이 아니기 때문이다.
-
[…] 소프트웨어 아키텍처 설계의 핵심은 소프트웨어를 구성요소와 구성요소의 연결관계로 파악하는 것이다.
-
[…] 능력있는 개인보다는 능력 있는 팀이 더 중요하다. 능력 있는 개인이 기여하는 바는 상대적으로 적다. 왜 그런가?
-
따라서 개발팀에서는 정보 차단이 없을수록 좋다.
-
문제는 희생양을 만드는 것이 인간 집단에게는 너무나 자연스러운 것이라는 점이다.
-
[…] 좋은 리더는 문제를 해결하는 사람이고 팀의 목표를 달성하는 사람이다.
-
[…] 집단이 성과를 제대로 내기 위해서는 오랜 시간이 걸린다.
-
[…] 따라서 회사는 효율성을 기하기 위해 최상의 팀을 구성할 수 있는 리더들을 계속 양성해야 한다.
-
우리는 도덕적인 교훈을 주고 동기부여를 하면 사람이 변할 것이라고 착한다. 그러나 이런 방법으로는 아무런 변화도 일어나지 않는다. 사고의 변화가 행동의 변화로 곧바로 이어지는 것이 아니다. 오히려 행동이 변해야 사고가 변한다.
-
[…] 서로 협업이 이루어지는 팀 내부에는 프로세스가 없다. 그러나 팀 간에는 프로세스가 있어야 한다.
-
[…] 사업관리자나 PL, PM 외에는 개발자가 고객의 전화를 직접 받지 못하게 한다. […] 개발자는 프로그램 작성에 몰두할 수 있도록 철저히 보호해야 한다.
-
[…] 오폰소스용 빌드 툴을 사용할 때는 이 툴을 쓸 줄 아는 사람이 프로젝트에 맞게 세팀해야 하는데 이것이 쉽지 않다. 약간의 비용을 지불하고 상용 툴을 구매하거나 오픈소스를 쓰더라도 서비스 비용을 내고 세팅하는 것이 좋다.
-
[…] 간단히 말해서 좋은 조직이란 문제를 조직 차원에서 해결하는 조직이고, 나쁜 조직이란 조직의 문제를 개인에게 떠넘기는 조직이다.