1. 정의
- 일을 처리할 순서와 방법을 지시하여 컴퓨터를 동작시키는 프로그램과 프로그램 수행 절차와 규칙, 관련 문서들의 통칭.
- 소프트웨어는 크게 두가지로 나뉜다.
- 응용 소프트웨어 : 사용자의 목적에 맞게 개발된 소프트웨어. ex) 한글, 워드, 엑셀 등..
- 시스템 소프트웨어 : 하드웨어를 관리하고 응용 소프트웨어를 지원하는 소프트웨어. ex) linux, windows 등..
2. 특성
- 비가시성(invisibility)
- 완제품의 구조가 코드 내에 숨어있어 쉽게 파악하기 힘듦.
- 무형의 논리적 요소
- 개발 과정과 진행 상황을 쉽게 파악하기 어려움.
- 개발 과정 중 최종 산출물을 확인 불가
- 오류 발견 시기를 놓치거나 오류 해결책 불명을 야기.
3. 소프트웨어 개발에 연관된 역할
- 고객(client)
- 개발자에게 기본적인 요구사항과 비용을 전달.
- 사용자(user)
- 사용자마다 니즈가 다름. 불특정 다수의 사용자는 개발자에게 수많은 요구사항을 전달함.
- 개발자(developer)
- 고객의 요구사항을 통해 기본적인 소프트웨어 개발과 유지보수를 수행. 사용자의 니즈를 분석해 추가적인 기능을 구현. 요구사항을 정확히 이해하지 못하면 프로젝트 실패 가능성 존재.
4. 소프트웨어 개발 실패 원인
- 불명확한 요구사항
- pm, 고객, 사용자, 개발자, 디자이너 등 프로젝트 참여자 간 이해가 다를 수 있음. 각 역할별 요구사항에 대한 이해를 검증하는 절차를 필요로 한다.
- 프로젝트 후원자의 참여 부족
- 프로젝트 후원자가 중간 점검을 통해 요구사항이 철저히 반영되고 있는지 지속적으로 검증하는 절차를 필요로 한다.
- 프로젝트 목표 변경
- 트렌드의 빠른 변화를 따라가지 못해, 진행중인 프로젝트를 일부 혹은 전체를 변경하는 경우가 존재한다.
- 부정확한 추정
- 과거에 예측했던 미래의 트렌드가 실제와 다른 경우 프로젝트 실패를 야기한다.
- 예측하지 못한 위험
- covid-19 대유행 등 예측 범위 이외의 변수들에 의해 프로젝트 실패 가능성이 존재한다.
- 의존 경로의 지연
- 단계 별로 진행해야하는 요구사항을 제대로 파악하지 못해 다른 산출물을 만들어내는 경우가 존재한다.
- 충분하지 못한 자원
- 개발 산출물에 필요한 비용이나 시간 등의 자원이 부족한 경우 프로젝트 실패를 야기한다.
'cs > sw 개발 프로세스' 카테고리의 다른 글
Agile Framework - XP (0) | 2022.12.01 |
---|---|
Agile Framework - Scrum (0) | 2022.11.30 |
SW 개발 생명주기(SDLC) (0) | 2022.11.28 |
SW 개발 프로세스 (0) | 2022.11.25 |
소프트웨어 공학(SW Engineering) (0) | 2022.11.24 |
댓글