테일러링 (프로젝트 성공률 1% 높이기)

테일러링(Tailoring) 이란?

소프트웨어 개발은 소프트웨어를 생성하고 유지하는 과정으로 다양한 방법과 기술이 사용되며 프로젝트의 특성에 따라 최적화된 방법과 기술을 선택하는 것이 매우 중요하다. Tailoring은 특정 프로젝트의 요구 사항에 대하여 소프트웨어 개발 프로세스나 방법론을 적절하게 조정하고 필요 활동을 가감하는 것이다. 다시 말해, 소프트웨어 개발 프로세스는 규모, 복잡성, 요구사항, 조직 문화 및 프로세스 등 여러 제약 조건에 따라 달라지는데 이러한 요소를 고려하여 프로젝트에 가장 적합한 프로세스를 선택, 조정하는 것을 의미한다.
 
이런 조정의 조치는 소프트웨어 개발 프로젝트의 성공에 핵심적인 요소이다. 모든 것이 목표를 지향하고 나아가지만 100% 수행될 수는 없다. 그래서 프로젝트 진행 중에 발생하는 각종 위험을 줄이고, 품질을 향상하며, 시간과 비용을 단축할 수 있는 방법으로 우리는 Tailoring을 한다. 그래서 Tailoring은 프로젝트 초기 단계에서 고려하고 실시하여야 한다. 프로젝트가 시작되면 진행 중 반드시 새로운 요구사항이 나올 수 때문에 Tailoring을 통해 이러한 요구사항을 미리 반영하는 것이다.
 
 

Tailoring 종류

Tailoring에는 몇 가지 종류가 있으며 이를 통해 부분별로 최적화를 진행할 수 있다. 이는 프로젝트의 특성, 목적, 예산, 일정, 규모, 복잡성, 기술적/사업적 요구사항, 개발역량, 도구, 조직문화 및 각종 제약조건에 따라 고려되고 선택될 수 있다.
 
🚩프로세스 Tailoring
: 소프트웨어 개발 프로세스는 소프트웨어를 개발하기 위한 일련의 단계와 활동으로 구성되어 있는데 이 특성에 맞게 소프트웨어 개발 프로세스를 조정하여 프로젝트 규모에 따라 단계와 활동을 강화 또는 제거하여 효율적인 운영을 하는 것이다.
 
🚩 기술 Tailoring
: 프로젝트 기술 또한 프로젝트의 특성에 맞춘다. 무조건 고급기술을 지향하는 것이 아니라 요구 성능에 적절한 기술을 도입하여 반영하고 운영하는 것이다. 이럼으로써 불요한 기술 비용 등을 줄일 수 있다.
 
🚩 사람 Tailoring
: 소프트웨어 개발 프로젝트의 인력은 프로젝트의 특성에 맞게 조정해야 한다. 개발 프로젝트 난도가 높다면 고경력의 인력을 보다 많이 투입할 수 있는 것이다.
 
 

Tailoring 절차

Tailoring은 개발 프로젝트의 특성을 고려하여 프로젝트의 목표, 범위, 일정, 예산, 인력 및 기술에 따라 어떤 방법과 기술이 필요한지를 판단해야 한다. 이를 위해 다음의 단계를 거친다.
 
✅ 요구 사항 분석

: 프로젝트의 목표와 요구 사항을 분석하고 이해한다. 이를 위해 이해당사자들과의 의사소통, 현장 조사, 문서 검토 등을 수행하여 요구 사항을 명확히 이해하고 프로젝트의 고유한 요소를 파악한다.

✅ 방법론 선택
: 요구 사항 분석을 토대로 조정이 필요한 영역을 파악하고 이에 따른 방법론을 선택한다. 이는 기준이 되는 표준 방법론에서 일부 요소를 선택하거나 다른 방법론을 조합할 수도 있다. 

✅ 프로세스 조정

: 방법론을 조직과 프로젝트에 맞게 조정한다. 이 과정에는 수명주기 단계 추가 또는 제거, 프로세스 세부 조정, 가이드라인과 절차 수정 등이 포함될 수 있다.

✅ 도구와 기술 선택

