좋은 소프트웨어?

잘 만들었는데 기능이 사용자의 목적에 부합하지 않는다면? 사용자의 목적에 부합하는 기능을 갖추었지만 비효율적이거나 신뢰할 수 없다면? 이런 질문에 대한 답으로 아래와 같은 수식어가 붙는 소프트웨어를 만들어야 되겠다고 생각했습니다. Effective: Why, What, How, When, Where, Who Efficiency, Reliable: How...

모두가 윈윈(win-win)하는 방법

소프트웨어 개발에는 많은 이해관계자들이 있습니다. 우리는 많은 소프트웨어개발프로젝트에서 이해관계자들이 한정된 돈과 시간에 원하는 품질의 소프트웨어 개발이라는 동일한 목적을 향해 달려가면서도 서로 상처를 주고 불필요한 논쟁속에서 벗어나지 못하는 일들을 많이 보아왔습니다. 아래 널뛰기 사진은 그런 우리들이 어떻게 상생할 수 있는지를 보여줍니다....

생각하고, 생각하고, 생각하라

‘생각하고, 생각하고, 생각하라.’ 프로그래밍에 있어 이보다 지키기 힘든 명령은 없을 듯 합니다. 우리의 프로그래밍적 본능은 펜보다는 생각과 동시에 키보드로 손이 갑니다. 프로젝트에는 시간과 비용의 제약이 따릅니다. 우리는 이 제약이 커지면, 코딩, 테스트, 디버깅이 이 제약을 만족할 수 있는 유일한 방법처럼 반복합니다. 그러나 코딩, 테스트, 디버깅이 반복될 수록 제약은 처음부터 도저히 만족할 수 없는 것이...