- 사용자는 코드 자체의 내재적 속성보다 제품 작동을 중시하지만, 나쁜 코드는 성능·버그·개발 속도에 직접적인 하위 영향을 미침
- “사용자는 기술 스택이나 테스트를 신경 쓰지 않는다”는 말은 피상적으로 맞아도, 코드 품질이 낮을수록 버그 수정과 기능 추가가 더 어렵고 느려짐
- 다리 검사, 취한 조종사, 불안정한 건물 기초의 비유처럼, 사용자가 과정 자체를 보지 않아도 그 결과는 안전과 신뢰에 영향을 줌
- 이런 통념이 인기 있는 배경에는 자신이 잘 못하는 것을 평가절하하려는 자아 방어 기제가 작용할 수 있음
- 진지한 소프트웨어 작업은 다양한 관심사와 관점의 혼합이며 그 모두가 성패에 기여하므로, 코드 품질을 가볍게 여겨선 안 됨
반복되는 클리셰와 그 한계
- 소프트웨어 업계에는
- “고객은 테스트를 신경 쓰지 않고 제품이 작동하는지만 신경 쓴다”
- “사용자는 기술 스택을 신경 쓰지 않는다”
- “공학적 우아함은 시장 가치와 같지 않다”
- “사용자는 AI가 썼는지 사람이 썼는지 또는 어떤 프레임워크를 썼는지 신경 쓰지 않고 제품 작동만 신경 쓴다”
는 식의 말이 반복됨
- 이런 말들은 모두 “고객은 그것을 신경 쓰지 않는다” 는 같은 주제의 변형임
- 마치, 노련한 실용주의자가 이상주의적이거나 근시안적인 이들에게 세상의 냉정한 진실을 알려주는 듯한 태도를 취함
- 하지만, 이는 전부 헛소리(horseshit) 이며
같은 논리를 다른 분야에 적용하면 허점이 드러남- 도로 이용자는 다리가 최종 점검을 받았는지 신경 쓰지 않는다, 차를 받쳐주는지만 신경 쓴다
- 승객은 조종사가 술에 취했는지 신경 쓰지 않는다, 비행기가 정시에 도착하는지만 신경 쓴다
- 사무직 노동자는 고층 건물의 기초가 안정적인지 신경 쓰지 않는다, 돈 버는 것에만 신경 쓴다
- 이런 비유는 표면적으로는 맞지만, 명백한 하위 영향(다운스트림 효과) 을 무시함
무시되는 다운스트림 효과
- 고객이 컴퓨터 코드의 내재적 속성에 관심이 없다는 점은 맞지만,
코드 품질은 성능, 버그 존재 여부, 버그 수정 시간, 기능 추가 시간에 영향을 줌 - 코드가 나쁠수록 이런 문제를 해결하기가 더 어렵고 더 느려짐
- AirBnB, OpenAI, Meta 같은 기업은 엄청난 시장 장악력, 막대한 VC 지원, 의심스러운 합법성으로 이런 우려를 밀어붙일 수 있음
하지만, 그런 회사가 아니라면 같은 방식으로 문제를 덮기 어려움
‘Folk Wisdom’의 지속성과 소프트웨어의 여러 관심사
-
통념의 끈질긴 생명력 (The Persistence of Folk Wisdom)
- 1차 효과만 중요하다고 보는 생각은 소프트웨어에서 매우 인기 있는 민간 통념으로 자리 잡고 있음
- 사람들은 자신이 잘하지 못하는 것을 할인하거나 축소하는 경향이 있음
- 좋은 코드를 만들 능력이 부족하다고 인식하면, 좋은 코드가 중요하지 않을 뿐 아니라 좋은 코드를 만들 수 있는 사람들이 오히려 문제라는 관점을 취하기 쉬움
- 그런 관점에서는 고객이 신경 쓰지 않는 것들로 출시를 막는 사람들이 문제처럼 취급됨
- 이 태도는 자기 약점을 피하고 다른 사람에게 책임을 전가하는 자아 방어 기제(ego defence mechanism) 로 작동함
-
우리는 사회 속에 산다 (We Live in a Society)
- 진지한 소프트웨어 작업은 서로 다른 관심사와 서로 다른 관점의 혼합물임
- 기술 영업(tech sales)부터 기술 스택(tech stack)까지, 사용자 경험(UX)부터 고유 식별자(unique identifiers)까지 다양한 요소가 소프트웨어 노력에 들어감
- 이 모든 요소가 성공 또는 실패에 기여함