 |
“팀원에게 발전적인 영향력을 미치며 일하기” |
 |


이번 인터뷰의 주인공은 자동차용 임베디드 소프트웨어 개발자로 일하는 신승환 님입니다. 자동차용 임베디드 소프트웨어 개발의 특수성과 어떤 팀장으로서 살아갈지에 대한 평소 생각을 들어보았습니다.
|
자동차라고 하면 흔히 기계 장치를 떠올리게 마련이라 소프트웨어로 엔진을 제어한다는 게 좀 생소하게 느껴집니다.
아무래도 생소할 수밖에 없습니다. 차 한 대를 개발하는 데 보통 20개월이 넘고, 도요타는 18개월이 걸린다고 합니다. 그 동안 개발 외에도 테스트나 검증 작업이 길어지는데 소프트웨어도 단순하게 짤 수만은 없게 됩니다. 안전이 중요하거든요. SI에서도 SLA(Service Level Agreement)라고 해서 서비스가 중지되면 안 되는데 자동차는 특히 사람의 생명과 직결되어 있으므로 안전이나 검증, 신뢰성을 많이 따지는 것이 특징이고 프로그램을 개발할 때도 그런 점에 더 초점을 맞춥니다.
|
 |
 |
|
기존 개발 도구와 전용 도구는 어떤 식으로 활용되나요.
타깃 장치에 올리는 크로스 컴파일러나 애플리케이션 개발에 쓰는 개발 환경은 기존에 개발자들에게 익숙한 IDE 같은 도구들을 씁니다. 그 외에 검증이나 테스팅에는 전용 도구를 씁니다. 아무래도 자동차를 모사해 돌려 봐야 하는 것들이 있어서 기존 개발자들에게는 생소한 도구들이 좀 있습니다.
|
 |
 |
|
기존 개발과 다른 점이 있다면...
보통 애플리케이션을 개발할 때는 요구사항이 불명확한데 자동차용 임베디드 소프트웨어에서는 스펙을 상당히 명확하게 정의하고 넘어가려 합니다. 다만 초창기이다 보니 역할이 불분명해 생기는 문제가 좀 있습니다.
|
 |
 |
|
엔진 제어에서 소프트웨어가 맡는 역할은 무엇인가요.
해외의 경우 요구사항이 정의되면 기능 디자이너가 기존 라이브러리의 기능을 쓸 것인지, 기능을 새로 구현할 것인지 결정을 합니다. 새 기능을 구현해야 하면 모델을 만들고 시뮬레이션을 합니다. 문제가 없으면 시뮬레이션에서 C 코드를 자동 생성, 컴파일해 바이너리 파일을 만들어 엔진 제어 유닛을 구현한 하드웨어에 올려 봅니다. 그러면 마치 자동차가 움직이는 것처럼 엔진 제어 유닛을 테스트합니다. 그 후 실제 자동차에 올리고 트랙에서 테스트를 하는데요. 거기까지 통과하면 본격적으로 소프트웨어 개발을 시작합니다. 이렇게 완성된 임베디드 소프트웨어는 여러 가지 일을 합니다. 차는 여러 나라에 팔리는데 각 나라의 기후 조건이나 배기가스 기준, 연비 기준에 맞춰야 합니다. 이 경우 소프트웨어 로직은 그대로 두고 변수를 다르게 주는 캘리브레이션으로 자동차의 특성을 바꾸는 작업을 합니다. 이런 작업을 거쳐 미국용, 한국용 등의 자동차가 나오는 거죠. 자동차 임베디드 소프트웨어를 개발하는 데 있어 흥미로운 부분입니다.
|
 |
 |
