반응형

작년 부터 2개 업체와 각각 솔루션 구축 프로젝트를 하고 있다. 기본적으로 패키지 형태이지만 상당수는 우리 회사에 맞춰서 커스터마이징을 하고 있다. 

예전에도 느꼈지만 외주 프로젝트 관리는 어려운 점이 많다. 2개 업체 각각을 A, B라고 하고 해당 업체와 프로젝트 진행하면서 느낀 문제점을 기록 해 본다.

(물론 우리 회사 자체적인 문제점도 많이 있지만 일단 이는 생략 한다)


(1) A 업체

  1. 지연된 납기

개별 이슈에 대하여 약속한 기일 내에 제대로 맞춰 준 적이 거의 없다. 하나의 이슈가 지연 되면 순차적으로 그 뒤의 이슈들도 계속 밀려서 결국 나중에는 전체 프로젝트 지연을 초래 한다. 결과적으로 4월에 끝나야 할 프로젝트가 6월 현재 아직도 끝나지 않았고 이번 달 말까지도 끝날 수 있을 지 모르겠다. 일정준수의 의지가 없어 보이기 까지 한다. 맨날 죄송하다는 소리만 하고 약속을 지키지 않아 신뢰가 무너진 상태이다. 

  2. 무리한 동시 진행

해당 업체는 작년에 비슷한 시기에 동시 다발적으로 6개 업체와 계약을 맺고 프로젝트를 진행 했다. 이것이 결국 납기지연의 원인이 됐다. 욕심 부려서 수주한 프로젝트들이 여기저기 문제가 생기자 제한된 리소스로 제대로 일정을 소화 할 수 없었을 것이다.

  3. 소프트웨어 품질 문제

개발자가 제대로 테스트를 하지 않고 검수 요청을 하거나, 이미 가동 중인 프로그램 상에서도 지속적인 오류가 발생 했다.

개발자가 원래 테스트를 제대로 안 하는 스타일 이거나 무리한 동시 진행으로 인해 제대로 테스트 할 수 없는 상황 이거나 둘 중 하나가 원인으로 보인다. 어쨋든 테스트도 제대로 하지 않은 프로그램을 검수 해달라고 요청 하는 것 자체가  문제다.


(2) B 업체

  1. 도메인 전문성 부족

이전에 우리 회사와 같은 업종의 레퍼런스가 있다고 하여 도메인 특성을 잘 이해할 것으로 기대 했으나 예상 밖으로 너무나 몰라서 이를 이해 시키고 솔루션에 반영 하기까지 상당한 시간이 소요 되었다.

  2. 리소스 부족

사장을 포함하여 전체 인원이 3명, 그나마 한명은 단기 계약이고 정식 직원도 경력이 1년 정도 되는 열악한 리소스다 보니 전문성, 생산성을 기대하기 어려운 상황 이었다. 그러다 보니 단일 프로그램 하나를 4개월 동안 계속해서 만들고 있는 수준.

향후 프로젝트 완료 후 유지보수 지원이 제대로 될 수 없는 구조 이다.

  3. 시행착오 방법론

프로젝트 솔루션의 설계, 구축을 주관하고 있는 사장이 솔루션에 대하여 완전한 이해를 하지 못하고 시행착오 적으로 계속적으로 의사결정이 번복 되다보니 잦은 설계 변경과 이로 인한 오류발생과 소스 수정등이 지속적으로 발생하고 있다.

이는 전체적인 일정 지연과 이미 완료된 테스트를 또 다시 해야 하는 문제가 생긴다.

  4. 소프트웨어 품질 문제

앞서 A 업체의 품질 문제를 언급 한 바 있지만, B 업체는 이 보다 훨씬 심하다. 정말 맛 볼 수 있는 모든 오류를 다 경험 하는것 같다. 최초로 만든 프로그램은 기업용 프로그램이 아니라 대학교 전산실습 시간에 테스트용으로 만든 프로그램 수준 이었다. 안정성 결여, 기본적인 이벤트 전후 상태 체크, 메시지 처리, 동시성 문제등 어느 하나 제대로 된 것이 없었다. 


프로젝트를 추진 할 때 업체의 선정은 정말로 중요 하다. 일단 계약이 되고 프로젝트 킥오프가 되면 갑을 관계가 프로젝트 기간 동안에 바뀌기 때문이다. 우리가 돈을 주고 있지만 우리 맘대로 못하는 상황이다. 따라서 프로젝트 시작 전에 사전평가를 철저히 해서 '가격'으로만 판단 하는 우를 범해서는 안된다. 

그러나 여전히 제일 싼 업체에 일을 맡기는 관행이 있고 또는 의사결정을 할 수 있는 위치의 사람이 알고 있는 업체에 주어 지는 것이 현실이다. 하지만 대부분 프로젝트가 시작되고 문제가 생겨도 문제 해결은 실무 담당자의 손에 넘어가고 결정권자는 실질적인 도움을 주지 못한다. 

앞으로는 이러한 전철을 밟지 않도록, 외주 업체 선정에 대한 정확한 사내 프로세스를 만들어 놓고 이를 준수 하는 방식으로 해야 하지 않을까 한다.

반응형
반응형



어제 Wunderlist 에서 메일이 왔었다. 제작사 '젝스분더킨더(6Wunderkinder)'와 Microsoft 사 간의 M&A 소식 이었다.

GTD 를 위해서 Wunderlist 를 사용하고 있는 입장에서, 해당 앱이 MS로 인수 되었다는 소식은 꽤 놀라웠다.


