Paranoid Pessimistic Programmer: 방어적 프로그래밍과 소통 전략

Source

  • Evernote/Technote scraps/Be a Paranoid Pessimistic Programmer GrokCode.md

Summary

프로그머는 잠재적 오류를 사전에 방지하기 위해 ‘건강한 편집증’과 ‘비관적 태도’를 유지해야 한다. 이는 백업, 버전 관리, 로깅 등 모든 개발 도구의 근간이 되는 사고방식이다. 구체적으로는 방어적 프로그래밍(Defensive Programming)을 통해 가정을 최소화하고 에러를 명시적으로 처리하며, 전제조건/사후조건을 명시하고, 가능한 한 빨리 실패(Crash early)하는 것이 좋다. 그러나 비기술적 이해관계자(관리자, 마케팅 등)와 소통할 때는 이러한 비관적 시나리오를 그대로 전달하면 부정적으로 받아들여질 수 있다. 따라서 기술적 난제와 리스크를 인지하되, 해결 가능성을 전제로 한 건설적인 언어로 포장하여 전달해야 한다. 즉, 내부적으로는 비관적으로 준비하되 외부적으로는 문제 해결자로서 소통해야 한다.

Key Points

  • 개발자는 오류가 발생할 것을 전제로 한 비관적 사고가 필수적이다.
  • 방어적 프로그래밍: 타 코드/라이브러리/요구사항의 변경에 대비해 가정을 줄이고 에러를 명시적으로 처리한다.
  • 좋은 관행: 전제조건/사후조건 명시, Assertion 활용, 버전 관리 필수, 빠른 실패(Crash early) 원칙.
  • 소통 전략: 비기술적 이해관계자에게는 비관적 리스크를 그대로 나열하지 말고, 해결 가능한 과제로 포장하여 전달한다.
  • 목표: 문제를 발생시키기 전에 해결하는 사람으로 인식되도록 한다.