SW 외주개발 원래 이렇습니까?

k1d0bus3의 이미지

서버-클라이언트 시스템을 외주개발을 맡겼습니다.
외주업체는 총원4~5명이고(서류상,비상주) HW/SW모두 개발하는 SI(?)업체입니다. 대표는 HW박사과정 중이고, SW팀장은 석사과정 중이더군요.

제가 시스템의 목적/설계, 요구사항은 제가 꼼꼼하게 만들어서 알려주었고, (시스템 목적/로직/순서도, 클라이언트프로그램의 UI/작동환경 정의, DB레코드의 필드값 정의, 개발산출물 및 재개발(수정)노하우 전수요구 등등)
그것을 바탕으로 외주업체가 tomcat,mysql,qt5등을 활용해 "어떻게 어떻게 만들겠다"고 역 제안한 것을, 제가 컨펌하여 개발을 시작했습니다.
시스템 완성 후 하자가 생기면 3개월간 유지보수해주기로 했고, 완성된 시스템의 재개발/수정 노하우를 전수받기로 하고 계약을 했습니다.
그런데 결과물(완성품)을 받아보니, 대단히 실망스럽습니다.

- 정황상 불가피하게 프로토타입이 완성된 후(일부 완성, 일부 에러) 잔금을 줬습니다. 그런데 그 후 수개월이나 지난 지난달에서야 겨우 완성품(에러가 고쳐져서 기본작동이 되는 상태)을 받았습니다. 외주업체측은 프로토타입이 완성된 후 3개월이 지났으니 에러/버그수정의 의무가 없다는 입장이고, 저희측은 완성품(에러가 고쳐져서 기본작동이 되는 상태)을 받은 지난달로부터 3개월간 에러/버그를 수정을 해줘야 한다는 입장으로 현재 대치중입니다.
- 받은 결과물은 "소스코드+형식적인 매뉴얼" 입니다. 동작/수정에 필요한 "바이너리파일", "dll파일", "빌드방법설명" 모두 빠져있습니다. (삽질끝에 해결은 했습니다.)
- 개발시작 전, 외주업체에서 역 제안을 하여, 최초요구사항에서 추가 개발된 모듈에 버그들이 많았습니다. 그런데 외주업체에선 최초 요구사항이 아닌, 자기네가 제안한 것이니(보너스개발) 못 고쳐주겠다고 합니다.
- 서버가 클라이언트의 IP의 정보를 수집하는 것이 시스템의 주목적 중 하나입니다. 그런데 클라이언트 NIC환경에 따라 잘못된 IP가 수집되는 경우도 있고, NAT환경에선 내부IP만 수집이 됩니다. 이 역시 최초요구사항에 명확히 정의되지 않았으니 못 고쳐주겠다고 합니다.
- 외주개발업체에서 서버 및 클라이언트의 명확한 작동환경(스펙)을 알려주지 않습니다. tomcat8에서는 왜 안되는지 windows xp에서는 왜 안되는지 설명할 의무가 없다고 합니다.

일단 외주업체측에선 품질은 신경쓰지 않고, 기본코딩과 최소한의 알파테스트만 했습니다. 테스트와 사소한 버그수정은 제가 직접하고 있습니다.
제가 시스템의 방향/목적을 요구사항에 명시했고, 외주업체 대표자에게도 말로도 설명했습니다. 하지만 그에 반하는 저품질의 기능,버그들이 나왔습니다. 외주업체는 요구사항에 정확히 명시가 되지않았으니 고쳐줄 의무가 없다고 합니다.
외주업체 대표자 말로는, 원래 버그들은 저희측에서 고치는 거고, 불만있으면 유지/보수 재계약을 하자고 합니다.
원래 외주개발 이렇습니까? 아님 외주업체가 문제가 있는겁니까? 해결방법이나 조언부탁드립니다.

지인분(사장)들이 외주개발썻다가 문제 겪는것을 봤던지라, 꼼꼼하게 요구사항명시/계약을 했는데도 결국 피를 보내요.
우리나라 SW외주개발이 이런식이라면, 그냥 직접 개발자 채용해서 개발하는 것이 훨씬 나아보입니다.