|
첫 책 제목(『도와주세요! 팀장이 됐어요』)이 특이한데 팀장은 타고난다고 보시나요, 아니면 후천적으로 훈련을 통해 키워진다고 보시나요.
첫 책으로 프로젝트 관리에 관한 책을 쓰리라고는 생각하지 못했는데, 팀장 역할에 대한 관심이 있었다기보다는 ‘나는 크면 아빠처럼 살지 않을 거야’와 비슷한 고민에서 시작된 것 같습니다. 그래서 여러 가지 생각을 하고 책도 찾아보면서 ‘내가 팀장에 되면 어떻게 할 것인가’에 대해 정리해 첫 번째 책을 쓰게 됐습니다. 저는 후천적이었다고 봅니다. 첫 책에서 쓴 것이 초보 팀장으로서 괜찮은 모습이라고 생각했는데 요즘은 조직 입장에서 봤을 때 필요한 PM은 어떤 모습일까 하는 생각도 합니다.
|
 |
 |
|
프로젝트 리더는 어찌 보면 ‘사람을 프로그래밍하는 일’이 아닐까 하는데 그런 과정에서 느낀 점이라면...
권위주의에서 벗어나 명령과 실행보다는 영향력을 행사하는 게 중요하다고 생각합니다. 가장 어려운 점은 제가 원하는 것과 팀원이 생각하는 것이 다를 때입니다. 그래서 무언가를 시도하거나 새로운 것을 도입하려 할 때 그런 것들을 해보지 않은 팀원들에게 강제로 시키는 것이 아니라 자발적으로 따라오게 하는 것을 고민하고 있습니다. 몇 년 전만 해도 문제의 해법에 대한 견해가 서로 다르면 ‘이게 맞으니 이렇게 해요’하고 시켰고 팀원들이 따라오기는 했는데 제가 생각했던 모습은 아니었습니다. 항상 그렇지는 않지만 요즘은 서로 대화를 많이 해서 의견을 절충하거나 팀원들이 스스로 깨달을 수 있도록 하려고 노력합니다. 또 신입 사원을 코치할 때 보람을 많이 느낍니다. 신입 사원들을 보면 주어진 일만 하는 게 아니라 그 일의 근본 원리를 파악하기를 좋아하는 사람들이 있습니다. 다만 일하는 요령을 아직 잘 모르는 상태인데 계획을 짤 수 있게 도와주고 그 결과에 대해 피드백과 개선 방향을 알려주고 발전해 나가는 모습을 보는 게 좋습니다. 마지막으로 프로젝트에서 가장 중시하는 게 의사소통인데 프로젝트 마지막까지 고객이나 팀원들과 끊임없이 의사소통을 통해 프로젝트를 잘 마무리 지었을 때 보람을 느낍니다.
|
 |
 |
|
애자일 방법론을 도입한 초창기와 현재를 비교했을 때 달라진 것은 무엇인가요.
정확히 연도는 기억나지는 않지만 애자일 방법론을 처음 실천해 본 건 『XP Installed』라는 책을 읽고 선배 사원과 짝 프로그래밍을 해본 것이었습니다. 많을 걸 해보려 했는데 가장 잘 된 게 짝 프로그래밍이었습니다. 노닥거린다고(?) 오해를 받기는 했지만 성과가 좋았거든요. 그 외의 실천 방법들은 처음에는 잘 되지 않더군요. 달라진 점은 전에는 의식적으로 하려고 했다면 요즘은 애자일 방법론을 될 수 있으면 그대로 적용해 본다는 점입니다. 다만 어려운 점은 팀원이 계속 바뀌는 바람에 매번 설명을 다시 하고 설득해야 한다는 점입니다. 그래도 개인적으로는 애자일 방법론을 계속 해나가는 게 좋다는 생각이 듭니다.
|
 |
 |
|
가장 인상 깊었던 프로젝트 사례는 무엇인가요.
『드리밍 인 코드』에 나온 것과 비슷하게 최대 규모, 최장 기간의 프로젝트를 본 적이 있습니다. 프로젝트에서 결정권을 지닌 사람들이 어떤 판단을 하고 어떤 조치를 취하느냐가 중요하다는 걸 배웠습니다. 제가 PM으로 했던 첫 프로젝트도 기억에 남습니다. PM이 되면 하고 싶다고 생각했던 구상을 모두 적용해 볼 수 있었습니다. 이상으로 생각했던 것을 사람들과 함께 실천해 볼 수 있구나 하는 것을 깨달았습니다.
|
 |
 |
