1P by GN⁺ | ★ favorite | 댓글 1개

건축가가 프로그래머처럼 일해야 한다면

  • 건축가에게 정확한 필요 사항을 모르면서 집을 설계하고 지으라고 요청함.

  • 집은 2에서 45개의 침실을 가질 수 있어야 하며, 침실은 쉽게 추가하거나 삭제할 수 있어야 함.

  • 최종 결정은 건축도면을 본 후에 하겠다고 함.

  • 선택한 집은 현재 살고 있는 집보다 비용이 적게 들어야 함.

  • 현재 집의 결함(부엌 바닥의 진동, 벽의 단열 부족)을 모두 수정해야 함.

  • 연간 유지비용을 최소화하면서 최신 디자인 관행과 재료를 사용해야 함.

  • 1952년형 기브슨 냉장고를 수용할 수 있는 주방 디자인이 필요함.

  • 온 가족과 장인어른의 의견을 듣고 모두를 만족시키는 집을 설계해야 함.

  • 작은 디테일은 신경 쓰지 말고 전체적인 계획을 세워야 함.

  • 자원 확보보다는 상세한 계획과 사양 개발이 우선임.

  • 계획 승인 후 48시간 이내에 지붕이 완성되어야 함.

  • 나중에 다른 사람에게 팔 수 있도록 다양한 구매자의 취향을 고려해야 함.

  • 최종 계획을 확정하기 전에 지역 사회의 합의가 필요함.

  • 건축도면을 준비해야 하며, 실제 디자인은 나중에 변경될 수 있음.

  • 나중에 디자인 변경으로 인한 건축 비용 증가에 대해 책임을 짐.

  • 최신 기술과 자유로운 디자인을 사용할 수 있는 흥미로운 프로젝트임.

  • 아내가 처음 지시한 내용과 다른 의견을 가지고 있으며, 이를 해결하는 것은 건축가의 책임임.

  • 아내는 집이 아니라 여행 트레일러가 필요할 수도 있다고 함. 이에 대한 조언을 요청함.

GN⁺의 의견

  • 이 글은 건축가에게 불합리하고 모순된 요구를 하는 고객을 풍자하여, 프로그래머가 종종 겪는 비현실적인 기대와 요구를 재치 있게 비유하고 있음.
  • 프로젝트의 명확한 요구 사항과 기대치, 그리고 변경 관리의 중요성을 강조하는 사례로 볼 수 있음.
  • 이 글은 프로그래밍과 건축이라는 서로 다른 분야의 전문가들이 겪는 공통된 문제를 이해하고 공감하는 데 도움이 되며, 프로젝트 관리의 어려움을 유머러스하게 전달함으로써 독자에게 흥미를 제공함.

댓글과 토론

