1P by neo 2달전 | favorite | 댓글 1개
  • 저자는 소프트웨어 엔지니어링 직업에 잘 적응하지 못했음

    • 코드베이스의 내부 로직을 어느 정도 이해하고 나면 기술적인 면은 지루해졌고, 더 많은 일을 하고 싶었으며 다른 방식으로 하고 싶었음
    • 설계 결정과 그 폭넓은 목적에 대해 궁금해했지만, '생각이 너무 많다'거나 '너무 신경 쓴다'는 말을 들었음
    • 단순히 재능과 직위가 맞지 않는 것이 아니라, 근본적으로 이런 곳들이 운영되는 방식에 동의하지 않았고 그것을 영속시키기보다는 변화시키는 일을 하고 싶었음
  • 2023년의 구인 공고를 보면서 저자는 소프트웨어 엔지니어링 업계에 대한 환상이 깨졌음

    • 대부분의 경우 엔지니어가 작성하게 될 코드는 인류나 개인이 가진 중요한 문제와는 완전히 동떨어져 있음이 분명했음
    • 스타트업 문화는 이 업계의 '더 많은 코드를 만들고 질문은 적게 하라'는 정책의 선두에 서 있음
    • 스타트업은 대부분 투자자의 돈을 옮기면서 유료 사용자를 확보하려 하지만, 결국 엔지니어의 시간은 낭비되고 벤처 자본은 이미 상당한 자본을 보유한 사람들의 손에 떨어짐
    • 이를 흥미롭고 의미 있는 노력으로 포장하려는 구인 광고는 지성에 대한 모욕임
  • 기존 기술 회사는 조직적, 재정적으로는 스타트업과 다르지만 문화적으로는 별 차이가 없음

    • FAANG에서 작성한 코드는 실제로 사용자에게 도달할 수 있지만, 코드 작성의 모든 측면에 대해 개인이 생각하는 것은 그 어느 때보다 무의미해짐
    • 엔지니어는 단지 자본주의의 최악의 측면을 자동화하는 제품을 만드는 기계의 톱니바퀴일 뿐만 아니라, 백엔드 스택의 크기나 기술 면접 점수, 성과 평가 점수 등의 숫자에 불과함
    • 엔지니어는 이 공허하고 굴욕적인 노동을 더 열망해야 한다고 기대되며, 이에 대해 의문을 제기하는 것은 더욱 억제됨
    • 프로그래머는 어떻게에만 초점을 맞추고, 무엇에는 거의, 왜에는 절대 초점을 맞추지 않아야 함
    • 시스템을 비판할 수 있고 기꺼이 하는 드문 코드 몽키에게는 그런 생각은 문 밖에 내버려 두라는 메시지가 명확함
  • 이런 기술 세계의 더 많이 하고 덜 묻는 사고방식은 더 많은 코드를 생산할 수 있지만 더 나쁜 소프트웨어로 이어짐

    • 우리가 통제할 수 없는 자본과 다른 힘이 이론적으로 지속 가능하고 세상에 긍정적인 영향을 미치거나 실용적으로 유용한 방식으로 소프트웨어를 만들 수 있게 해줄 때조차도, 단순한 타성 때문에 그렇게 하지 않는 경우가 많음
    • 이 같은 타성은 사회적으로 쓸모없는 제품이 구축되는 전체 기술 스택으로 스며듦
    • 언어, 라이브러리, 프레임워크, 심지어 코드 패턴에 이르기까지 기술은 업계 전반을 괴롭히는 실제 혁신 이전의 새로움과 요령으로 감염됨
    • 관행에 얽매이지 않는 문제를 해결하지 않는다면 관행에 얽매이지 않는 엔지니어링이 필요할 이유가 없음
  • 가장 흥미로운 엔지니어링 문제는 우리 사회에서 자연스럽게 발생하는 문제임

    • 기술 발전 그 자체가 목적이거나, 시장 수요가 없는 곳에 인위적으로 시장 수요를 만들어내려는 문제와는 대조적임
    • 사회적 필요성은 혁신의 최고의 원동력이며, 역사적으로 초기 컴퓨팅의 가장 획기적인 성과는 더 큰 이익을 위해 이루어졌음
    • 저자는 프로그래밍 언어와 패러다임, 아키텍처부터 모든 코드 줄과 구문에 이르기까지 모든 방법이 구축 중인 시스템의 이유에 의해 결정되기를 원함
    • 그리고 그 이유가 단순히 그 자체로 존재하는 헛소리 같은 비즈니스 지표가 아닌 진정한 기존 필요의 반영이 되기를 바람