|
팀장으로 일하시기도 했지만 ‘프로그래밍은 일종의 로망’이라고 하셨는데 그 동안 직접 개발하셨던 것 중에서 기억에 남는 것은 무엇인가요.
8시에 출근해 새벽 2시에 퇴근하던 시절, 당시에는 JSP가 초기 버전이었고 지금과 같은 프레임워크가 없었습니다. 자바는 어느 정도 알았지만 JSP는 아직 익숙하지 않을 때였는데 지금과 같은 수준은 아니지만 데이터베이스 레이어나 미들웨어 레이어를 프레임워크 비슷하게 만들었던 적이 있습니다. 어렸을 때 만들었던 프로그램 중에서는 XT에서 GW-베이직으로 만든 교육 프로그램이 기억납니다.
|
 |
 |
|
번역이나 집필 작업도 꾸준히 해오셨는데 스스로에게 어떤 의미인가요.
처음 번역할 때 느낌과 두 번째 번역할 때 느낌, 그리고 처음 책을 쓸 때와 두 번째 쓸 때 느낌이 달랐습니다. 처음 번역할 때는 꽤 힘들었습니다. 제 이름이 들어간 번역서를 한 번 내보고 싶다는 소박한(?) 생각에서 시작했는데 예상만큼 쉽지 않더군요. 지나고 보니 도움이 많이 됐는데 특히 한국어 표현에 대해 많이 생각해 보고 한국어를 잘 쓰는 법에 대해 고민하게 된 계기였습니다. 번역서를 낸 후에 문득 제가 아는 것을 정리해 책을 쓰고 싶다는 생각이 들었습니다. 마침 우연찮게 제가 오랫동안 고민해온 주제도 있었고요. 그렇게 첫 책이 나왔습니다. 책이 나오고 나서 생각해 보니 책 집필은 번역보다 더 어렵더군요. 이렇게 힘들게 책을 왜 써야 하는 생각도 들었습니다. 그런데 소프트웨어 개발자는 어찌 보면 지식을 파는 사람이고 자기 지식을 정리하는 게 중요한데 대부분 노동력만 제공하고 월급을 받는 걸로 그치더군요. 물론 소프트웨어 개발자는 코드로 승부하는 사람이지만 자신의 지식 체계를 정리해 새로운 관점으로 제시해 생각을 거리를 던지는 작업도 중요하다고 생각합니다. 할 수만 있다면 개발자들도 책을 쓰는 게 좋다고 봅니다. 정리하면 소박한 생각에서 시작한 일이었고 책을 쓰느라 시간을 많이 들이는 것에 비해 경제적 혜택은 적지만 책을 쓰는 건 제가 배운 걸 지식으로 정리해야 하고 그 자체가 재미가 느껴지고 결국은 스스로에게 공부가 되기 때문입니다.
|
 |
 |
|
앞으로 계획은 무엇인가요.
두 번째 책(『겸손한 개발자가 만든 거만한 소프트웨어』)을 쓴 후 두세 달은 책도 읽지 않고 글도 쓰지 않았는데 요즘 다시 책도 읽고 여러 가지 생각과 관점을 정리하고 있습니다. 기회가 되면 다시 책을 쓸 수도 있으니까요. 그리고 지금 하는 자동차용 임베디드 소프트웨어 개발에서도 일정한 결과를 내고 싶습니다.
|
 |
 |
|
|
 |
|
[신승환 소개] 오토에버시스템즈에서 근무하고 있으며 블로그(http://talk-with-hani.com)에 공부한 것과 생각한 것을 꾸준히 글로 남기려고 노력한다.
|
| 이 문서 북마킹 하기
|
 |
 |
 |
 |
|
[지난 인터뷰 보기]
|
 |
 |

|
|
 |
|
 |