테슬라의 일론머스크가 Everyday Astronaut라고 하는 우주 항공 유튜브 채널과 인터뷰를 하면서, 평소 머스크가 가지고 있는 엔지니어링 5 원칙을 소개했다. 그는 이 원칙을 모르고 모델 3 양산 개발을 하면서 시행착오를 겪었다고 한다. 1번부터 순서대로 진행한 것이 아닌 거꾸로 5번 자동화로 문제를 해결하려고 하는 실수를 했던 것이다.
내용을 읽어보면 이는 자동차 개발 엔지니어링뿐만 아니라, SW 개발에도 그대로 적용할 수 있는 보편적인 원칙으로 보인다. 설계의 중요성, 자기가 믿고 있는 것이 정말 객관적으로 최선인지 아니면 관성에 의해 자기 합리화를 하고 있는 것인지 돌아봐야 한다. 또 뭔가를 더하기만 하고 덜어낼지를 모르는 사람들에게 있어서도 도움이 되는 조언들이다.
▶ 일론 머스크의 5단계 엔지니어링 원칙
일론은 엔지니어링 업무에 임하는 데 있어서 자신만의 5단계 원칙을 가지고 있다고 이야기합니다.
#1. 설계 요구사항이 정말 맞는 것인지 검증해라
특히 똑똑한 사람이 정한 것일수록, 충분히 검증되지 않았을 가능성이 높다.
모든 설계는 그 잘못된 정도의 차이가 있을 뿐, 일단 모두 잘못되었다고 가정하고 검증에 매달려라.
#2. 필요 없는 부품이나 프로세스를 제거해라
혹시나 필요할지도 몰라 추가한, 불필요한 부품이나 프로세스가 언제나 있기 마련이다.
이런 애매한 것들은 진짜 필요한 것인지 바로 물어보면서 검증할 수 있도록, 누구 아이디어인지 팀 이름 대신 담당자 이름을 직접 기재해라.
#3. 설계를 단순화, 최적화해라
엔지니어들의 가장 흔한 실수는, 애초에 존재해서는 안 되는 것을 최적화시키는 데 매달리는 것이다.
우리는 고등학교와 대학교에서 항상 질문에만 답하도록 훈련받았지만, 질문의 전제가 옳은 지부터 의문을 제기해야 할 때가 있다.
#4. 생산 속도를 높여라
하지만 앞의 3가지를 끝내지 않은 상태에서 생산 속도를 밀어붙여선 안된다. 그렇지 않으면 자기 무덤을 더 빠르게 파는 것이나 마찬가지다.
#5. 자동화해라
더 설명이 필요 없습니다. 장기전에서 자동화의 힘이란 엄청나죠.
'개발일기 > 설계와디자인' 카테고리의 다른 글
monolithic time(모노리틱 타임)이란? monotonic time(모노토닉 타임)과의 차이점 (0) | 2022.07.03 |
---|---|
const_iterator와 iterator의 차이점? 성능 차이는? (0) | 2021.11.09 |
C++ 네임스페이스 사용 장점과 단점 (using namespace std) (0) | 2021.11.06 |
댓글