(포스팅 2022.08.05)
- 목차
타 부서와의 커뮤니케이션
중소기업의 경우
양산팀에 바이너리 전달
마치며
저는 안드로이드 시스템 개발자입니다. AP 제조사에서 기본동작하는 안드로이드 소스코드를 받아서, 필요한 수정을 하고 APK를 추가하여 바이너리를 만듭니다. 제품을 양산할 시점이 되면 다른 개발자가 추가한 코드까지 취합하고 문서로 정리하여 릴리즈를 발행합니다.
양산팀에서는 개발팀에서 받은 바이너리를 보드에 다운로드합니다. SMT가 완료된 보드를 PC에 연결하여 다운로드하게 됩니다. PC에 다운로드용 프로그램을 띄워놓고, 보드를 연결하고 다운로드 버튼을 누르는 것을 반복합니다.
본 포스팅에서는 양산팀에 전달할 바이너리를 만드는 과정에 대해 설명드리겠습니다.
자기 부서에서 만든 무언가를 타 부서에 전달할때, 가장 주의할 점은
타 부서는 내 부서 업무에 대해 아무것도 모른다
개발자가 당연하다고 생각하는 일반적인 지식을 양산부서의 사람들은 전혀 모르고, 모르는 것이 당연합니다. 단적인 예를 들면 양산팀원 분들은 탐색기에서 폴더를 드래그하여 바탕화면으로 복사하는 것조차 두려워합니다. '장치관리자'를 확인하라던가 드라이버를 설치하라는 말은 꺼낼 수조차 없습니다.
회사의 규모가 크고 체계가 잡혀있을수록 부서간 업무가 명확하게 구분됩니다. 개발팀에서 개발을 완료하고 관련 자료를 양산팀(공장)에 넘기면, 양산팀에선 그 자료만 가지고 개발의 도움 없이 제품 생산을 진행해야 합니다. 만일 양산과정에서 개발이 개입해야 하는 일이 발생한다면, 공장의 규모가 커질수록 개발의 도움을 받는 일이 많아지고 개발은 본연의 업무를 수행할 수 없을 것입니다.
양산팀의 인원들은 당연히 개발에 대한 지식이 전혀 없습니다. 타 부서에게 전달할 자료를 준비할 때는 '길에서 우연히 만난 사람이 그 자료를 보고 바로 업무를 진행할 수 있을 정도'로 자세하게 준비해야 합니다. 또한 작업을 진행하는데 너무 어렵거나 조심해야 하지 않도록, 전용 인터페이스나 GUI 프로그램을 지원하는 것이 좋습니다.
타 부서에 정보를 전달하는 나쁜 예 | 타 부서에 정보를 전달하는 좋은 예 |
USB의 install 폴더에 들어가서 install.exe를 실행하세요. 설치될 폴더를 설정하시고, accessary 부분은 체크하지 마세요. |
USB 드라이브의 설치.exe를 더블클릭하시면 설치가 완료됩니다. |
teraterm 프로그램에서 'Download mode'가 표시되면, USB를 연결하고 fastboot_all.bat를 실행시키세요. |
케이블을 꽂고 프로그램을 실행시키면, 자동으로 다운로드가 진행되고 완료화면이 표시됩니다. |
대기업의 경우는 각 조직의 업무가 명확히 구분되고, 중간에 문제가 생길경우 체계와 권한에 따라 중재할 방법이 다양합니다. 본인의 의지가 있다면 문서를 참고할 수도 있고, 관련자를 찾기도 수월합니다.
벤처나 중소기업의 경우, 일반적으로 업무에 담당자를 명확하게 구분하기 어렵습니다. 각자의 업무를 분명하게 나누려면 매출이 일정해야 하는데, 중소기업은 '자리를 잡아가거나' '살아남기 위해 발버둥치는' 회사입니다. 개발자로 입사했지만, 경우에 따라 현장에서 일하기도 하고, 조립/양산을 하기도 하고, 영업을 하기도 합니다.
대기업과 같은 '조직적 업무'를 수행해본 사람이 없기 때문에, 문서화의 필요성을 이해하지 못하는 경우가 많습니다. 문서로 정리하느니, 현장에 직접 찾아가서 장비 셋팅을 해주고 직접 보여주는 쉬운 방법을 택합니다. 물론 규모가 작은 회사에서 어려운 절차를 생략하고 대화로 해결하는 것고 좋은 방법이긴 합니다. 회사가 더 커지거나 누군가 퇴사를 하기 전까지는 말입니다.
준비가 안된 조직은 기회가 와도 놓치기 쉽습니다.
지금 제가 일하는 2017회사의 경우의 예를 든 것입니다. 보안상 실례를 보여드릴 수 없는 점 양해 바랍니다.
주요 내용
주의할 점
부서 외부로 전달되는 바이너리는, 변경사항을 정리하고 개발자료를 백업하는 '릴리즈'라는 과정을 거칩니다. 부서간에 바이너리를 언급할때, 어느 바이너리 인지를 구분할 수 있는 기준이 필요하기 때문입니다. 릴리즈때 배포되는 자료에는, 아주 오래 후에도 이 자료만으로 필요한 작업을 할 수 있도록 관련 문서 및 기록이 상세하게 수록되어야 합니다.
개발에서 양산팀으로 바이너리를 전달할 때, 포함되어야 하는 최소한의 자료는 다음과 같습니다.
관련 폴더의 예를 들면 아래와 같습니다.
이번주는 양산팀을 도와 다운로드를 많이 하다보니, 생각이 나서 포스팅을 하였습니다.
예전에 일하던 회사에서 '개발의 무한책임'이라는 말이 있었습니다. "할 줄 아는게 많을 수록 모르는 척 해야 하는구나"를 뼈저리게 느끼게 한 회사였습니다. 문제는 그렇게 많은 일들을 책임져도 타 부서로부터 "똑같이 일하는데 개발자 연봉이 왜 높냐"는 소리를 듣고, 또 어떤 부서에선 "개발자가 우리가 어떤 고생을 하는지 모르기 때문에 품질을 엉망으로 개발한다"며 개발자를 돌려가며 차출하여 AS센타에서 일하게 하는 경우도 있었습니다. (물론 개발일정은 그대로였습니다.)
잠깐 양산팀을 돕다가 여러가지 생각이 났네요. 다른 업무를 하시는 분도 마찬가지겠습니다만, 자신이 인정받을 수 있는 직장을 선택하는 것이 중요한 것 같습니다. 물론 누구나 인정할 수 밖에 없는 실력을 가지는 것도 중요하지요.
포스팅은 여기까지입니다. 궁금한 것 있으시면 댓글 달아주세요
언제나 감사드립니다.
협력부서간에 우호적이어야 하는 이유 (0) | 2022.10.14 |
---|---|
검증용 코드의 필요성 (0) | 2022.08.16 |
댓글 영역