개발자는 멀티태스킹 기계가 아니다.

2015. 5. 6. 21:41IT/잡설

문득.. 예전에 작성했던 포스트가 떠올라..

다시 한번 옮겨봅니다. 


원문출처 : http://www.joelonsoftware.com/articles/fog0000000022.html

조엘 온 소프트웨어
주소 : http://www.joelonsoftware.com/
책 : http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200503170001

제목 : 개발자는 멀티태스킹 기계가 아니다.

두가지 계산 문제 A,B가 있다고 합시다.
각계산은 CPU 시간 10초가 걸립니다. CPU는 하나뿐이며, 편의상 큐에는 다른 계산이 없다고 가정합시다.
CPU에서 멀티태스킹은 선택입니다.따라서 직력처리 방식을 활용해서 어느 한쪽을 선택해 하나를 마치고 다른 계산을 계속할 수 있습니다.

계산 A계산 B
1234567891011121314151617181920



아래는 멀티태스킹을 활용한 방법

1234567891011121314151617181920



방식계산A과정에서 경과된 시간계산B과정에서 경과된 시간평균
직렬10초20초15초
멀티태스킹19초20초19.5초



-과업전환 0.5초 가정시

방식계산A과정에서 경과된 시간계산B과정에서 경과된 시간평균
직렬10초20초+1과업전환=20.5초15.25초
멀티태스킹19초+18과업전환=28초20초+19과업전환=29.5초28.75초



-과업전환 1분 가정시

방식계산A과정에서 경과된 시간계산B과정에서 경과된 시간평균
직렬10초20초+1과업전환=80초45초
멀티태스킹19초+18과업전환=1099초20초+19과업전환=1160초거의19분




1.직렬처리방식은 평균적으로 결과값이 더 빨리 나온다.
2.과업 전환이 오래걸릴수록, 멀티태스킹을 위해 지불해야 하는 대가도 커진다.



덧 >


원문에서도 언급하고 있지만, 멀티태스킹 자체에 반기를 들고 있는것은 아닙니다.
다만 개발자가 업무처리를 진행함에 있어 그 효율성에 대해서 이야기 하는겁니다.
제목에서 말하듯 "사람은 멀티태스킹 기계가 아니"기 때문에 한가지 일에 몰두하는것이 중요하다는것입니다.
더더욱 사람은 기계보다 업무전환에 필요한 시간이 길게듭니다.
물론 사람에 따라 다르긴 하겠지만  대부분의 사람들이 어떤 한가지일에 집중했다가 다른 일로 바꾸는데 걸리는 시간은 몇시간이상 걸릴수 있다고 봅니다.

관리자는 장애물을 제거해서 개발들이 한가지 일에 몰두할 수 있도록 해줘야할 책임이 있다는것을 알아야 합니다.
결코 두가지이상의 일을 병행하게 방치해서는 안된다는것입니다.


또한 훌륭한 개발자는 자신이 한가지 일에 몰두할 수 있도록 관리자에게 알려주어야 함을 잊지 않을것입니다.

반응형