그러나 , 상술 한 종래 의 방법 은 소프트웨어 의 규모 가 점차 거대 해 지 고 이 를 개발 하 기 위해 많 은 개발자 가 참여 하 여 서로 협업 을 통해 작업 이 이루어지 는 현실 상황 과 , 프로그램 개발 이 많 은 경험 을 요하 는 작업 이 면서 개개인 의 능력 에 따라 그 결과물 이 달라지 는 개인 의존도 가 큰 경향 이 있 는 특성 으로 인해 효율 적 인 소프트웨어 개발 이 이루어지 지 못하 고 있 다 . 우선 템플 릿 을 자유 롭 게 추가 및 수정 하 여 개발자 간 에 공통 으로 배포 할 수 있 는 기능 을 제공 하 지 못하 므로 템플 릿 을 개발 작업 에 적용 하 지 못하 고 있 으며 , 문서 로 제공 되 는 개발 표준 지침 은 개발자 의 이해 도 차이 로 인해 개발 이 표준 에 맞 게 일관 되 게 이루어지 리라고 보장 할 수 없 고 , 같 은 기능 이 라 하 더라도 개발자 의 능력 에 따라 서로 다르 게 코딩 이 이루어질 수 있 으며 프로그램 의 성능 도 서로 다르 게 나타날 수 있 고 , 프로그램 작성 시 단순 반복 적 인 작업 이 여전히 계속 되 고 있 다 . 또한 개발 후 유지 보수 시 에 도 코드 를 작성 하 는 스타일 이 개발자 간 에 다른 관계 로 새롭 게 다시 개발 하 는 것 과 거의 다를 바 가 없 게 되 었 다 . 이러 한 문제점 은 개발 생산 성 과 소프트웨어 의 품질 을 떨어뜨려 결국 총소유비용 ( TCO ) 을 절감 할 수 없 도록 하 는 문제점 을 발생 시키 고 있 다 .