[김종원의 망치와 모루] 화성에서 온 HW, 금성에서 온 SW(:연애편)

전문가 칼럼입력 :2003/06/26 00:00

명승은 기자

HW 개발자와 SW 개발자는 전공, 사용하는 개발 도구, 작업 공간 등 많은 부분에서 키보드와 납땜기구 만큼이나 큰 차이가 있다. 이렇게 다르다보니 문제가 발생했을 때 인식 방법이나 해결을 위해 문제에 접근하는 방법에 있어서도 많은 차이가 있다.다른 행성에서 온 외계인처럼 서로 이해하지 못하는 남녀와 같이 HW, SW 개발자들은 서로를 잘 이해하지 못하고 서로의 탓이라 주장하며 싸우기 십상이다. 계속 남의 탓만 한다면 프로젝트는 실패할 수밖에 없을 것이다.필자가 개발하고 있는 HW는 최신 부품이 들어가는 스마트 폰이다. 개발 일정이 무리하게 잡혀 있어 개발 기간에 여유가 없고 개발에 투입되는 인력도 수십 명에 이른다. 많은 팀이 협업을 해야 하는 상황이다 보니 의사소통에 많은 오해가 생기고 시행착오가 발생하고 있다. 개발 프로세스가 확립돼 있지 않아 시행착오도 많았고, 개발 조직에 대한 이해에도 많은 시간이 필요했다. 지난 번 컬럼에 있었던 HW 개발자 태도에 대해 SW 개발자가 고려해야 할 사항을 정리해 보았다.① 눈이나 귀로 확인할 수 있는 결과가 우선적으로 보이길 원한다. 새롭게 추가된 부품에 대해 동작을 확인하고 싶어 한다.조언 : 개발 초기의 조립된 HW 세트들은 각양각색으로 동작한다. HW 부품이 제대로 부착됐는지 불량 부품은 없는지 확인할 수 있는 테스트용 모니터 프로그램을 우선 개발해야 한다. 기획된 UI 시안대로 SW를 개발하는 것도 빠듯한 일정이지만 HW 안정성을 확보하지 못하면 다음 단계로 나갈 수 없음을 인식해야 한다.② HW 설계의 잘못이나 문제를 SW적으로 해결할 수 있다면 그 방법을 선호한다. HW 변경은 제일 나중에 고려한다.조언 : HW 변경이 발생하면 다음 개발보드 PCB 조립 때까지 기다리거나 손으로 부품을 수정한 보드에서 개발해야 한다. SW적으로 피해갈 수 있다면 HW 변경 요청을 한 다음 결과물이 도착할 때까지 SW로 변경해서 작업할 수 있도록 한다. HW 설계 잘못으로 인한 SW 변경 일정 지연까지 고려해야 제대로 된 개발 일정을 산정할 수 있을 것이다.③ HW 설계 변경이 무척 힘들다고 말하는 반면, SW 구조 설계 변경은 아주 쉽게 생각한다.조언 : HW 변경은 변경된 부품 주위의 부품에도 영향을 미치고 개발 단가, 개발 제품의 크기, 제품 신뢰성에 영향을 미친다. 특히 아날로그 회로에 대한 변경은 HW 개발자들에게는 공포의 대상이다. 부품이나 설계 변경에 대해 반대하는 경우에는 SW 변경만으로 해결될 수 있는 문제인지 조사하고, 그렇지 않다면 차근차근 설명해 HW 변경을 이끌어 내는 방법밖에 없다. 두 개발자 그룹의 목표는 같다는 사실을 잊지 말자.④ 추가 또는 변경된 부품에 대한 디바이스 드라이버는 적용된 개발 보드가 나올 시점에 같이 동작하길 원한다. SW 개발자는 직접 테스트없이 부품의 데이터 시트만 있어도 처음 사용하는 부품의 디바이스 드라이버를 개발할 수 있다고 믿는다.조언 : 최신형 부품의 경우 샘플 코드나 데이터 시트가 빈약한 경우가 많다. 부품 도착 시기도 예상보다 늦어지는 경우가 많아 일정에 차질을 빚게 된다. 따라서 HW가 준비되고 난 다음에 개발을 시작하겠다고 한다면, 개발 일정을 맞추기 위해서는 날밤을 새어야 할 것이다. 독립적으로 개발할 수 있는 부분이 있다면 미리 해두는 것이 일정을 당기는 일이다. HW 개발자도 부품이 장착된 개발 보드가 나오는 시점에 SW가 동작할 것이라 생각하지 않는다. 다만 그렇게 요구할 뿐이다.⑤ HW 설계상의 결함은 SW 개발자가 찾아주는 것이라 생각한다. 결국 SW 개발자는 제품 회로도를 뒤적일 수밖에 없게 된다. SW 개발자가 점점 HW 설계자로 변하게 된다.조언 : 오실로스코프(전기적 전압 상태를 그래프로 보여주는 장치)나 로직 애널라이저(회로상의 디지털 로직을 분석 디버깅을 하기 위한 장치)의 사용법을 익혀두는 것이 좋을지도 모른다. HW 디버거의 사용법을 익혀두면 바쁜 HW 개발자 없이도 혼자서 디버깅을 할 수 있다. 물론 회로에서 디버깅을 위한 선을 뽑는 것은 도움을 받아야 한다. 회로도 뿐만 아니라 부품 배치도에서 원하는 부품을 찾고 오실로스코프로 봐야 할 핀을 찾는 법을 익혀두면 더 빨리 집에 갈 수 있다. ⑥ HW 변경 사항에 대해서는 SW 개발자에게 아무런 보고도 하지 않는다. 모든 것은 회로도에 반영돼 있기 때문에 SW 개발자들도 알 수 있다고 생각한다. 물론 새로 나온 HW의 회로도는 SW 개발자들이 아닌 HW 개발자들의 책상위에 놓여 있다.조언 : HW 개발자들은 PC를 사용하기 보다는 납땜 인두와 오실로스코프로 작업한다. 이메일을 보내면 답장 대신 전화를 해온다. 문서 작업을 기대하지 마라. 빠른 응답을 원한다면 메일을 보내고 전화도 해야할 것이다. HW 변경 일정을 알고 싶다면, 정기 회의에서 개발 보드 로드맵이나 부품 수급 일정에 대해서 명확하게 요구해야 한다. HW 개발자의 자리는 PC 앞이 아니라 작업실이라는 것을 잊지말자.⑦ 예전에 양산된 제품에서 가져온 모듈의 회로는 검증된 회로라 확신한다. 주변 회로가 모두 바뀌었어도 정상적으로 동작할 것이라 확신한다. 해당 문제가 발생하면 검증된 것이라 주장하며 숨겨진 버그의 가능성에 대해 무시한다.조언 : 분명 이번에 새로 설계한 모듈보다 이전에 양산된 모듈에서 가져온 회로가 안정성이 있는 것은 사실이다. 무조건 해당 모듈의 문제라고 확신하지 말고 그 회로 주변의 다른 회로에서 들어가는 선의 전압을 검사하거나 구동 SW를 다시 검토하는 것이 우선이다. 그렇게 하고도 문제가 없다면 해당 모듈을 조사해보자. 해당 모듈로 들어가는 라인을 모두 검사할 수 있게 테스트 라인을 뽑아달라고 하면 HW 개발자들은 기꺼이 협조할 것이다.⑧ 부품 공급이나 교체 일정에 대해 SW 개발자에게 알리기를 꺼려한다. SW 개발자들이 비명을 지를 것이기 때문에.조언 : HW 개발자들은 수백 개 이상의 부품 조달을 담당하고 있다. 특정한 날에 모든 부품이 준비돼 조립되도록 하는 것도 중요한 역할 중 하나이다. 부품이 바뀌고 개발 보드가 계속 수정되면 HW 개발자들이 계속 고생하고 있다는 것을 짐작해야 할 것이다. 어쩌면 너무도 바빠서 SW 개발자들에게 알려주어야 한다는 사실을 잊었을 수도 있다. 담배 피우러 잠시 나간다고 할 때 같이 쫓아나가 일정에 대해 넌지시 물어보거나 따뜻한 한마디 말로 위로를 해준다면 평상시 듣지 못한 이야기를 들을 수 있을 것이다. HW 개발자는 깜짝쇼를 하는 사람들이 아니라 SW 개발자와 마찬가지로 시간에 쫓기면서 일하는 엔지니어 이상은 아니라는 사실을 잊지 말자. @

*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.