히타치의 QC: 예술품을 만드는 게 아니고 우유를 만드는 거야
히타치의 QC 공정은 NASA나 앞서 말한 부란을 개발한 ‘TsAGI’ 등의 연구소와 달리, 아름다운 공정을 거치는 것이 아니다. 이 프로세스는 달리 말해 ‘표준화 우유’를 만드는 것에 가깝다. 이것은 폄하라기보단, 소프트웨어를 공산품으로 치환해 버린 도발적인 엔지니어링에 대한 나름의 경의이다.
우선, 이 비유만큼이나 히타치의 산출에 대해서는 우유를 실제 시나리오에 넣는 것이 꽤 정확하다. 이것을 정말로 우유 공장으로 생각해 보자.
기본 골격: V 모델이긴 한데….
기본적으로 이것도 V 모델을 따른다. 그러나 번뜩이고 천재적인 박사들의 무결한 엔지니어링이 아닌, 3S라고 불리는 방법론이 도입되어 있다. 말도 많고 탈도 많지만, 표준화된 프로세스를 따라가기 위해 이 3S는 제법 중요한 가치로 보인다.
3S: Standarization, Specialization, Simplification
3S의 세 가치를 한자어로 다시 쓰면, 표준화, 전문화, 단순화이다. 표준화: 양식, 명명 규칙(Naming Convention), 코딩 스타일의 통일 전문화: ‘만드는 사람과 검사하는 사람은 다른’ 설계/구현/검사 공정의 분리와 전문화 단순화: 복잡한 기능을 재사용 가능한 작은 모듈 단위로 분리
기본적으로 표준화는 ‘우유는 반드시 지방이 6% 함유, 세균수, 체세포수 기준 1등급 만족, 살균 방식은 고온 살균’과 같은 것을 지정하는 것이다. 이러한 과정에서는 ‘원유 자체로 특별히 깨끗한 목장의 우유’와 ‘지방이 부족해서 깔끔하지만 싱거운 우유’같은 것은 중요하지 않다. 표준적인 ‘지방 6%의 표준화 우유’를 만들기 위한 원료가 될 뿐이다. 전문화 단계는 ‘목장의 낙농업자, 병원의 수의사, 공장의 표준화 엔지니어’가 모두 다른 상태이다. 이런 상태 분리를 통하여 권한을 제약하고 각 단계의 최소 기준을 충족시킨다. 단순화는 현대적 모듈화와 상당히 맞닿아 있으며, 이전 V 모델 포스트와도 연관이 깊다. 이러한 맥락을 고려하여 읽어 주면 좋겠다.
히타치의 V 모델: 우유를 만든다니까?
- 요구 분석: 고객이 요구한 우유의 사양서를 우유 공장을 위한 표준 사양서 양식으로 옮겨서 분석한다.
- 기본 설계: 우유의 전반적인 제조 공정을 정의하고, 어떤 공정을 재사용할지 정의한다.
- 상세 설계: 전문 측정 도구 등을 이용해서, 현장에서의 배합 수정이 필요 없을 정도로 세밀한 우유 배합 로직을 완성한다.
- 결합 검사: 모듈 간의 인터페이스와 데이터 흐름을 검증한다. 우유로 따지면 이 때에 3S가 개입하는데, 어떤 단계의 우유에서 얼마나 오차가 있는지 통계적 품질 관리를 이용해서, 소독 전 단계에서 혼합유의 세균수가 너무 낮으면 지역 농부들의 천재성이 아닌 테스트 샘플의 검사 문제로 간주하여 재검사를 요청한다.
- 시스템 검사: 최종 승인 후 살균 우유 샘플을 만들어서 우유를 QC단계에 투입한다.
- 운영 및 유지보수: 판매 중에 발생하는 결함을 다시 1번 단계로 보내어 PDCA 순환을 통해 버그를 해결한다.
START
|
+-- [ 원유 입고 ] ----------------------------------+
| | - 목장별 세균수/지방 함량 측정 |
| | - 1등급 미달 원유 즉시 반품 |
| |
+-- { 반복: 모든 탱크의 배합이 끝날 때까지 } -------+
| | |
| |-- ( 지방 함량 표준화 작업 ) |
| | |
| |-- < 선택: 세균수 측정 결과가 정상인가? > -----+
| | | |
| | |-- [ YES ] --+-- [ 고온 살균 공정 ] |
| | | +-- [ 비타민 첨가 ] |
| | | +-- [ 냉각 및 저장 ] |
| | | |
| | |-- [ NO ] --+-- [ 공정 중단 ] |
| | +-- [ 샘플 재검사 요청 ] |
| | +-- [ 설비 소독 실행 ] |
| | |
+---------------------------------------------------+
|
+-- [ 패키징 및 출하 ] -----------------------------+
| | - 유통기한 타각 |
| | - 물류 센터 배송 |
| |
END
말도 많고 탈도 많은 이 소프트웨어 공장의 장점은 기존의 V 모델보다도 극도로 예측 가능하다는 점에 있다. 이런 수준의 검증을 거치는 이상, 엔지니어 한 명의 독감으로 생긴 버그가 소프트웨어의 품질을 나쁘게 만들지는 못할 것이다.
그러나, 이런 경우에는 ‘원래부터 청결한 원유 공급 목장’을 추적해서 발주를 늘리는 등의 프로세스를 실행하기가 구조적으로 힘들다.
결과적으로 이러한 모델은 유지 보수를 목적으로 삼는 조직에서는 매우 지향할 만한 방법론이나, 새로운 제품을 개발하거나 하는 조직의 경우 애자일이라던가, 보다 유동적인 개발 프로세스가 발생함을 시사한다.
결론
히타치식 QA는 한국의 IT 분위기 전반을 90년대부터 20년대까지 관통하고 있는 언어이다. 이런 QA가 검증을 강화해서 한국이 IT가 괜찮다는 분석부터, ‘70년대에는 안경 공장, 20년대에는 코드 공장’이라는 만평이 나오는 분석까지 다양한 의견이 교차하지만, 눈 앞에 놓인 현실에 대해서는 도망칠 수가 없는 노릇이다.
이러한 구성에서 개인, 혹은 노동자의 의견은 대부분 중요하지 않다. 이것은 어떻게 해야 안전하고 문제가 생기지 않는 소프트웨어를 개발하는가에 대한 의견이기도 한 동시에, 어떻게 기술직으로의 판단이 ‘표준화되지 않은 시골의 소젖’으로 귀결되는지 보여주는 ‘명암이 교차하는 설계’라고 할 수 있을 것이다.
다음은 미래지향적인, 그리고 ‘많은 경우 한국에서 찾아볼 수 없는’ 애자일 방법론에 대해서 언급할 예정이다.
이렇게 하여서 ‘고전 삼총사’에 대한 리뷰를 마친다.