MS는 이전에도 캘린더 앱 제작사인 '선라이즈(Sunrise)' 및 이메일 클라이언트 제작사인 '어컴플리(Acompli)'를 인수한 바 있는데, 젝스분더킨더와 마찬가지로 플랫폼에 무관한 특히 모바일에 강점을 보이는 업체들이다.


아직은 모바일 시장에서 취약한 MS 로서는 필요한 솔루션과 기술을 하나하나씩 사 들이고 있는 모양이다.

이를 통해 단기적으로 iOS, Android 시장에서의 영향력을 확대하고 점진적으로 모바일 플랫폼에서의 Windows  및 클라우드 서비스에 대한 경쟁력을 높히려는 전략인 것 같다.


이를 보면서 느끼는 점은 MS가 인원이 없고, 돈이 없고, 기술이 없어서 해당 솔루션을 직접 개발 안하고 사 들이겠는 가 하는 것이다. 세계적인 굴지의 소프트웨어 회사 조차 , 가지고 있지 못한 솔루션을 자체개발 보다는 필요한 외부 업체를 인수 하는 형태를 취하는 이유는 전문성 이다. 해당 부분에 베스트 업체는 그 동안 그 분야에서 깊이 있는 기술력과 노우하우를 쌓아 놓았을 텐데 이를 아무리 MS라도 단기간에 그 수준으로 따라 잡기에는 역부족 이기 때문이다. 


그런데 하물며 몇명 되지도 않은 인원으로 그것도 생산성이 떨어지는 환경에서, ERP 수준의 기업용 소프트웨어를 향후 미래를 위해서(?) 자체적으로 개발 하겠다는 취지에 대하여 나는 아직도 이해를 못 하겠다. 지금으로서는 일정을 준수 할 수 있을지 조차 의문 스럽지만, 억지로 오픈 했다고 치더라도 어마어마한 오류와 기능 누락 으로 인하여 또 다시 개발자 들은 죽도록 야근을 해야 될 것이다. 교육이 백년지대계 라면 기업의 IT는 적어도 십년지대계는 되어야 한다. 그런데 입사 10년동안 ERP를 4번째 개발 및 구축을 하고 있으니 이게 제대로 된 방향으로 가고 있는 지 모르겠다.


계열사를 거느린 그룹 수준의 회사 전산실은 더 이상 자체적인 ERP 개발이나 유지보수가 주업무가 되어서는 안된다고 생각한다. 매출 300억 이하의 단일 회사에서는 딱 좋은 모델 일 수 있지만 전체 그룹 매출이 2~3천억이 되는 상황에서 아직도 예전 처럼 데이터를 입력하기 위한 프로그램을 만들고, 재고를 맞추고, 결산 때 마다 금액이 맞니 안 맞니 하는 방식의 전산실로는 경쟁력이 없다. 그러한 기간 업무용 프로그램은 전문적으로 만들어진 솔루션과 회사에 맡기면 된다. 그리고 계속해서 고도화 작업이 진행될 수 있도록 인력배치를 하고 관리를 하면 된다. 이제 전산실의 역할은 십수년간 쌓여진 그 동안의 데이터를 분석하고 취합해서 그 속에서 의미 있는 정보 즉, 영업, 마케팅, 생산, 원가등에 대한 의사결정, 예측, 패턴, 그리고 리스크 관리에 도움을 줄 수 있는 정보를 뽑아 낼 수 있도록 기술력을 집중 해야 한다. 그것이 최근의 빅데이터 분석이 가고자 하는 방향과도 일치 하는 것이다. 이제는 현업 뒤치닥 거리를 하는 IT 가 아니라 정보기술을 넘어 정보전략으로 가야 하는 것이다. 그런데도 지금의 상황은 여전히 10년 전과 하나도 달라 진 것이 없는 상태라 찹찹한 심경을 이루 말할 수 없다.

반응형

'생각' 카테고리의 다른 글

프린트 한 장 하자고...  (0) 2019.01.24
델파이의 상승세  (2) 2017.03.10
IT업체선정의 중요성  (0) 2011.02.10
JD Edwards의 문제점  (4) 2010.04.09
솔개가 70년을 살수있는 이유  (2) 2010.04.02
반응형

트리거 내에서 RAISERROR 로 오류를 생성 할 경우, 심각도(severity)가 20~25인 경우에는

 

자동으로 rollback 처리 된다.

 

(예)

CREATE TABLE Test1
(number INT IDENTITY,
 bookname nvarchar(100),
 UnitPrice INT,
 Qty INT,
 Price INT
)

CREATE TRIGGER TR_Test1_INSERT
ON Test1
FOR INSERT
AS
    update Test1
    Set Price = (select UnitPrice from inserted) * (select Qty from inserted)
    where number = (select number from inserted)

    RAISERROR ('Error raised!', -- Message text.
               20, -- Severity.
               1 -- State.
               ) with log;

 

insert into Test1 (bookname, UnitPrice, Qty)
values ('book1', 600, 2)

 

 

반응형
반응형


웹에서 파일을 저장 하고 열지 않고


곧바로 연 상태에서 저장하고 나가 버리면, 해당 파일이 저장된 위치를 몰라서 난감한 경우가 있다.


첨부된 파일을 설치한 후 해당 파일명을 검색하면 저장 위치를 확인할 수 있고,


검색된 파일을 더블클릭 하면 곧바로 열어 볼 수도 있다.


Everything-1.2.1.371.exe




반응형

+ Recent posts