내가 생각하는 소프트웨어 개발 성공 전략은 다음과 같습니다. 소프트웨어 개발 프로젝트 기간의 50%는 개발에 50%는 테스트에 사용한다.보통 소프트웨어 개발 프로젝트를 진행 중이라고 프로젝트 기간의 마지막에 항상 바쁠 것 같아요. 프로젝트의 마지막으로 개발 및 테스트하는 항목이 많아지면 낮은 품질의 소프트웨어가 개발될 가능성이 높을 거에요.만약 6개월간의 소프트웨어 개발 프로젝트를 진행한다면 다음과 같은 일정으로 프로젝트를 진행시킨 것이 좋습니다 단 소프트웨어 기획은 소프트웨어 개발 프로젝트 기간 중에 포함되어 있지 않습니다.*3개월:개발*3개월:테스트 및 버그 패치, 튜닝 위원회 같은 일정으로 소프트웨어 개발 프로젝트를 진행하려면 프로젝트의 초기에 상당수의 코딩을 실시할 필요가 있습니다. 즉, 프로젝트 초반은 너무 바빠서 프로젝트 중반 이후에는 좀 한가로울 프로젝트가 될 것 같습니다.이런 일정으로 소프트웨어 개발 프로젝트를 추진하지 않으면 안 되는 이유는 다음과 같습니다.*프로젝트의 초반에서 시간 낭비를 줄일 수 있다.프로젝트 초반에는 아직 프로젝트 기간이 많이 남아 있다고 생각하고 안이하게 소프트웨어 개발을 할 수도 있다고 생각합니다. 프로젝트 초반 시간적 여유가 많이 있을 때 소프트웨어 개발을 빨리 진행하면 프로젝트 중반에 발생할 가능성도 있는 개발 위기를 극복할 시간적 여유가 생길 가능성도 있는 것 같습니다.*무의식을 활용하는 프로젝트 진행 컴퓨터도 foreground에서 실행되는 앱이 있어 background에서 실행되는 앱이 있듯이 우리의 뇌도 의식과 무의식이 있는 것 같습니다. 제 생각에는 우리가 의식 중에 있는 문제에 대한 해결 방법을 생각했다면 그 문제는 무의식 중에 해결 방법을 생각하는 것 같아요. 프로젝트의 초반에 많은 문제를 생각하고 해결했다면 그 문제의 해결 방법 중에서 에러가 있으면 무의식 중에 이를 생각하고 알리는 경우도 있다고 생각합니다.관련되는 나의 경험담은 다음과 같습니다.소프트웨어에 기능을 추가한 뒤 혼자 저녁을 먹으러 갔는데… 그렇긴. 저녁 식사 중에 갑자기 아까 개발한 소스 코드에 여러가지 문제가 발생할지도 모른다는 생각, 식사 후 소스 코드를 확인하고 보니 정말로 개발된 소스 코드에 해당 오류가 존재하는 것을 발견한 것 같습니다.소프트웨어 기능을 모두 개발한 뒤 그 다음날 현재 프로젝트와 관련 없는 소프트웨어 개발 도서를 읽고 있지만… 그렇긴. 갑자기 개발한 소프트웨어에서 오류 동작할 수 있는 문제를 떠올릴 때가 있는 것 같습니다.나는 이런 경험에서 의식적으로는 식사를 하거나 공부를 하고 있는데요…무의식 중에 과거에 개발된 소프트웨어 오류를 떠올리며 의식에 전달하는 과정이 있는 것 아닐까 생각 중입니다.*심리적 압박감을 줄일 수 있다.프로젝트 종료 기간이 얼마 남지 않지만… 그렇긴. 아직 개발해야 하는 항목이 남아 있으면 심리적으로 압박감에 시달리는 경우도 있다고 생각합니다. 이런 부담은 집중력을 떨어뜨리고 품질이 나쁜 소프트웨어를 개발할 가능성도 있는 것 같습니다. 또 편안한 마음은 버그를 몇초에서 발견하곤 하는데 심리적 압박감을 느끼고 있는 상태에서는 간단한 버그 때문에 몇시간 헤매고 버리는 것으로써 시간의 낭비가 많이 발생하는 것도 있는 것 같습니다.프로젝트 초반에 모든 소프트웨어 기능을 개발했다면 프로젝트 중반부터는 조금 편한 마음으로 단위 테스트 및 통합 테스트를 실시할 수 있으므로 소프트웨어 품질 향상에 도움이 될 것입니다.*소프트웨어를 튜닝 할 시간이 있다.프로젝트 초반에 모든 소프트웨어 기능을 개발 완료하면 프로젝트 중반부터는 성능 테스트를 할 수도 있다고 생각합니다. 성능 시험 중에 고객이 원하는 성능이 나오지 않으면 개발된 소프트웨어를 튜닝할 수 있는 기간이 있으므로, 소프트웨어 튜닝에 매진하고 고객이 원하는 성능의 소프트웨어를 납품할 가능성이 높을 것 같아요.또 소프트웨어를 개발하고 보면, 여러가지 문제가 있다고 결론이 나오면 소프트웨어를 수정할 수 있는 기간이 있으므로 보다 효율적인 소프트웨어를 개발할 수 있을 것 같습니다.저는 소프트웨어 개발 프로젝트를 진행할 때와 항상 프로젝트 기간의 50%를 개발에 배정했으며, 나머지 50%를 시험에 할당하고 있습니다. 믈롱 소프트웨어 개발 프로젝트는 혼자서 진행하는 것이 거의 없으므로 소프트웨어 개발에 참여했던 다른 분들 때문에 프로젝트 후반에 바빠지고 있는 것 같습니다. 그러나 제가 개발한 소프트웨어의 핵심 기능은 이미 개발되고 개발자 시험이 완료되는 안정적으로 운영되고 있어 프로젝트 후반에 발생한 요구 사항은 신속하고 효과적으로 개발되고 있는 것 같아요. 또 프로젝트 중반 이후에는 제가 개발한 소프트웨어도 시험하지만 다른 분들이 개발한 소프트웨어가 제가 개발한 소프트웨어에 연동되는 경우는 다른 분들이 개발한 소프트웨어를 테스트하거나 관련 DB튜닝을 수행하는 것 같아요.그럼…오늘도 즐거운 시간 보내세요.~^^나는 소프트웨어 개발 프로젝트를 진행할 때와 항상 프로젝트 기간의 50%를 개발에 할당하고 나머지 50%를 테스트에 할당합니다. 무론 소프트웨어 개발 프로젝트는 혼자 진행할 일이 거의 없기 때문에 소프트웨어 개발에 참여한 다른 분들 때문에 프로젝트 후반에 바빠지는 것 같습니다. 그러나 내가 개발한 소프트웨어의 핵심 기능은 이미 개발되었고 개발자 테스트가 완료되어 안정적으로 운영되고 있기 때문에 프로젝트 후반부에 발생하는 세부 요구 사항들은 신속하고 효과적으로 개발되고 있는 것 같습니다. 또 프로젝트 중반 이후부터는 제가 개발한 소프트웨어도 테스트하는데 다른 분들이 개발한 소프트웨어가 제가 개발한 소프트웨어에 연동되는 경우에는 다른 분들이 개발한 소프트웨어를 테스트하거나 관련 DB 튜닝을 수행하는 것 같습니다.그럼… 오늘도 즐거운 시간 보내세요.~~~ ^^