GN⁺의 의견

  • 많은 소프트웨어 엔지니어들이 기술력 향상이나 기술 자체의 발전에만 초점을 맞추는 현재 산업계의 분위기에 회의감을 느끼는 것 같습니다. 실제 사회적 문제 해결과 가치 창출을 위해 기술을 활용하는 것이 더 중요하다는 생각에 동의합니다.
  • 기술 혁신 자체도 중요하지만, 그것이 실질적으로 세상에 어떤 영향을 미치는지 돌아보는 건 엔지니어의 중요한 역할 중 하나일 것 같습니다. 단순히 많은 코드를 빨리 쓰는 것 보다 그 목적과 방향성에 대해 고민하는 자세가 필요해 보입니다.
  • 대기업이나 스타트업 문화의 문제점들은 개별 엔지니어 입장에서 쉽게 바꾸기 어려울 수 있습니다. 하지만 개인의 가치관에 따라 본인이 몸담을 조직을 선택하거나, 지인들과 함께 대안적인 방식으로 문제 해결에 도전해보는 것도 의미있을 것 같네요.
  • 기술의 발전 방향을 결정하는데 자본의 논리가 지나치게 큰 영향을 미치는 것은 우려스러운 부분입니다. 사회적 합의나 공공의 이익을 위해 기술이 어떻게 기여할 수 있을지 고민하고, 그런 방향으로 나아갈 수 있도록 의식적인 노력이 필요할 것 같습니다.
  • 저자처럼 업계의 관행에 의문을 제기하고 대안을 모색하려는 엔지니어들이 연대하고 교류할 수 있는 장이 더 활성화되면 좋겠습니다. 지속가능하고 사회적으로 의미있는 기술을 만들기 위해 함께 노력하는 커뮤니티가 성장하기를 기대합니다.
Hacker News 의견

요약하면 다음과 같음:

  • 기업 세계에서는 코드의 우아함이나 아름다움보다는 비즈니스 요구사항에 맞는 기능을 빠르게 만들어내는 개발자를 원함. 회사에 경제적 가치를 제공하지 않으면 개발자는 부채로 간주됨.
  • 소프트웨어 개발은 대부분 경제 활동이며, 개발자들은 주주와 경영진을 부유하게 만들기 위해 코드를 짜내고 있음. 그들은 개발자가 하는 일이나 소프트웨어 개발을 예술이나 장인정신으로 여기는 것에 관심이 없음.
  • 업계에는 가짜(Imposter)들이 많이 침투해 있음. 프로덕트 매니저, 스크럼 마스터 등 "가짜 역할"도 생겨났음. 유능한 엔지니어들은 무능한 사람들을 붙잡고 창의성, 혁신, 연구, 발견, 엔지니어링 등을 경험하도록 도와줘야 함.
  • 기업 소프트웨어 개발에서 10년 이상 일한 어떤 이는 이제 엄청나게 높은 급여로 받는 수표만 신경 쓴다고 함.
  • 프로그래밍 자체는 활력을 주지만, 직업으로서는 프로그래밍이 차지하는 비중이 작음. 대신 바보같은 회의, 계획 세우기 등에 시간을 보냄. 은퇴 후에는 순수한 기쁨을 위해 원하는 것을 프로그래밍할 계획임.
  • 의미 있는 프로젝트를 하려면 연봉이나 스톡옵션을 포기해야 할 수도 있음. 광고기술 회사나 AI 스타트업에서 일한다면 더욱 그럴 것임.
  • 해결책으로 독립 개발, 자신만의 아이디어 개발, 소비자에게 직접 판매 등이 제시됨. 창업도 하나의 방법임.