shint의 이미지

잘 되는 제품 구입하고. 잘하시는분 모셔서. 잘하시면. 잘 될겁니다.

저희 회사는 급박한 어려움에 빠져 있습니다. 함께. 도움 주실분들을 찾고 있습니다.
되든 안되든. 각 단체와 기업에 문의 메일 보내시고. 뛰어 다니셔야 할 거 같습니다.

- 데브피아 무료 자산 컨설팅
- 공개 SW 포럼
- 대학 창업 보육 센터
- 워크넷 고용안정센터
- 소프트웨어 진흥원

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

ifree의 이미지

보기만 해서는 학생들이 모여 만든 회사 같네요.

기존 개발 실적은 확인하고 외주를 주셨나요?

Rubypops의 이미지

최소 3000만원 짜리 프로젝트 같습니다.

println("솜사탕 대신 3000만원 짜리 조금 많이 탄 달고나가 생성되셨습니다");

3000만원 짜리 달고나는 무슨 맛일까요?? 얌얌얌

루비를 공부하고 사랑하는 프로그래머

k1d0bus3의 이미지

물론 확인했습니다만 품질같은것은 확인할 방법이 없더라고요..

Rubypops의 이미지

품질 좋게 나온다던데요,,,,

루비를 공부하고 사랑하는 프로그래머

academic의 이미지

구두로 진행해도 별다른 문제 없이 잘 해결이 되는 경우도 있는데, 문제가 생긴 경우에는 어쩔 수 없이 문서에 지정된 대로 할 수밖에 없다고 봅니다.

계약서나 주고 받은 이메일에서라도 명시적인 표현이 되어있지 않다면... 다음 사항에 대해서는 어쩔 수가 없을 것 같습니다.

- 개발시작 전, 외주업체에서 역 제안을 하여, 최초요구사항에서 추가 개발된 모듈에 버그들이 많았습니다. 그런데 외주업체에선 최초 요구사항이 아닌, 자기네가 제안한 것이니(보너스개발) 못 고쳐주겠다고 합니다.

다음 사항은 정확한 실제 IP를 수집할 수 있어야 한다는 걸 알고 있음에도 불구하고 외주 업체 쪽에서 이런 제한 사항에 대해서 미리 얘기해주지 않았다면 문제가 있을 것 같습니다. 그러나 정확한 실제 IP를 알 수 있어야 한다는 걸 모르고 있었다거나 하면 외주 업체 탓으로 돌리긴 힘들어 보입니다.

- 서버가 클라이언트의 IP의 정보를 수집하는 것이 시스템의 주목적 중 하나입니다. 그런데 클라이언트 NIC환경에 따라 잘못된 IP가 수집되는 경우도 있고, NAT환경에선 내부IP만 수집이 됩니다. 이 역시 최초요구사항에 명확히 정의되지 않았으니 못 고쳐주겠다고 합니다.

외주 개발로 진행하는 것도 상당한 노하우가 필요한 일이더군요. 그리고 회사 내 개발자의 적극적인 참여도 필수적이고요.
그런 노하우 없이 외주 주는 것보다는 직접 개발하는 것이 더 나을 수도 있을거라 봅니다.

----
academic은 제 고등학교 때 동아리 이름입니다.
academic, 아주 가끔은 저도 이랬으면 좋겠습니다.

wastelnd의 이미지

사실 외주개발이 말하는거 만큼 쉽지 않습니다.
서로 생각하는 수준이 틀리기 때문에..
그리고 다음과 같은 요구사항의 경우..
기술적으로 문제가 되는 부분도 있기 때문에..
초기 계약사항을 검토해봐야 하는 문제일것 같네요..
결국에는 돈을 나중에 줘야 하는 문제인데..

- 서버가 클라이언트의 IP의 정보를 수집하는 것이 시스템의 주목적 중 하나입니다. 그런데 클라이언트 NIC환경에 따라 잘못된 IP가 수집되는 경우도 있고, NAT환경에선 내부IP만 수집이 됩니다. 이 역시 최초요구사항에 명확히 정의되지 않았으니 못 고쳐주겠다고 합니다.