- 엔지니어의 적당한 냉소주의(cynical) 는 대기업의 작동 방식을 정확히 이해하게 해주고, 역설적으로 과도한 냉소에 빠지는 것을 막아줌
- 엔지니어가 나쁜 코드를 작성하는 이유에 대한 현실적인 냉소적 설명이 없으면, 의도적 사기 저하나 반노동 전략 같은 과도한 음모론으로 치우칠 위험이 있음
- 소위 “이상주의적” 관점은 세상을 근본적으로 부패하고 이기적인 구조로 보며, 긍정적 변화 자체가 불가능하다고 전제한다는 점에서 오히려 더 냉소적임
- 소프트웨어 엔지니어링 담론에서는 이상주의적 글이 과잉 대표되어 있고, 대기업이 실제로 어떻게 작동하는지를 설명하는 글은 상대적으로 부족함
- 2010년대에 형성된 대기업에 대한 사실과 어긋난 인식 모델을 내면화한 세대가 2020년대에 어려움을 겪고 있으며, 정확한 작동 모델을 이해해야 자신의 이상주의적 목표도 더 현실적으로 달성 가능
냉소주의자라는 비판에 대한 입장
- 나의 "매니저를 기쁘게 하는 일을 해야 한다"거나 "대기업이 어떤 프로젝트를 할지 결정한다"는 주장에 대해 많은 독자들이 나를 냉소주의자(cynic)라고 부름
- Alex Wennerberg는 "엔지니어가 정치적 게임의 도구 이상이며, 전문성을 의미 있는 문제 해결에 적용하는 전문가"라고 반론
- 그럼에도 불구하고 본인은 대기업에서 일하는 것을 좋아하며, 조직을 탐색해 실제 기능이나 개선을 사용자에게 전달하는 것이 좋은 일을 하는 최선의 방법이라고 생각함
이상주의적 관점이 생각보다 냉소적인 이유
- 교조적 "이상주의자" 관점에 따르면:
후기자본주의 지옥에서 대기업은 권력만 원하는 도둑 귀족들이 운영하며,
순종적인 엔지니어 드론들이 빠르게 나쁜 코드를 찍어내 주가를 부풀리고,
최종 사용자는 더 나쁜 소프트웨어에 더 많은 비용을 지불하고 광고에 시달림 - 이 관점은 동료와 상사를 냉소적으로 보는 것
- 실제로 대기업 경영진은 사용자에게 좋은 소프트웨어를 제공하고 싶어 함
- 이 관점은 개인 엔지니어가 어떤 타협도 받아들이지 않아야 한다는 전제에서만 이상적으로 보임
- 이 관점에 따르면 회사가 압박하더라도 형편없는 소프트웨어를 작성해서는 안 되며, 회사가 아무리 타협하고 결과물만 내놓으라고 강요해도, 도덕적으로 단호하게 거부해야 할 의무가 있음
- 이름 없는 개인이 사용자도 알지 못하는 선을 지킨다는 서사는 영웅적 자기 인식을 강화함
- 그러나 이러한 관점은 세상을 근본적으로 부패하고 이기적인 구조로 규정하고, 실질적인 긍정적 변화는 불가능하다고 믿는 인식에서 출발함
- 이 태도는 이상주의라기보다, 변화 가능성을 포기한 형태의 냉소주의에 가깝다고 봄
냉소적 관점이 생각보다 이상주의적인 이유
- "정치적 게임의 도구"와 "의미 있는 문제를 해결하는 전문가" 사이에 뚜렷한 구분이 없음
- 실제로 거의 모든 의미 있는 문제는 정치적 게임을 통해 해결됨
- 혼자서 해결할 수 있는 문제는 매우 적으며, 대규모 제품 변경(예: GitHub의 1억 5천만 사용자가 마크다운에서 LaTeX 사용 가능하게 하기)은 많은 사람과 조정해야 하므로 정치에 관여해야 함
- 소프트웨어 엔지니어는 대기업에서 방향을 설정하지 않지만, 회사 방향을 구체적 기술 변경으로 번역하는 데 상당한 영향력을 가짐
- 대기업은 수억 또는 수십억 사용자에게 서비스하며, 작은 변경이 총체적으로 막대한 긍정적 또는 부정적 영향을 미칠 수 있음
- 지저분한 정치적 과정에 참여하기로 선택하는 것은 이상주의적 행동임
- 대기업 엔지니어의 위치는 공공 서비스에 종사하는 사람과 유사: 정부 정책의 큰 방향은 설정하지 못하지만 선을 행할 수 있기를 이상주의적으로 희망함
예방 접종으로서의 냉소주의
- 건강한 양의 냉소주의는 과도한 냉소주의에 대한 예방 접종 역할
- 대기업에서 엔지니어가 나쁜 코드를 작성하는 이유에 대한 약간 냉소적인 설명이 없으면, 엔지니어들이 노조 결성을 막기 위한 반노동 전략으로 의도적으로 사기가 저하되고 있다는 과도한 냉소적 설명을 채택할 위험
- 기업들은 이런 종류의 음모에 관여하도록 설정되어 있지 않음
- 대기업이 비효율적 결정을 내리는 이유에 대한 약간 냉소적인 설명이 없으면, 대기업이 무능한 패배자들로 가득하다는 과도한 냉소적 설명을 채택할 위험
- 실제로 기업들은 강한 엔지니어와 약한 엔지니어의 정상적인 혼합을 가지고 있음
최종 생각
- 소프트웨어 엔지니어링에 관한 글들은 이상주의적 글이 지나치게 많음
- 좋은 코드를 가치 있게 여겨야 하고, 동료에게 친절해야 하고, 긍정적 영향을 미치는 프로젝트에서 일해야 한다고 설명하는 책이나 블로그 포스트는 이미 넘쳐남
- 그러나, 대기업이 실제로 어떻게 운영되는지 정확히 설명하는 글은 부족함
- 냉소적 글이 사람을 슬프게 하거나 쓴 냉소주의자로 만들어 해로울 수 있지만, 이상주의적 글도 해를 끼칠 수 있음
- 2010년대에 배출된 소프트웨어 엔지니어 세대는 대기업 작동 방식에 대해 사실과 다른 모델을 가지고 있었고,
이들이 2020년대에 들면서 사실상 파쇄기에 갈려 들어가고 있음 - 그들이 이러한 기업의 작동 방식에 대한 올바른 모델을 내면화했다면, 문제에 휘말릴 가능성이 줄어들 뿐만 아니라 자신의 이상주의적 목표를 달성하는 데에도 더 유리했을 것
Hacker News 댓글에 대한 추가 답변
- 일부 댓글: 고용주가 비윤리적 활동에 관여할 때 "내가 하는 일은 사실 좋다"고 말하는 것이 일관성이 없다는 지적
- 이 포스트는 내가 Microsoft에서 일하는 것이 윤리적인지 여부가 아닌, "대기업에서 유능한 엔지니어들이 왜 형편없는 코드를 작성하는가"에 대한 후속 글임
- 일부 댓글: C레벨 임원이 좋은 소프트웨어를 제공하고 싶어 한다는 주장에 대해, 개인적 성공을 위해 이를 희생하지 않는다는 점 지적
- 동의하지만 항상 제로섬이 아님, 좋은 소프트웨어가 소프트웨어 회사에 돈을 벌어다 줌
- 일부 댓글: High-Tech Employee Antitrust Litigation(고급 기술 직원 반독점 소송)을 대기업이 직원에 대한 음모에 관여한다는 예로 링크
- 회사들은 급여에 대해 담합하도록 구조적으로 설정되어 있지만, 직원을 의도적으로 슬프게 만들도록 설정되어 있지 않음
- 그런 종류의 세밀한 문화 통제가 없으며, 통제할 수 있는 한에서는 직원들이 더 적은 돈에 일하고 떠나지 않도록 행복하게 만들려고 노력함