경제학적 관점의 소프트웨어 개발💵
소프트웨어 엔지니어링에서 경제학이 중요한 이유는 비즈니스 세계에서 경제학이 중요하기 때문입니다. 소프트웨어 개발자로서 하는 ‘모든 일’은 조직이 의존하고, 조직에 의존하는 사람에게 경제적 가치로 환산됩니다. 여기서 말하는 ‘모든 일’은 결코 과장된 표현이 아닙니다. 모든 커밋, 모든 코드 라인, 작은 변경, 의사소통까지 모두 조직의 수익과 연결됩니다. 그렇기에 소프트웨어 개발 워크 플로에서 경제성의 중요도를 꼭 인지하고 개발해야 합니다. 소프트웨어 개발자와 경제성의 연관성을 설명할 때 필요한 개념이 ‘종속성’이라고 생각합니다. 먼저 소프트웨어 개발자도 조직의 ‘종속 요소’입니다. 종속 요소라는 의미는 비즈니스에서 가장 중요한 부분이라는 뜻이 아니라, ‘제품이 소프트웨어에 의존하기 때문에 필수적인 부분이라는 뜻’입니다. 조직에는 개발자만 있는 것이 아니기 때문에 수 많은 종속 요소가 있습니다. 비즈니스가 커지면 더 많은 리소스가 필요하고 책임을 감당해야 할 역할이 많아집니다. 이러한 역할을 추가하기 위해 조직은 ‘외부 자본에 의존’합니다. 그 결과, ‘영업 및 투자자 등 더 많은 종속성이 나타나기 시작’합니다. 이렇게 조직에 종속성이 많아질수록 개발자가 인지해야 하는 부분은 무엇일까 생각해봐야 합니다. 제품은 비즈니스 요구사항대로 동작하는 것이 아니라 개발자가 코딩한 대로 동작합니다. 따라서 개발자는 비즈니스 요구사항과 일치하는 동작을 구현해야 한다는 것에 대한 책임을 집니다. 작성한 코드뿐만 아니라 코드가 동료를 넘어 가족, 친구, 고객, 시장에 미칠 영향에 대한 책임이 있습니다. 하지만 개발자가 짠 코드가 조직의 수익에 영향을 미친다면, 조직의 재정에도 책임을 져야 할까 생각해보면, 꼭 그렇지는 않습니다. 개발자가 통제할 수 있는 것에 대한 책임을 져야 합니다. 코드베이스, 빌드 및 배포, 팀 및 다른 팀과의 의사소통에서 발생하는 비용에 신경 써야 합니다. 조직의 재정을 관리하는 대신 제품에 대한 리스크를 관리한다고 볼 수 있습니다. 실수로 또는 의도적으로 코드베이스에 스며들 수 있는 리스크는 조직의 매출과 수익에 부정적인 영향을 미치고, 유지보수 비용과 새로운 기능을 추가하는 데 드는 비용을 증가시킬 수 있으며, 무엇보다 개발자의 멘탈을 부숩니다. 개발자에게 종속성을 코드에만 국한시켜서는 안됩니다. 속한 조직이 가진 종속성과 그 종속성을 관리할 떄 발생하는 비용을 고려하며 개발을 해야 합니다.