ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 웹앱개발(자사,타사) 유지보수관리 계약에 대하여 꼭 생각해 볼 것들
    ragbag 2022. 2. 4. 15:44

    안녕하세요 jnjsystem 입니다.

    다소 더운 몇일이 될 것이라고 하였는데....

    다가올 여름에 대한 대비를 잘 해야 겠습니다.

    에어컨이나, 기타 비 피해(요새 여름은 호우라고 해야 하는 상황이라...)없도록 말입니다.

    우스갯소리입니다만....

    예전 jnjsystem의 LAB2가 지하에 있던 적이 있었습니다.(벌써 10여년 전입니다.ㅎㅎ)

    초창기 모든 사업자가 그렇듯...저희도 큰 여유가 없었던 지라...값싼 임대료에 넓은 평수, 흡연의 자유가 보장된 지하벙커가 아주 좋았지요...

    하지만...첫해 여름 많은 비가 왔고....(그 뒤는 굳이 설명하지 않겠습니다.^^:;)

    그 뒤로 jnjsystem은 항상 5층 이상을 사무실로 확보하며, 여름철 누수,에어컨등에 대하여 매우? 민감?하게 체크,확인합니다.ㅎㅎ

    비피해 없도록 주의 하시라는 뜻 이었습니다.^^

    오늘은 요새 들어 많은 문의가 있는, '웹,앱유지보수 관리'에 대한 이야기를 해 보려 합니다.

    다양한 형태와, 조건이 있고, 그에 대한 고객사입장에서의 최선의 방법은 무엇인가를 고민해 보셨으면 합니다.

    물론 제 설명은 아주 주관적이니...참고로 여겨주시면 좋겠습니다.^^

    웹앱개발(자사,타사) 유지보수관리 계약에 대하여 꼭 생각해 볼 것들

    웹앱의 유지보수/관리 만을 전담하는 회사는 많지 않습니다. 보통의 개발사는 자신들이 개발한 내용에 대한 웹,앱에 대한 유지관리,보수 업무를 진행합니다.

    이유는, 타사에서 개발된 결과물을 유지관리하기 위해서는 해당 시스템에 대한 이해가 필요하며, 때론 개발소스내 손댈수 없는 부분이 있을 수도 있기 때문이기도 합니다. (타인이 만든 시스템을 이해 한다는것은 생각보다 훨씬 어렵고,힘든 일입니다.)

    웹개발,앱개발이후 시스템은 더이상 관리가 필요없을까요??

    개발기획을 말씀 드릴때 항상 '유지관리'를 기획에 포함해야 한다고 말씀 드렸습니다.

    * IT시스템개발은 (s/w , h/w 소프트웨어,하드웨어 모두) 생물(살아있는)과 같습니다.

    주변 환경이 지속적으로 변화되고(pc,브라우져,모바일기기-스마트폰,태블릿등) os(윈도우,안드로이드,ios)도 변화 합니다.

    현재 기준 완벽한 시스템도 시간의 변화에 따라 그 모양과 형태,조직이 변경되야 할 수 있습니다.

    또한 사용자도 변화 합니다. 현재 각광 받는 서비스라고 해도, 1년 , 2년뒤 때론 몇 달 뒤에도 최고의 서비스라고 할 수 없습니다.

    최고의 서비스는 사용자에 대한 대응으로 ui (디자인 및 환경을 포함한)는 물론이거니와, 기능 설계,디자인도 변경 될 수 있습니다.

    이렇듯 다양한 환경 변화와 사용자 요구 조건에 맞추어 개발(제작)된 웹,앱이 변화 될 수 있음을 인지해야 하며,

    때론 테스트까지 이상없이 잘 진행된 개발결과물이 주변환경이나, 운용에 따른 문제로 수정 및 보완이 필요 할 수 도 있습니다.

    이런 경우들을 '웹앱시스템 관리, 유지보수' 등으로 표현 합니다.

     
     
     

    애플 앱스토어의 수많은 앱들 - 출처 : 애플앱스토어 --> 대부분의 앱은 개발후에도 유지관리보수를 진행합니다.

    [왜? 개발사들은 유지보수관리 업무만을 별도로 진행하지 않나?]

    이런 질문을 참 많이 받습니다.^^

    보통 해당 질문에 많은 설명을 드리지만, 오늘은 정리해서 남겨 두려 합니다.^^ (참고용으로)

    아래를 참고해 보시면서.. 왜 일반 개발사들이 자신들이 만든것 외에 타사(프리랜서개발자포함)에서 개발된 웹앱서비스의 유지보수관리 업무를

    진행하지 '못하는'(않하는게 아니라...경제성 및 효율성에 의해 못하는 경우가 더 많습니다.)것인 가를 이해해 보시길 바랍니다.

    참고로, 일반적으로는 개발사는 자사 개발결과물에 대해서는 유지보수관리를 합니다. 단, 선택은 고객사가 하지요^^

    - 자사가 시스템을 기획,설계,개발(디자인 및 기타 포함)을 진행 하였기에 해당 구조 및 로직을 가장 잘 이해 합니다.

    - 업데이트 및 관리 편의성에서 비교 불가합니다. (매우 정확하며, 빠르고, 안정적입니다 -만든 사람들이니까요...)

    - 고정비 면에서 매우 경제적입니다. 개발(제작)비용 대비 보통 연간 개발비에 20-30% 내외의 비용이 발생 됩니다. 월간 1.5%~2.5% 내외

    - 업데이트 비용면에서도 매우 경제적입니다. 시스템내 업데이트 요소에 대한 대응과 설계 이해도가 최상이기때문에 동일 기능 적용기간이

    일반 개발보다 약 2-3배 이상 빠릅니다.

    첫째, 타사 유지보수 관리를 하려면 확인해야 하는 것들은 많은데...준비된 고객사가 드물다.

    - 시스템 기획 문서 (와이어프레임-wireframe 및 기타 화면 구성 및 흐름 표현)

    - 시스템 설계 문서 (화면설계, DB설계, 프로세스-흐름 안내 및 설계)

    - 간단해 보이지만 상기 2가지는 보통 일반 개발에서 소스전체가 이관되는 경우 별도 구성하여 작성 하는 것이 보통입니다.(견적추가됩니다.)

    - 보통 외주(특히나 프리랜서개발자)의뢰로 개발된 경우 상기 기획문서와 설계문서등은 반드시 확보하시는 것이 좋습니다.

    - 하지만 일반적으로 고객사들은 상기 기획,설계문서를 보유하지 못한상태로 타개발사에 유지보수를 의뢰 하는 경우가 많습니다...

    이는 준비가 부족한 경우가 되며, 새로이 유지보수를 의뢰 받는 개발사는 위의 과정인 '분석,확인'과정을 거쳐야 합니다.

    둘째, 타사의 개발 방식과 자사 개발 방식과는 차이가 있다.

    - 같은 개발언어 및 환경에서 개발(제작)을 하는 개발사여도 사람이 하는 일이라...그 개발된 결과물 소스나 구성이 다 같을 수 없습니다.

    - 시스템 기본 골격 부터 디테일까지 그 표현과 형식은 물론이거니와 때론 구성 및 모듈형태에 의해 접근 자체가 어려운 경우도 많습니다.

    - 이를 극복하기 위해 전체 소스 및 구성에 대한 제한없는 오픈환경이 제공되야 하지만, 보통 일반 고객사들은 자신들의 소스에 대한 원본의

    상태를 잘 모를때가 더 많습니다. (중간 관리자나 책임자의 변동으로 인한 원본 오염이 심각한 경우가 많습니다.)

    - 하지만 보통 어떤 개발자여도 '패턴'이란것이 있고, 개발 습성이 있습니다. 이를 이해 하는 시간이 걸릴 수 밖에 없습니다.

    셋째, 투입인력 구성에 대한 경제성 문제, 즉 초도 비용이 많이 발생 된다.

    - 가끔 질문 받습니다....'만드는데도 3-4달인데, 시스템 분석도 한 달이나 걸려??'

    - 개발을 진행할때 프론트엔드,백엔드,디자이너,DBA등이 투입됩니다. 이때 견적서를 잘 보시면 매달 똑같이 투입되지 않습니다.

    개발 기간내에 필요 투입 기간을 m/m으로 구성하여 인력 투입과 비용을 산정합니다.

    - 그렇다면 타사 개발결과물을 유지보수관리 하기위해서는 해당 시스템을 이해해야 합니다.(당연하지요?)

    - 이때 단기간내 (빠른 이해를 진행해야 하기에) 해당 시스템에 투입된것과 동일한 구성의 개발자가 분석을 진행 하게 됩니다.

    - 기간은 처음 만들때 보다는 빠르지만, 기본적으로 시스템을 이해하는데 시간은 걸립니다.

    - 이런 사유로 초도 '분석,확인'의 초도 비용은 상당히 많이 발생 됩니다.

    넷째, 지속유지비용의 산정 방식 차이 발생.

    - 회사마다 투입인력과, 관리 인력에 대한 비용산정 방식이 다릅니다.

    - 유지관리의 개념과, 범위를 산정하여 그에 대한 비용 및 기간에 대한 협의가 필요한데....

    기존 업체방식과 의뢰 받는 타사 방식의 차이는 있을 수 밖에 없습니다.

    다섯째, 안정성 확보 문제.

    - 개발사마다 각자의 스타일이 있습니다. (프리랜서개발자 포함)

    - 해당 개발자가 방대한 소스내에 어떤 형태, 어떤 로직을 녹여 놨는지를 전체적으로 이해하고 확인하기까지 안정성을 100% 담보할수 없습니다.

    - 안정화 기간을 확보하거나, 시스템 대응을 해가면서 함께 유지관리업무를 진행 하는 방법을 선택 해야 합니다.

    - 이는 시스템 운영사인 고객사 입장에서는 매우 불안한 요소가 될 수 있습니다.

    - 때때로 테스트기 서버를 이용하여 고도화를 염두해둔 유지관리 사전 작업을 진행 하기도 하지만,

    이는 예산이 충분한 대기업들이나 고려 할 수 있는 방식이지, 군소한 사업자에게 적용 하기란 쉽지 않습니다.

    * 상기 경우외에도 많은 비교 사유가 있지만, 이는 모두 결국은 비용과 기간으로 이어지는 내용이 됩니다.

    결국 웹앱시스템 유지관리업무를 외주로 진행 할 경우 (직접 개발한 회사 외의 업체에게 의뢰시) 비용과 기간이 더 늘어나게 될 수 도 있습니다.

    고객사는 어떤 선택이 현명한 선택인지에 대하여 고민해야 합니다.

    * 때론 기존 개발사나, 프리랜서개발자가 연락이 않되거나, 폐업한 경우도 있을 수 있습니다.

    이때는 상기 내용을 참고로 하여 외주개발사와 협의 과정에서 상대를 이해 하는데 도움이 되도록 활용 하여야 합니다.

    상호 이해를 통해야만, 개발 및 유지관리 업무 진행이 수월해 질 수 있습니다.

     

    쇼핑몰역시 개발후 유지보수관리를 합니다. - 일반 호스팅관리는 유지보수관리의 극히 일부분입니다. 출처:김정문알로에 쇼핑몰

    [고객사가 우선 고려해야 하는 것들]

    외주 웹앱유지보수관리 업체 선정에서 많은 고민이 있겠지만, 그중 몇가지 중요한 것만이라도 꼭 고민하셨으면 합니다.

    첫째, 기간

    - 본개발사와의 유지보수 관리가 가장 신속 한 방법입니다.(만든사람들이 관리하는 것이 가장 좋습니다.)

    - 외주개발사는 초기 시스템이해에 대한 기간이 필요하며, 보통 이해기간외에 수개월가량은 대응이 느릴 수 있습니다.

    - 어떤 사유에서든 본개발사와 유지보수관리 계약이 어려운 경우라면, 반드시 시스템확인,분석 기간을 확보해야 합니다.

    둘째, 고정 비용

    - 유지보수관리의 범위를 산정해야 합니다.

    - 개발은 모두 인건비가 발생 됩니다. 고객사가 직접 개발인력을 보유할 계획이 아니라면, 개발사의 인적 자원의 도움을 받아야 합니다.

    - 하지만 보통 '범위'에 대한 이해 폭을 좁히지 못하여 고객사-개발사간에 감정이 상하는 경우도 종종 발생 됩니다.

    - 우선 개발사 입장에서의 유지보수관리의 기본 개념은 인적자원의 배치 및 납품시점 시스템의 정상 구동유지 입니다.

    - 이는 인력이 자산인 개발사에서 상시 긴급투입과, 시스템에 대한 이해도를 보유한 인력을 유지한다는 개념입니다.

    - 또한 납품시점이후 업데이트나, 개보수 수정사항이 발생 될 경우 그 시점 기준을 유지한다는것은 모니터링과, 백업개념이 포함됩니다.

    - 이런 범위를 '기본'운용으로 보는 경우가 많으며, 이런 비용이 보통 개발비용의 20-30% 내외(연간) 발생됩니다.

    셋째, 업데이트 처리 및 수정 대응 (변동 비용)

    - 이역시 범위가 우선 지정 되야 합니다.

    - 기본 범위를 산정하고 그 외 범위를 모두 포함 하는 것이 보통이며, m/m 기준의 개발비용을 처리 하는 경우가 많습니다.

    - 쉽게...건바이건 입니다. 이게 가장 합당한 방식일 수 있습니다.

    - 문제나 수정사항이 발생하지도 않았는데, 그 범위를 산정해서 비용을 결정할 수 는 없습니다.

    - 보통 m/m (man month 방식)으로 진행해도 처음 개발할때보다는 저렴해 질 수 밖에 없습니다. (기술료등의 부대비용절감 및 기간단축)

    상기 내용들에 대한 조율만을 잘 해 두어도, 유지보수관리에 대한 고민을 많이 내려 놓을 수 있습니다.

    [개발사와 협의 조율 할때 참고]

    개발사와의 협의에서는 이것만 잘 기억해도 됩니다.

    '이정도는 그냥....''뭐 이런거 까지 돈을 받아' 이런 표현을 개발사들은 가장 이해하지 못합니다. ㅎㅎㅎ

    설사 이해해도 수용하기 어려울때가 많습니다. ^^;;

    사람이 투입되는 것이 바로 개발사 입니다. 그 해당 개발자의 시간을 비용을 지불하고 이용하는 것이라고 생각하셔야 합니다.

    반대로 일반적인 개발사는들은 사소한 것들은 개발자가 투입되는 상황에서 함께 처리 할 수 있는 부분을 확인하고,

    별도 견적 추가 보다는, 개발 스케줄내 수정 처리를 포함하여 묶음 처리를 하는 방식으로 고객사의 견적을 낮춰 드리려 할 것입니다.

    예를 들면, 전체 내용확인후 A흐름과 B흐름내 수정 사항이 있다면, A,B를 왔다갔다 하면서 처리하는게 아니라,

    하나의 수정흐름내에서 묶어서 처리하여 시간을 아끼는 방식을 선택 할 것입니다.

    소소한 한 두 가지를 나눠서? 부탁하면 매번 비용을 아낄 것이라고 생각하시는 고객사도 종종 있습니다만....(그냥 좀 해줘...뭐 이런경우죠...ㅎㅎ)

    하지만...오히려 더 비용이 비싸집니다.^^(기간,공정율에 따른 각 부분별 단가율을 적용합니다. 그것도 개별로...ㅎㅎ;;;)

    보통 개발이나, 추가 시스템 업데이트등은 최대한 기능안을 다 정리해서 한번에 조율 하십시요.

    그것이 훨씬 경제적이며, 기간도 빨라집니다.

    (묶을 수 있는 흐름과 과정일 경우 한번에 처리합니다. 비용을 좀 더 받는것 보다 신속히 정리하는 것이 개발사에게는 더 큰 효율성입니다.)

    우리나라 말이 참 무섭습니다.^^

    '아'다르고 '어'다르다고 합니다.

    서로간에 이해를 통하여 생각의 간격을 좁혀 보면 서로 더 좋은 파트너관계가 될 수 있습니다.

    이점을 잊지마시고, 상호 대응해 보시는것도 좋을 것 같습니다.

    [웹앱유지보수관리 계약에 대한 생각 결론]

    어떤 일이든지 다른 사람이만든것을 들여다 보는 시간만 해도 상당합니다.

    또한 새로운 환경을 적응하는 시간은 누구나가 다 필요합니다.

    잘만들어진 서비스에 대한 대응은 시간과 환경에 의해 어쩔수 없이 필요한 요소이지, 해당 개발사가 부족해서가 아닌경우도 많습니다.

    대응력(기간,비용등)이 부족하거나, 충족되지 않는다면, 업체와 협의를 진행해 보십시요...때론 오해가 있었을 확률도 많습니다.

    (만든 사람들이 가장 내용을 잘 알며, 유지관리업무의 효율성,경제적 측면 에서도 우위에 있습니다.)

    선택은 고객이 하지만,

    개발업체 외에 타업체에게 그 유지보수 관리만을 의뢰 하는 것은 매우 어려운 일이 될 수 있습니다.

    제 개인적인 생각으론 기존 본개발사와의 유지관리계약체결이 최선의 선택일 수 있습니다.

    비용과 기간, 그리고 시스템 안정성에 대한 확보면에서 말입니다.

    그래도 외주관리를 생각하셔야 하는 상황이라면(본개발사의 휴폐업등)

    유지관리 개발사에게 현재 시스템에 대한 정보나, 설계,기획안을 공유해 주셔야 하며,

    그에 대한 유지보수 범위를 기본과 추가개발등에 대한 구분을 명확하게 하여 견적 및 계약을 체결 하시길 권해드립니다.


    앱개발 및 웹개발 관련 문의는

    상담시간.

    평일 10:00 ~ 17:00

    070-7519-0732

    email : jnjsystem_no01@jnjsystem.net

    http://jnjsystem.net

Designed by Tistory.