소프트웨어 개발: 팀의 주요 역할은 무엇입니까?
게시 됨: 2021-01-29많은 사람들이 앱을 만들려면 개발자 한 명만 고용하면 충분하다고 생각합니다. 하지만 복잡도가 높아지고 개발 시간이 길어질수록 역할이 명확하게 정의되지 않더라도 누군가는 다른 역할을 수행해야 한다는 사실이 명확해집니다.
소프트웨어 개발은 프로젝트 프레임워크 내에서 수행됩니다. 시간 프레임, 원하는 결과 및 예산이 명확하게 설명되어 있습니다. 모든 프로젝트에는 인적 자원도 포함되며 필요한 예산에 영향을 미치기 때문에 참가자를 적절하게 선택하는 것이 중요합니다. 따라서 프로젝트 개발에 누가 참여하고 있으며 어떤 의무가 있는지 알아 봅시다.
- 소프트웨어 개발 팀의 10가지 주요 역할
- 1. 프로젝트 매니저
- 2. 애널리스트
- 3. 건축가
- 4. Leading Developer(팀장)
- 5. 개발자
- 6. QA 전문가/테스터
- 7. 디자이너
- 8. 시스템 관리자/DevOps 책임자
- 9. 개발부장
- 10. 고객/제품 소유자
- 일반적인 역할 조합
- 결론적으로
소프트웨어 개발 팀의 10가지 주요 역할
"프로젝트 역할을 분석할 때 회사의 일반 직원이 한 번에 여러 역할을 수행할 수 있고 다른 역할로 다른 프로젝트에 참여할 수도 있다는 것을 이해해야 합니다." – 최근 기사 중 하나에서 Beetroot의 최고 마케팅 책임자인 Sebastian Streiffert가 언급한 바와 같습니다.
나중에 역할 조합에 대해 이야기하겠습니다. 이제 소프트웨어 개발 프로젝트 팀의 주요 역할과 위치에 주목해 보겠습니다.
추천: 소프트웨어 및 IT 비즈니스는 COVID-19 팬데믹에서 어떻게 생존하고 있습니까?
1. 프로젝트 매니저
이 사람은 프로젝트 계획을 수립하고 실행을 책임집니다. 그 또는 그녀는 직원으로부터 계획의 일부를 받고, 함께 모으고, 일관성을 확인합니다. PM은 팀원들에게 보고서를 작성하고 일정 예산 내에서 적시에 결과를 전달하는 일을 담당합니다. 그 외에도 다음 작업을 수행합니다.
- 고객 및 프로젝트 팀과 함께 계획을 정기적(매주) 검토합니다.
- 고객의 요청에 따라 계획을 조정합니다.
- 주간 프로젝트 보고서를 작성합니다.
- 고객과 직원에게 문제점을 알리고 예산 내에서 해결하도록 노력하는 등
기본적으로 PM은 프로젝트의 KPI를 담당합니다. 통계에 따르면 설정된 KPI와 초기 예산 내에서 제시간에 완료되는 개발 프로젝트는 소수에 불과합니다. 문제가 발생하더라도 PM은 제품 출시 연기, 업데이트 버그 등에 대해 궁극적으로 책임을 집니다.
2. 애널리스트
분석가는 최신 요구 사항을 작성하고 유지할 책임이 있습니다. 특히 프로젝트 요구 사항에 대해 고객과의 주요 협상자입니다. 이 사람은 프로젝트에 대한 권장 사항을 작성하고 이해 관계자, 설계자 및 주요 개발자와 함께 검토합니다. 또한 분석가는 테스트 계획을 검토하고 테스터에게 어려움을 설명하며 코드 테스트에 참여할 수도 있습니다. 이 사람은 최상위 개발 검토에도 참여할 수 있습니다.
복잡한 프로젝트에는 분석가 그룹과 팀을 책임지는 리드가 필요할 수 있습니다.
3. 건축가
이 사람은 프로젝트의 아키텍처를 개발합니다. 대규모 프로젝트의 경우 건축가는 정규 직원이어야 합니다. 이 팀원은 HLD(고급 문서), 고객 기술 요구 사항에 대한 아키텍처 조정을 담당합니다. 프로젝트를 구조화하고, 개발자들 사이에 작업을 분배하고, 어려운 문제를 도와줍니다.
4. Leading Developer(팀장)
전담 설계자가 없는 소규모 프로젝트에서는 주요 개발자가 모든 개발 작업을 담당합니다. 그들은 개발자를 임명하고 계획을 검토하고 마감일을 규정합니다. 그 외에도 다음 작업을 수행합니다.
- 개발자의 작업을 수락하고 코드 검토를 수행합니다.
- 리포지토리의 분기를 병합하고 테스트되고 관련이 있는 코드만 기본 분기에 들어가도록 합니다.
- 프로젝트 문서를 작성합니다.
- 직원을 교육하고 어려운 문제를 해결하도록 돕습니다.
- 코드를 작성합니다.
5. 개발자
이 사람은 프로젝트의 코드를 작성합니다. 요구 사항을 읽고 분석가와 복잡한 영역을 분석하고 팀장이나 설계자로부터 개발 작업을 수락하고 필요한 경우 피드백을 제공합니다. 그들의 직접적인 책임은 다음과 같습니다.
- 코드 구성 요소 및 단위 테스트 개발
- 테스트 실행
- 구현된 기능이 요구 사항을 충족하는지 확인
- 테스터로부터 티켓을 받고 오류를 수정합니다.
- 어려운 경우 테스트에 참여합니다.
작성되고 컴파일된 코드가 없으면 앱도 없습니다. 프로그래밍의 일종이기도 한 단순한 시각적 생성자로 어떤 앱이 만들어지더라도 개발자를 배제할 수 없는 이유다.
당신은 좋아할지도 모릅니다: 소프트웨어 엔지니어링의 미래 | 2021년 이후의 트렌드, 예측.
6. QA 전문가/테스터
앱이 제대로 작동하는지 확인하는 사람들입니다. 또한 올바르다는 것이 항상 사용자에게 친숙함을 의미하지는 않습니다. 테스터는 사용성 메모를 작성할 수 있지만 주요 관심사는 앱이 요구 사항 및 사양에 따라 작동하는지 확인하는 것입니다. 수동으로 또는 자동 테스트를 사용하여 앱을 테스트할 수 있습니다.
분석가의 경우 테스터는 프로젝트 하위 시스템 또는 테스트 방법에 따라 할당될 수 있습니다. 테스터가 한 명 이상인 경우 그 중 한 명을 팀장으로 지정해야 합니다. 프로젝트 스태프에 전담 테스터가 없는 경우 해당 기능은 일반적으로 개발자에게 위임됩니다. 동시에 개발자가 자신의 코드를 올바르게 테스트할 수 없기 때문에 교차 테스트가 더 나은 옵션이라고 생각됩니다.
7. 디자이너
앱의 모양과 작동 방식을 결정하는 사람입니다. 디자이너는 요소의 위치, 이동 방식, 애니메이션 등에 대해 생각해야 합니다. 복잡한 앱에는 여러 디자이너가 필요할 수 있습니다. 예를 들어 한 디자이너는 인터페이스를 그릴 수 있고 다른 디자이너는 사용자 상호 작용의 전체 개념을 생각할 수 있습니다. 일부 소프트웨어 개발 회사에는 디자이너가 없으므로 개발자가 간단한 프로젝트에 대해 이 역할을 맡을 수 있습니다. 디자이너의 주요 작업은 다음과 같습니다.
- ScreenFlow 개발;
- 스크린 프로토타이핑;
- 사용자 상호 작용 최적화(추천 제공)
- 개발팀에 문의합니다.
때로는 디자이너와 프로그래머가 응용 프로그램의 일부 오류에 대해 책임을 집니다. 예를 들어 고객의 디자인 아이디어를 구현하는 것이 상당히 어려울 수 있으므로 오류가 발생할 확률이 높아집니다. 결과적으로 모든 실패는 디자이너의 작업과 관련이 있습니다.
8. 시스템 관리자/DevOps 책임자
이 팀 구성원은 지속적 제공 및 지속적 통합 워크플로, 시스템 간의 상호 작용 구성, 배포, 테스트 중 문제 식별을 담당합니다. 이들은 데이터 마이그레이션 및 동기화 계획 및 작업에 참여합니다. 그 외에도 다음 작업을 수행합니다.
- 시스템 배포 및 관리에 대한 가이드를 작성합니다.
- 고객과 상호 작용
- 시스템 하드웨어를 구성하고 구성합니다.
- VPN을 설치하고 방화벽에 대처하십시오.
- 프로그래머 없이 시스템을 배포합니다.
9. 개발부장
이 사람은 프로젝트 팀 구성에 참여합니다. 그들은 직원의 자격에 대한 책임이 있으므로 그들의 임무는 교육을 조직하고 직원의 경력 성장을 모니터링하는 것입니다. 게다가 그들은 직장에서의 편안함도 책임지고 있습니다.
10. 고객/제품 소유자
제품 제작의 전체 과정을 결정하는 주 팀원입니다. 이 사람은 수행해야 할 작업을 결정하고 구현이 제품 개념과 일치하는지 여부를 평가합니다. 특히 책임 있는 제품 소유자는 다음 작업을 수행합니다.
- 제품의 개념을 정의합니다.
- 마케팅 전략을 수립합니다.
- 경쟁자를 분석합니다.
- 개발 상태 제어를 수행합니다.
- 제품 전략 및 수익 창출 방법 선택
- 비즈니스 성과 개선에 대한 아이디어를 생성합니다.
- 제품 품질을 평가합니다.
따라서 이 사람의 주요 목표는 제품이 비즈니스 목표에 부합하는지 확인하는 것입니다.
일반적인 역할 조합
때때로 결과를 논의할 때 고객은 개발자가 뭔가 잘못했다고 말합니다. 이러한 상황은 프로젝트 직원 중 일부가 한 번에 여러 역할을 수행해야 하는 경우에 나타날 수 있습니다. 이 문제는 일반적으로 개발자 그룹을 고용할 재정 자원이 부족할 때 발생합니다. 때로는 역할 조합이 긍정적인 결과를 가져올 수 있습니다. 예를 들어 다음과 같은 옵션이 가능합니다.
- 분석가 + 테스터 – 그럴듯하게 들리지만 그런 사람은 많은 비용이 듭니다.
- 프로젝트 관리자 + 분석가 – 이러한 옵션은 소규모 프로젝트에서 허용됩니다.
- Architect + Lead 개발자 – 소규모 프로젝트에서는 괜찮습니다.
- 프로젝트 관리자 + 주요 개발자 – 숙련된 프로그래머 및 테스터 팀이 있는 소규모 프로젝트의 경우 이 옵션도 시도할 수 있습니다.
- 개발자 + 디자이너 – 숙련된 개발자 팀의 경우 가능합니다.
한편, 가능한 경우 소프트웨어 개발 프로젝트에서 결합해서는 안 되는 팀 역할도 있습니다.
- 개발자 + 테스터 - 허용되지 않습니다.
- Architect + Analyst – 언뜻 보기에는 그럴듯해 보이지만 전반적으로 선택 사항이 아닙니다. 이 두 역할은 약간 대립적입니다.
보시다시피 일부 포지션은 병합이 가능하지만 다른 포지션은 최종 결과를 손상시키는 폭발적인 혼합을 만듭니다. 역할 결합을 피하거나 프로젝트 개발에 충분한 시간을 투자하십시오.
COVID-19에서 원격 소프트웨어 개발자로서 자기 개발을 위한 팁 .
결론적으로
이제 프로젝트 개발 팀에서 누가 누구인지 알 수 있습니다. Android 또는 iOS용 앱 개발을 고려하고 있다면 어떤 종류의 사람들을 찾아야 하는지 알게 될 것입니다. 한편 주요 역할은 프로젝트 유형에 따라 크게 다를 수 있습니다. 처음부터 소프트웨어를 만들려면 ERP 시스템을 구현하거나 고객의 최고 경영진을 위해 BI 앱을 설치하는 것과는 다른 팀이 필요합니다.
자신의 팀을 고용하는 경우 현재 프로젝트에 참여하지 않거나 완전히 참여하지 않는 경우에도 전체 직원을 유지해야 합니다. 실제로 대부분의 프로젝트에는 전임 디자이너, 시스템 관리자 또는 테스터가 필요하지 않습니다. 따라서 전담 개발팀을 고용하거나 이 일을 아웃소싱하는 것이 좋습니다.
프로젝트와 팀에 어떤 소프트웨어 개발 역할이 유용했습니까? 의견에 귀하의 경험을 공유하십시오.