Hacker News 의견들
  • 이 작업을 어떻게 해내는지는 상관없지만, 예상 작업을 작고 추정 가능한 단위 작업으로 쪼개야 함
    추정이 정확할 필요는 없지만, 추정치를 넘기면 책임을 져야 하고, 추정치가 임의로 너무 높다고 판단되면 의심받게 됨
    이 작업들은 알아서 수행하면 되지만, 전혀 다른 일을 하는 다른 설계자들과 함께 매일 1시간 회의에서 진행 상황을 보고해야 함
    같은 구두 보고를 다른 회의에서도 반복해야 할 수 있고, 회의가 시간을 많이 잡아먹더라도 기존 추정 시간은 그대로 지켜야 함
    집을 설계하는 도중 피사의 사탑 안정화 같은 건축 긴급 상황을 도와야 할 수도 있으며, 이런 일은 밤낮없이 발생하고 현재 작업보다 우선하지만 시간 추정에는 영향을 주면 안 됨

    • 도면을 그릴 연필은 완전히 다른 사람이 관리하며, 직접 깎을 수 없음
      다만 그 사람은 모두의 연필을 깎고 책상도 조정하느라 자리에 없을 수 있음
      게다가 그들은 모두 Blue Pants 소속이라 같은 근무 시간대에 일하지도 않음
    • 회사 파트너들이 주택 건설 과정을 효율화하려고 BCG를 고용했음
      당신의 집과 동료들이 설계하던 동네의 다른 집들은 방치되어 썩고, 대부분은 해고될 것임
      일부는 더 수익성 높은 시장을 위해 말 마구간과 실내 수영장 설계로 재배치됨
    • 제품 관리자가 준 두 줄짜리 설명을 바탕으로 작업을 잘게 쪼개고 추정해야 하니, 실제로 시작하기 전까지는 범위를 전혀 알 수 없음
      이전 회사에서 우리 팀의 모든 추정이 빗나갔고 엔지니어들이 해고된 이유가 바로 이거였음
      이 짠맛은 진짜임
    • 집을 설계하기 전에 창고를 지을 때 쓰는 도구로 비계부터 세워야 함
      근처에 숲, 지진 지질, 허리케인이 있든 없든 지진, 핵 위협, 7등급 허리케인, 산불 등에 모두 견디게 만들어야 함
      창고를 짓는 유니콘 건축가들이 자기 필요에 맞게 성공적으로 썼던 원칙을 따랐다고 자랑스러워할 수 있으니까
    • 이보다 더 정확한 기업식 애자일 묘사는 없음
      농담 같지만, 그 농담의 대상은 우리임
  • 이건 정말 한 단계 높은 피해자 코스프레처럼 보임
    집을 짓는 일도 취향 없고 아는 것도 없으면서 모든 걸 원하지만 돈은 내기 싫어하는 징징대는 집주인이나 시공자를 상대하는 일이 자주 포함됨
    그게 일임
    좋은 소프트웨어 엔지니어는 이해관계자와 사용자를 상대하는 것도 일이라는 걸 앎
    하나 더 충격적인 사실을 덧붙이면, 설계도는 때때로 부실하거나 틀려 있음
    그래도 사람들은 집을 지음
    그게 일임

    • 맞음
      반대로 프로그래머가 건축가처럼 일해야 한다면 보수는 훨씬 낮아지고, 50대가 되기 전에는 중요한 프로젝트 책임자가 되기 어렵고, 엄청난 무급 초과근무를 하며, 재택근무도 못 하고, 자기 작업에 법적 책임을 지고, 하루 대부분을 결과보다 규정 준수에 쓰고, 지금까지 상상한 것보다 훨씬 더 고객 중심으로 일해야 할 것임
    • 가족 중 한 명이 땅과 건축사무소의 2층집 설계도를 사고, 시공자를 고용했음
      공사가 한참 진행된 뒤 시공자들이 비용 차이가 거의 없으니 지붕을 1미터 올릴지 물어봤고, 처음에는 거절하려다 받아들였음
      완공 후에야 그 제안을 거절했다면 2층을 전혀 쓸 수 없었을 거라는 걸 알게 됨
      집은 https://en.wikipedia.org/wiki/Gable_roof 형태의 박공지붕이었고, 계단은 외벽 한쪽을 따라 U자형이었음
      지붕을 올리지 않았다면 외벽 쪽 지붕이 너무 낮아 계단을 걸어 올라갈 수 없었고, 올린 뒤에도 키 큰 사람은 올라갈 때 고개를 기울여야 함
    • 그렇게 가볍게 dismiss하면서도 정작 고려가 너무 적음
      아이러니하게도 지금 하는 일이 원글에 씌우는 것과 똑같이, 피해자 상태를 가정하는 것임
      “그게 일이다!”라고 외치는 건, 적어도 명시적으로는 그 일이 아닐 때도 채용 시 고용주와 합의한 내용과 무관하게 업무 조건에서 양보해야 한다는 암묵적 주장임
      이걸 절박하게 전달하려는 모습은 직장에서 자기 입장을 세우는 데 도움이 필요하다는 신호처럼 보임
      내 경험상 이는 고용 관계의 권력 불균형에서 나오며, 이유는 복잡하지만 흔한 상황에 대해 일반적이고 어쩌면 별 도움 안 될 조언을 하자면: 실력을 키우면 회의가 늘거나 다른 일로 끌려갈 때 암묵적 협상력이 좋아짐
      업무 환경에서 정중하게 자기 입장을 밝히는 법을 배우는 것도 필요함
      모두가 불완전한 정보 게임을 하고 있어서, 가벼운 단호함과 자신감만으로도 상대가 그 자리에서 당신이 틀렸다고 가정하기 어렵게 만들 수 있음
      무엇에 합의하는지 알고, 자신이 제공하는 것이 무엇인지 솔직해야 함
      지난 4년간 알고리즘과 자료구조를 집중적으로 공부했다면, 계산 문제를 풀기 위해 그 일을 맡는다는 점을 솔직히 말하고, 단순히 머릿수나 의자 채우기가 아니라는 걸 미리 알려야 함
    • 좋게 보면, 건축가에게 프로그래머의 삶이 어떤지 알려주는 방식임
      건축가가 이 글을 읽으면 “프로그래머들은 너무 편하게 산다”가 결론일 거라고 100% 믿음
    • 프로그래머가 건축가처럼 일해야 한다면, 직접 프로그래밍은 할 수 없고 명세서만 써야 함
      실제 프로그래밍을 하는 대다수는 명세서를 읽을 능력이 없고, 읽을 수 있는 사람 중 상당수는 비용 절감을 위해 일부러 무시함
      그런데도 잘못 구현되면 책임은 당신에게 있음
  • 이건 프로그래머들이 다른 분야가 어떻게 돌아가는지 안다고 착각하는 칵테일 파티 아이디어의 완벽한 예처럼 들림
    건축가도 프로그래머에 대해 비슷한 글을 쓸 수 있을 것이고, 실제 업무에 필요한 것에 대해 똑같이 많은 잘못된 가정과 오해가 들어갈 것임
    https://danluu.com/cocktail-ideas/

    • 건축가가 프로그래머에 대해 그런 글을 쓴다면 읽어보고 싶음
    • 그건 정말 아주 흥미로운 글이 될 것 같음
    • 내 일만 빼고 모두의 일은 쉬움
    • 위 글과 딱 맞아떨어지는 좋은 읽을거리임
  • 나는 시각적이고 촉각적인 사람이니, 집의 목업을 미리 만들어줘야 함
    가능하면 1:1 규모에 완전히 동작해서 실제로 어떻게 기능하는지 볼 수 있어야 함
    집의 어떤 부분이든 마음에 들지 않으면 처음부터 다시 지어야 하고, 한 번 지어봤으니 내 변경사항을 반영해 더 빠르게 다시 지을 수 있을 거라고 기대함

    • 아무도 내가 제일 좋아하는 얘기를 안 꺼낸 게 이상함
      새 집은 내가 쓰고 있는 바로 그 위치에서 다시 지어야 하고, 새 집으로의 전환은 무중단이어야 함
      차가 들어 있는 상태로 차고를 다시 지어야 하고, 식기세척기와 오븐이 돌아가는 동안 주방 바닥과 조리대를 교체해야 함
      욕실 교체 중에도 샤워하고 욕조에 머물 수 있어야 하며, 내가 섹스하는 동안 침실은 조용히 다시 지어야 하고, 화장실도 사용 중에 다시 지어야 함
    • 이게 뭐야, 개미용 집인가? 여기서 어떻게 살라는 거지?
      크기를 키워야 함
      이미 지어졌으니 내일 부지에 완성돼 있기를 기대함
  • 이 글을 쓴 사람은 부유층을 상대하는 건축가를 모르는 듯함
    맞춤 주택을 원하는 부자들은 자기가 직접 설계하려는 경우가 많고, 기본 설계 원칙, 사용성, 자재, 구조적 무결성 같은 현실을 마주하면 극도로 짜증 냄
    실제 골조가 올라가기 시작하면 막판에 계획을 바꾸기도 함
    골조를 처음 보고 아직 완성된 게 아니라는 걸 몰라서 패닉에 빠지지 않는다는 전제하에서임
    혹은 부자 친구가 기초 공사 현장을 보다가 가볍게 한마디 비꼬면, 이제 고객은 아이 둘에게 각각 리사이틀홀을 하나씩 줘야 한다고 우김
    하나로는 부족하니까
    또 훌륭한 예로, 누군가는 2층 침실 옆에 Ferrari를 세우고 싶어서 주방 위에 차고를 올리길 원했음
    배기가스 따위는 신경 쓰지 않았고

    • 그런 일은 부자 개인의 빌라를 설계할 때만 생기는 게 아님
      Dubai에서 들은 이야기 중엔 말도 안 되는 게 많음
      한 개발사가 공사 중인 타워의 포디엄 위에 수영장 데크를 그려달라고 조경 건축가에게 요청함
      조경 쪽이 엔지니어에게 바닥 두께와 하중 수치를 묻자, 이미 완성된 포디엄은 수영장을 버틸 수 없다는 답을 들음
      하지만 아파트는 이미 수영장 데크 사진이 들어간 브로셔로 팔린 뒤였고, 엔지니어링 쪽에는 수영장 하중을 반영해야 한다는 말도, 포디엄 어디에 둘지도 아무도 알려주지 않았음
      또 다른 이야기로, 40층짜리 주거용 타워의 코어가 20층까지 올라간 시점에 개발사가 갑자기 옥상 수영장을 떠올리고 건축사무소에 설계를 의뢰함
      기초, 구조, 유지보수 장비 위치까지 미리 계획해야 하는 일이 아닌 것처럼 굴었음
    • 2층 침실 옆에 Ferrari를 세우고 싶었던 게 이 사람 말하는 건가?
      https://youtu.be/Us8mDKUaX2M?si=qnrckuGLyWzoFNAe&t=1515
    • 내 건축가 친구는 특별한 고객을 위한 특별한 일을 맡았는데, 알고 보니 Saudi 부인들이었음
      아이디어 자체는 좋았지만, 새 건축 잡지 업데이트가 나올 때마다 매달 아이디어가 바뀌었음
      그래서 친구는 두 달에 한 번꼴로 Riyadh나 Mecca에 내려가 설계 세부사항을 설명해야 했음
      더 미친 건 부인이 한 명이 아니라 여러 명이었고, 새 고광택 건축 잡지도 여러 권이었다는 것임
      모델을 많이 만들어야 했지만, 이건 흔한 일임
      또 다른 악몽 같은 부자 고객인 Hitler도 Speer의 모델을 좋아하고 계속 마음을 바꾼 것으로 유명했음
      그는 늘 자기가 더 잘 안다고 생각했음
  • 이런 글과 이어지는 댓글들은 항상 큰 점을 놓침: 건설과 소프트웨어는 전혀 같은 일이 아님
    예를 들어 건설에는 건물을 설계하는 건축가, 기술 도면을 준비하는 디자이너, 도면에 승인 서명하는 엔지니어, 도면대로 건축 부품을 만드는 제조, 토지에 건축이 가능한지 확인하는 측량사, 실제로 짓는 시공자, 지붕을 올리는 지붕공, 시공자가 제대로 짓는지 관리하는 현장 관리자, 완성 건물에 정부 승인을 내는 건축 규제 기관, 전선을 까는 전기공, 배관을 넣는 배관공, 벽에 미장을 하는 미장공, 벽을 마감하는 도장·장식공, 나머지를 설치하는 설치공이 있음
    이들은 모두 별개 사업체이고, 빠뜨리거나 이름을 잘못 붙인 것도 있을 것임
    부실 작업에 법적 책임을 지는 사람이 여럿 있어도 Grenfell 같은 일이 여전히 벌어짐
    반면 소프트웨어 엔지니어링에는 무엇을 만들지 정하는 제품 관리자, 어떻게 동작하고 보일지 정하는 디자이너, 코드를 쓰는 소프트웨어 엔지니어, PCI DSS나 SOC2 같은 관련 표준 준수를 보는 감사자가 있음
    이를 지원하는 역할도 많지만, 그걸 넣으면 건설 쪽에는 5배 더 추가해야 해서 뺐음
    누가 더 힘든지, 어느 분야가 더 나은지 말하려는 게 아니라, 두 분야는 비교 자체가 안 된다는 점을 짚고 싶음

    • “건축업자에게 2층을 제거하고 지하에 수영장을 설치하라고 요구하는 사람은 없다” 같은 인용문을 방금 읽었는데, 정말 맞는 말임
    • “Sparkies”가 업계 은어인지, 번역인지, 내가 모르는 다른 표현인지 궁금함
      보통은 “electricians”라고 할 것 같음
    • 소프트웨어 엔지니어링은 이렇게 돌아가는 줄 알았음: 관리자, 더 많은 관리자, 더더욱 많은 관리자, 그리고 이 프로젝트에 20% 배정된 풀스택 개발자 한 명
      그 개발자는 관리자들과 회의하고, 명세서를 쓰고, 코드를 작성하고, 애플리케이션을 테스트하고, 배포하고, 24/7 온콜 지원까지 함
    • 드디어 소프트웨어 엔지니어가 얼마나 엉망인 직업이 되었는지 보는 사람이 나왔음
      내 HN 글과 댓글 기록을 보면 나도 정확히 이 점을 계속 말해왔음
      우리는 너무 많은 일을 하고 있음
  • 재미있지만 나는 다리 건설 팀에 대한 이전 버전이 더 좋음
    https://www.stilldrinking.org/programming-sucks - 두 번째 섹션

    • 이 글이 그보다 20년 앞서 있으니 “이전 버전”이라고 하긴 어려움
      그래도 공유해줘서 고맙고 꽤 재미있음
  • “작업이 얼마나 걸릴지 말할 때 시간이나 일 단위로 말하지 말고, 사람마다 뜻이 다른 가상의 포인트를 써주세요”
    또 많은 댓글이 이 글이 취향 나쁘고 건축가를 깎아내리며 ‘프로그래밍은 너무 힘들어’식 피해자 자세를 취한다고 보는데, 나는 다르게 읽었음
    이건 소프트웨어 업계 자체에 대한 비판이고, 우리가 고객에게 우리 일의 현실을 이해시키는 데 완전히 실패했다는 이야기임
    제정신인 사람이라면 침실이 2개에서 42개인 집을 요청하지 않음
    그런데 평균적인 IT 노동자는 소프트웨어 작업에서 이런 걸 정상으로 받아들임
    고객이 이 점을 이해하게 만들어야 하고, 그 일을 스크럼 마스터에게 위임하지 말아야 함
    대체로 그들은 일을 더 혼란스럽고 복잡하게 만들 뿐임

  • 집에 들어오는 사람들의 엄격한 프라이버시를 보장하면서도, 동시에 모두가 잘 소통할 수 있게 해줘야 함
    또한 허가된 사람만 들어오거나 내부 상황을 볼 수 있게 하고, 화재, 신체적 위해, 다른 사람으로부터 모두를 매우 안전하게 지켜야 함
    아쉽지만 이 안전은 추가 비용이나 사용 제한 없이 달성해야 함

    • 그 집은 범죄가 만연하고 법 집행기관이 아무 도움도 줄 수 없는 비편입 지역에 지어질 예정임
      그래도 기물 파손, 방화, 절도, 도청 장치 설치, 방문자에 대한 언어폭력이나 폭행, 테러리스트나 글로벌 제재 명단 인물의 접근으로부터 안전해야 함
      보험은 들 계획이 없고, 경찰은 어떤 위법 행위도 수사하지 않을 것이며, 경비원을 고용할 생각도 없음
      하지만 집은 대중에게 열려 있어야 함
      집을 악용하거나 공격하려는 사람들은 심심한 청소년 무리부터 조직범죄 집단, 주요 적대국의 정보기관과 군대까지 다양함
      행운을 빔
  • 어떤 일이든 대부분은 사람 말을 듣는 것
    대통령이든 청소부든 상관없음
    사람들은 뭔가를 원하지만 정확히 어떻게, 왜 원하는지는 잘 모름
    무엇보다 자기 문제를 들어줬다고 느끼고 싶어 하고, 그다음 최선을 다해 도와주길 바람

    • 특히 작은 고객을 상대할 때는 돈 내는 사람과 실제 사용자가 같은 사람인지 확인하는 게 가치 있음을 알게 됨
      어떤 곳에서는 새 집이 예전 집에 만족하던 사람들을 위해 지어지고 있음
      사용자가 바꾸고 싶어 하지 않으면 프로젝트를 쉽게 망칠 수 있음
      돈을 쓰기 전에 소유자가 프로젝트에 얼마나 진심인지 알아내는 게 좋음
      결국 밀어붙여야 할 때 해고되는 건 건축가인지, 장모님인지 봐야 함
    • 듣기에는 좋지만, 여기 있는 많은 사람의 현실은 그렇지 않다고 봄
      보통은 “우리 제품에 X가 필요하니 해내라”임
      그 관리자의 말을 몇 시간, 며칠 듣고 정신과 의사 모자를 쓰고 더 유용한 정보를 뽑아내며 요구사항을 재협상해도, 결국 몇 주나 몇 달의 힘든 작업은 피할 수 없음
      어떤 계정의 담당자라면 이해됨
      고객 말을 최선을 다해 듣고, 문서나 티켓 같은 걸 써서 다른 사람이 처리하게 넘기면 됨
      하지만 대부분의 시간을 듣는 데 쓰는 청소부는 좋은 청소부가 아니므로, 이 말은 들리는 것만큼 보편적이지 않음