박시용님의 요약
33. 단순화하는건 매우 어렵다. 일종의 주문처럼 반복하는 아주 기본적인 제1원리 알고리즘이 있다.먼저 요구사항에 의문을 제기하고 요구사항을 덜 어리석게 만드는것이다.요구사항은 항상 어리석고, 그 요구사항을 만드는 사람도 완벽하지 않다. 여기서부터 시작해야 하는것.
34. 두번째로는 어떤 단계나 부품, 프로세스 단계를 완전히 삭제하려고 노력해야 하는것이다. 삭제한것의 최소 10%를 다시 추가해야 한다면 충분히 삭제하지 않은것. 다소 비논리적으로 보일 수 있지만, 사람들은 종종 다시 추가하도록 강요받지 않았다는 이유로 성공했다고 느낀다.
35. 세번째는 최적화하거나 단순화하려고 노력하는것이다. 이것은 쉽지 않다. 똑똑한 엔지니어들의 가장 흔한 실수는 존재해서는 안되는것을 최적화 하는것이다.
36. 네번째는 주어진 모든것은 그것보다 더 빠르게 할 수 있다는것이다. 현재 속도가 어떻든 더 빠르게 할 수 있다. 그러나 삭제하고 최적화하려고 노력하기 전에는 속도를 높이지 말아야 한다.
37. 다섯번째는 자동화 하는것이다. 나는 예전에 자동화하고, 속도를 높이고, 단순화 한다음 삭제했다. (앞선 5가지 절차를 거꾸로 함) 그 실수가 너무 고통스러웠어서 이 5가지 주문을 만든것이다.
38. 이 주문을 적용한 멤피스에 있는 슈퍼컴퓨터 클러스터는 불과 몇주만에 만들어졌다. 나는 새벽까지 있으면서 모든 사람이 하고 있는 모든 단계들을 살펴보았다. 그래야 뭔가가 어리석거나 비효율적일 때 알아차릴 수 있다.
39. 나는 최전선에 있는 사람들이 하는 일을 직접 몇 번이라도 해보려고 노력한다. 광섬유 케이블을 연결하고, PCI 연결을 진단하는 등의 일이다. 대규모 클러스터의 제한 요소는 주로 케이블링이다. 슈퍼컴퓨터 센터를 돌아다니면서 커다란 뇌속을 걸어다니는 느낌을 받았다.
단순화 알고리즘 (엔지니어링 알고리즘)
- 먼저 요구사항에 의문을 제기하고 요구사항을 덜 어리석게 만드는것이다.
(요구사항은 항상 어리석고, 그 요구사항을 만드는 사람도 완벽하지 않다.) - 어떤 단계나 부품, 프로세스 단계를 완전히 삭제하려고 노력해야 하는것이다.
(제한것의 최소 10%를 다시 추가해야 한다면 충분히 삭제하지 않은것.) - 최적화하거나 단순화하려고 노력하는것이다.
(똑똑한 엔지니어들의 가장 흔한 실수는 존재해서는 안되는 것을 최적화 하는것이다. ) - 주어진 모든것은 그것보다 더 빠르게 할 수 있다는것이다.
(삭제하고 최적화하려고 노력하기 전에는 속도를 높이지 말아야 한다.) - 자동화 하는것이다.