소프트웨어 회사
Software company이 글에는 여러 가지 문제가 있다.이 문제를 개선하거나 대화 페이지에서 토의하십시오.(이러한 템플릿 메시지를 제거하는 방법 및 시기 알아보기)
|
소프트웨어 회사는 소프트웨어, 소프트웨어 기술, 유통, 소프트웨어 제품 개발의 다양한 형태가 주요 제품인 회사다.[1]그들은 소프트웨어 산업을 구성한다.
종류들
소프트웨어 회사에는 다음과 같은 여러 가지 유형이 있다.
- 마이크로소프트 아웃룩, 워드 앤 엑셀, 어도비 시스템스의 아크로벳, 일러스트레이터 및 기타 디자인 도구와 같은 상용 기성품(COTS) 제품을 사용할 수 있도록 판매하거나 크롬과 같은 구글 앱이 있다.
- 많은 기업들이 소프트웨어 개발 서비스를 제공하고 있으며, 다른 기업과 기업을 위한 맞춤형 소프트웨어를 개발하는 구조를 가지고 있다.
- Panorama, Hyperion, Siebel Systems와 같은 전문 상용 기성 소프트웨어를 생산하는 회사
- 구글의 이메일 서비스 Gmail, Voice and Maps와 같은 SaaS(Software as a Service)를 제공하는 회사, Salesforce, Zendesk와 같은 회사.
- 페이스북, 링크드인, 인스타그램, 트위터, 팔러 등 소셜미디어를 동원하는 기술.
- 또 아마존웹서비스(AWS), 마이크로소프트 아즈레 클라우드 서비스, 고대디 호스팅 서비스 등 IT 인프라 서비스와 클라우드 컴퓨팅 서비스를 제공하는 기업의 SaaS 제품도 있다.
- 타사 개발자가 Google Geo Location API, Google 캘린더 API 등과 같은 회사 소프트웨어와 상호 작용할 수 있는 API as a Service.
- Syncfusion, DevExpress, Telerik UI, Kendo UI 및 Dundas와 같은 소프트웨어 구성요소를 생산하는 회사
- Salesforce와 같은 애플리케이션 서비스 공급자
- 수직 산업 또는 특정 지리적 지역에 맞는 맞춤형 소프트웨어를 생산하는 기업
- 최종 사용자가 사용하는 소비자 또는 엔터프라이즈 소프트웨어를 구축, 개발 및 판매하는 독립 소프트웨어 벤더(ISV)
이러한 모든 사항은 다음 중 하나 또는 여러 가지로 분류할 수 있다.[2]
소프트웨어 회사의 공통 역할
소프트웨어 회사를 조직하는 것은 경험이 많은 사람들이 조직 문제를 독특한 이익으로 바꿀 수 있는 매우 전문적인 유형의 경영 기술이다.예를 들어, 하위팀을 다른 시간대에 분산시키는 것은 팀, 시스템 및 절차가 잘 확립되어 있다면 24시간 회사 근무가 허용될 수 있다.개발팀보다 8시간 앞이나 뒤 시간대에 있는 테스트팀이 테스터가 발견한 소프트웨어 버그를 고치는 것이 좋은 예다.
전문 소프트웨어 회사는 일반적으로 최소 3개의 전용 하위 팀으로 구성된다.
더 큰 소프트웨어 회사에서는 더 큰 전문화를 채택하고 있으며, 꽤 자주 다음과 같은 전문화가 있다.
- 사용자 가이드와 같은 모든 문서를 작성하는 기술 작성자
- 전체 제품 및 소프트웨어 버전 관리를 담당하는 릴리즈 전문가
- 비즈니스 요구사항, 사용자 연구 및 사용적합성에 대한 전문지식을 기반으로 설계 아키텍처를 만들고 있는 사용자 경험 설계자
- 일반적으로 그래픽 사용자 인터페이스 설계를 담당하는 그래픽 설계자.
- 2, 3개 이상의 지원 라인 뒤에 있는 유지보수 엔지니어
- 컨설턴트는 특히 전문 지식이 필요한 경우 솔루션을 운영할 책임이 있다.이에 대한 예로는 비즈니스 인텔리전스 소프트웨어에서 다차원 큐브 구축, 기존 솔루션과의 통합, 비즈니스 프로세스 관리 소프트웨어에서 비즈니스 시나리오 구현 등이 있다.
구조
소프트웨어 회사의 매니저는 보통 개발 책임자(HOD)라고 불리며 이해관계자에게 보고한다.[3]조직의 규모에 따라 직접 또는 관리자/리더들을 통해 서브팀을 이끈다.보통 최대 10명으로 구성된 팀이 가장 많이 운영된다.더 큰 조직에는 일반적으로 두 가지 계층 모델이 있다.
모든 팀들은 완전히 독립적이고 그들은 다른 프로젝트에서 따로 일한다.구조는 간단하고 전 직원이 한 명에게 보고하는데, 지식 교류와 최적의 인력 활용 측면에서 좋은 해결책은 아니다.
이 모델에는 각 주요 전문화를 위한 전담 매니저/리더들이 있으며, 제품/프로젝트 관리자가 주도하는 특정 프로젝트에 그들의 직원을 "대여"하며, 그들은 공식적으로 또는 비공식적으로 사람들을 구입하고 그들의 시간을 지불한다.이를 통해 각 개인 직원은 제품/프로젝트 관리자와 전문 "자원" 관리자인 두 명의 상사를 갖게 된다.한편으로, 그것은 인적 자원의 사용을 최적화하고, 다른 한편으로, 그것은 한 관리자가 구조에서 우선순위를 갖는 것에 대한 갈등을 야기할 수 있다.
이러한 구조물의 변형도 여러 가지가 있으며, 여러 부서와 단위 내에서 이러한 구조가 확산되고 분열되어 있는 조직도 적지 않다.
방법론
소프트웨어 회사들은 코드를 생산하기 위해 많은 다양한 방법론을 사용할 수 있다.여기에는 다음이 포함될 수 있다.
또한 나선형 모델, Rational Unified Process(RUP)[8] 또는 MSF와 같은 두 가지 모두를 결합하는 방법론도 있다.[9]
제품 수명 주기
사용된 방법론에 관계없이 제품 수명 주기는 항상 최소 세 단계로 구성된다.
- 설계 – 비즈니스 및 기술 사양 모두 포함
- 코딩 – 개발 자체
- 테스트 – 품질 관리
각 단계는 전체 시간의 30%를 차지하는 것이 이상적이며 나머지 10%는 예비한다.
이러한 그룹 간의 상호 작용에 대한 UML 시퀀스 다이어그램은 다음과 같이 보일 수 있다.
각 단계에서 서로 다른 그룹이 주요 역할을 수행하지만, 각 유형의 역할은 전체 개발 과정 동안 모두 포함되어야 한다.
- 애널리스트들은 사업시방서를 완성한 후 변화하는 사업상황을 관리해 시간이 지남에 따라 변화할 가능성을 최소화한다.그들은 또한 최종 제품이 시작 시 명시된 비즈니스 요구를 충족시킬 수 있도록 전체 개발 프로세스 동안 프로그래머와 테스터를 모두 지원한다.이 프로세스는 최적의 비즈니스 계층을 제공하는 데 가장 적합한 솔루션이기 때문에 비즈니스 분석가를 고객에게 최종 솔루션을 제공하는 동안 가장 이상적인 핵심 참여자로 간주한다.
- 프로그래머는 설계 단계에서 기술 사양을 수행하는데, 그래서 프로그래머/디자이너라고 하며, 시험 시간에는 버그를 수정한다.
- 테스터는 설계 단계에서 테스트 시나리오를 완료하고 코딩 단계에서 평가한다.
시스템 및 절차
소프트웨어 회사는 모든 하위 시스템에 걸쳐 내부적으로 구현되고 작동되는 다양한 시스템과 절차를 보유하고 있다.여기에는 다음이 포함된다.
비즈니스 분석가
- Sparx Systems Enterprise Architect 또는 IBM Rational Rose와 같은 모델링 도구
프로그래머
테스터
프로젝트/제품 관리자
- 엔터프라이즈 프로젝트 관리(EPM) 시스템 및 절차
- 제품 포트폴리오 관리(PPM)
- 변경 관리 시스템 및 절차
또한 애플리케이션 라이프사이클 관리(ALM)도 있는데, 이러한 기능 중 일부를 하나의 패키지에 내장하고 그룹 전체에 걸쳐 사용된다.그것들은 볼랜드, ECM 또는 컴푸웨어와 같은 다양한 공급업체로부터 공급된다.
효율성 감사
잘 확립된 소프트웨어 회사들은 대개 그들 자신의 효율성을 측정하는 어떤 방법을 가지고 있다.이는 일반적으로 다음과 같은 주요 성과 지표(KPI) 집합을 정의함으로써 이루어진다.
- 개발자가 코드의 시간 단위 또는 소스 라인당 수행한 평균 버그 수
- 테스트 주기당 테스터에서 찾은 버그 수
- ZBB(Zero Bug Bounce)까지의 평균 테스트 사이클 수
- 테스트 사이클의 평균 시간
- 작업의 실제 시간과 비교한 예상 작업 시간(계획의 정확성)
- 기준선에 대한 수정 횟수
많은 조직이 최적의 CMM(Capability Mergency Model) 수준에 도달하는 데 초점을 맞추고 있으며, 여기서 "최적화"가 반드시 최고를 의미하지는 않는다.카네기-멜론 대학의 SEMA나 특정 ISO 표준과 같은 다른 시스템도 있다.소규모 소프트웨어 회사들은 때때로 덜 정형화된 접근법을 사용할 것이다.각 조직은 그들만의 스타일을 고안하는데, 그것은 총체적 테크노크라시(모든 것이 숫자로 정의되는 곳)와 총체적 무정부 상태(숫자가 전혀 없는 곳) 사이에 있다.조직이 어떤 방향으로 가든지 간에, 그들은 이미 존재하는 개발 과정에 변화를 도입하는 비용과 위험을 설명하는 피라미드를 고려한다.
참고 항목
참조
- ^ "What is a Software Company Today?". RedMonk. 2014. Retrieved June 2, 2017.
- ^ 소프트웨어 프로세스: 원칙, 방법론 및 기술 저자: 장 클로드 데르니메, 바다라 알리 카바, 데이비드 와셀 페이지 166
- ^ 그린라이트:개념에서 피치 페이지 12까지 사실/실제 TV 아이디어 개발
- ^ PRINGS2를 사용하여 성공적인 프로젝트 관리
- ^ PMBOK 가이드 사용 설명서
- ^ 익스트림 프로그래밍 계획
- ^ Scrum을 통한 신속한 프로젝트 관리
- ^ 합리적으로 통합된 프로세스: 작업자의 RUP 가이드
- ^ MSF(Microsoft Solutions Framework): 포켓 가이드