: 조정된 방법론에 맞는 도구와 기술을 선택한다. 프로젝트에 필요한 특정 기능을 구현하기 위해 특정 개발 도구나 프레임워크를 도입할 수도 있다. 어느 하나를 끝까지 고수할 필요는 없다.

✅ 팀 구성원 역할 및 책임 조정

: 조정된 방법론에 따라 팀 구성원의 역할과 책임을 조정한다. 팀 구성원은 방법론에 맞게 업무를 수행해야 하고 원활한 의사소통과 협업을 진행해야 한다. 팀원들의 역량과 역할에 따라 재조정 또는 새로운 역할을 부여할 수 있다.

✅ 프로젝트 관리 및 모니터링

: Tailoring 된 방법론으로 프로젝트를 관리, 모니터링한다. 이는 일정 관리, 리스크 관리, 품질 관리, 의사소통 관리 등을 포함으로써 프로젝트 진척 상황을 주기적으로 검토하고 필요한 조정을 수행하여 프로젝트 목표 달성을 보장한다.

✅ 지속적 개선

: Tailoring은 프로젝트 진행 중에도 지속해서 개선되어야 한다. 이를 통해 방법론의 효과성과 프로세스의 개선점을 도출하고 반영한다. 
 




 

Tailoring 효과

소프트웨어 개발은 정말 복잡한 과정이다. 이러한 개발 프로젝트를 성공적으로 수행하려면 다양한 요소를 고려해야 하는데 Tailoring이야말로 최상의 결과가 나오도록 모든 것을 잘 매만져 주는 일이다. 이를 통해 프로젝트는 프로젝트의 특성에 맞게 최적화될 수 있고 그 효과는 여러 가지로 나타난다.
 
✔️ 요구 사항 충족
: 프로젝트 특정 요구사항을 위해 방법론이 조정되면 큰 틀에서 매우 효과적인 방법론의 채택을 통해 프로젝트의 속도를 향상한다. 이때 방법론을 처음부터 끝까지 고집할 필요가 없으며 필요 부분에 대해서만 다른 방법론을 활용할 수도 있다.
✔️ 조직 맞춤화

: 고유한 사업적 요구 사항과 제약 조건을 가진 조직은 Tailoring으로 인하여 조직 내 체계를 활성화하고 조직에 맞는 색깔을 찾아 입힐 수 있다. 이에 따라 살아 움직이는 조직으로 보다 유연한 관리가 가능하다.

✔️ 자원 최적화

: 프로젝트 규모와 복잡성에 따라 초기 계획을 지속 관리하고 필요한 자원과 비용을 효과적으로 조절할 수 있다. 즉, 불필요한 자원의 집행을 사전에 확인, 관리할 수 있는 역량을 갖추어 비용과 시간을 절감할 수 있다.

✔️ 프로젝트 성공

: 프로젝트를 성공시킬 수 있는 확률이 높다. 방법론의 수정으로 조직과 프로젝트에 최적화되고 보다 더 적절한 접근 방식에 따라 위험을 완화하고 품질을 향상할 수 있다. 이는 궁극적으로 고객 만족도를 높인다.
 
 
 
※ Tailoring 한계
어떻게 보면 프로젝트 시작과 함께해야 할 Tailoring. 그만큼 중요하다는 것을 알지만 이를 실제로 수행하는 프로젝트나 조직은 매우 드물다. 물론 하기는 하지만 공식적인 형태를 갖추고 제대로 하는 곳이 별로 없단 이야기다. 꼭 이렇게 부르지 않더라도 모든 단계, 조직에서 Tailoring을 하는데 이것이 왜 힘들까? 일단 시간이 없다. 모두 바쁘다. 프로젝트가 본격 궤도에 오르면 앞만 보고 가기에도 힘겹다. 또한 사람이 없다. Tailoring을 제대로 하려면 전문가가 필요하다. 프로젝트와 방법론 전반을 꿰찬 인력은 갈수록 부족하다. 그러다 보니 결국엔 돈이다. 그런데 이런 예산을 기획 단계에서 고려하여 잡아주는 프로젝트가 과연 얼마나 되는가? 결국 핑계? 핑계여서 하지 못한다 한들 해야한다. 누군가는..