어떤식으로 시스템을 만들어야 할까?

 

제품 개발에는 비용, 품질, 기간, 범위라는 네가지 제약 조건이 있다. 기간을 무시하고 빨리 개발하려고 밀어붙이면 품질이 저하되거나 개발 인력이 늘어나 폭발적인 비용을 감수해야 한다. 물론, 기간만 단축시키고 개발 인력을 늘리지 않는 곳도 존재한다.

image

같은 비용으로 더 나은 품질의 소프트웨어를 만들려면 기능을 축소하거나, 소수 정예의 개발자들이 충분한 시간을 가지고 개발을 하는 것이 현실적이다. (맨먼스 미신도 있지 않은가?) 비즈니스의 성격에 따라 위 변수중 어떤것을 우선해야 할지 결정해야 한다. 좋은 시스템을 만든다는 것은 위 변수의 값이 타당해야 한다. 비즈니스/시장상황에 의해 위의 방정식이 무의미한 극단적인 프로젝트도 존재하겠지만 그러한 방정식의 해답은 없다. 이런 경우 실현 불가능한 것을 가려내고, 추후 실현 가능한 대안을 제시해야 되지만 비기술자가 결정을 내리는 경우에는 엉망인 코드만 양산할 뿐이다. 이 세상에는 기술로 이해할 수 없는 것들이 많이 존재한다.

-휴가라서 이런 저런 잡생각이 많이 드는 나

잠깐, 글이 유익했나요?

Buy Me A Coffee