분산 소프트웨어 개발에서의 커뮤니케이션
Communication in distributed software development분산 소프트웨어 개발에서의 커뮤니케이션은 글로벌하게 분산된 개발 프로세스에서 소프트웨어 개발에 적용되었을 때 커뮤니케이션 프로세스와 그 영향을 고려하는 연구 영역입니다.소프트웨어 개발에서 커뮤니케이션과 조정의 중요성은 널리[1] 연구되고 있으며 조직 커뮤니케이션에서는 조직 차원에서 이러한 영향을 연구합니다.이는 팀 및 팀 구성원이 개별 물리적 위치에서 작업하는 환경에도 적용됩니다.부과된 거리는 더 이상 대면 프로세스가 아닌 커뮤니케이션에 새로운 과제를 야기하며, 또한 근무 시간이 약간 겹치는 반대 시간대에 있는 팀 등 다른 제약을 받을 수 있다.
같은 프로젝트의 요소들이 지리적으로 분리된 영역(같은 회사의 다른 팀부터 아웃소싱 및 오프쇼어링까지)에서 작동하도록 강요하는 데는 여러 가지 이유가 있습니다. 이 영역에는 서로 다른 통신 제약과 필요성이 적용됩니다.추가된 통신 과제는 일반적으로 조합으로 사용되는 다양한 통신 방법을 채택하는 결과를 초래합니다.화상회의의 경우처럼 실시간으로 또는 이메일과 같은 비동기 방식으로 사용할 수 있습니다.화상회의는 개발자가 커뮤니케이션에 소비하는 시간을 보다 효율적으로 할 수 있도록 하는 것이 가능하지만, 팀이 다른 시간대에서 작업할 때는 더욱 어려워집니다.이 경우 이메일이나 메시징 서비스를 사용하는 것이 더 편리할 수 있습니다.
역사
분산 소프트웨어 개발에서의 커뮤니케이션의 역사는 분산 개발 자체의 역사적 설정과 관련되어 있습니다.통신 툴은 분산 소프트웨어[citation needed] 개발의 초기 시도에서 통신이 누락된 주요 구성요소였기 때문에 분산 개발 프로세스를 진행하는 데 도움이 되었습니다.새로운 툴의 작성과 분산 개발의 실현 가능한 방법론의 주요 요인 중 하나는 개발자와 연구자가 접근하기 쉬운 플랫폼으로서 인터넷을 도입하여 팀 내에서 코드와 정보의 교환을 촉진하는 것입니다.
분산개발의 첫 번째 징후 중 하나는 오픈소스 커뮤니티로, 개발자는 기업과 그 자원에 의해서가 아니라 자발적으로 같은 프로젝트에 참여함으로써 서로 다른 지리적 위치에서 다양한 팀이 탄생한다.이러한 프로젝트에서는 커뮤니케이션 및 협업 도구에 대한 요구가 급증하고 있습니다.무료 및 오픈 소스 소프트웨어의 역사를 보면 시간이 지날수록 프로젝트의 복잡성과 관련된 인원의 수가 증가했음을 알 수 있습니다.이러한 증가에는 보다 나은 커뮤니케이션 및 협업 도구가 중요한 역할을 했습니다.처음에는 이메일이나 메일링 리스트와 같은 비동기식 통신 방식이나 정보를 전파하기 위해 정기적으로 작성된 출판물에 의존하는 방법이 대부분이었습니다.동기 통신은 대부분 전화[citation needed] 통화로 제한됩니다.
이 초기 단계에서는 엔터프라이즈 환경에서[citation needed] 이러한 종류의 분산 개발에 대한 계정이 많지 않습니다.그러나, 지금까지의 개발이나 툴은, 이점을 얻을 수 있었을 때에 기업이 이러한 관행을 조사해 채용하는 데 필요한 수단을 개척하고 있습니다.음성 회의나 인스턴트 메시징 등의 툴은 주로 다른 목적으로 등장했지만 곧 채택되어 분산 개발의 발상을 계속 추진해 왔습니다.이 새로운 움직임은 개발 프로세스의 효과와 품질을 더욱 개선하기 위해 분산 소프트웨어 개발의 커뮤니케이션이라는 연구 분야에 대한 관심을 불러일으켰습니다.
중요성
일반적으로 소프트웨어 개발에는 많은 양의 정보[2] 교환이 필요하며, 연구 결과에 따르면 개발자는 대부분의 시간을 협업/[3]커뮤니케이션 활동에 소비하고 있습니다.프로젝트 상태를 갱신하거나 특정 작업에 대한 책임을 누가 지는지 결정하는 것과 같은 중요한 태스크에 공식적인 커뮤니케이션이 사용되는 반면, 비공식적인 커뮤니케이션은 개발 [4]프로세스에도 매우 중요합니다.비공식 커뮤니케이션 또는 "코리더 토크"는 개발자들이 주변에서 무슨 일이 일어나고 있는지, 다른 직원이 어떤 분야에서 어떤 전문 지식을 가지고 있는지, 그리고 그들이 효율적으로 협력하고 [4]"팀의 정신"을 형성할 수 있도록 하는 많은 다른 중요한 배경 정보를 계속 파악할 수 있도록 도와줍니다.연구들은 또한 프로젝트가 불확실할수록,[1] 이러한 종류의 의사소통이 더 중요하다는 것을 보여준다.
글로벌 소프트웨어 엔지니어링(GSE) 환경에서는 비공식 커뮤니케이션을 재현하기 어렵습니다.이러한 유형의 커뮤니케이션이 부족하면 예기치 못한 사태가 발생하여 정렬 불량 및 [4]재작업이 발생할 수 있습니다.따라서 GSE를 적용하는 모든 기업에게 분산 소프트웨어 개발에서의 커뮤니케이션은 중요합니다.이 연구 분야는 특히 GSE 환경에서 비공식 커뮤니케이션을 재현하여 이 [5]환경 특유의 개발 속도를 잃지 않고 소프트웨어를 개발하려고 합니다.
과제들
의사소통은 사회문화, 언어, 지식, 지리적,[6] 시간적 장벽과 같은 여러 장벽에 의해 방해될 수 있다.
사회문화적 장벽은 소통의 수단으로 나타날 수 있다.실제로 미국과 일본의 고객들의 선호도가 뚜렷하다는 연구결과가 나왔다.미국 고객은 비공식적인 전화나 이메일을 통해 자주 대화하는 것을 선호하지만, 일본 고객은 구두로 대화하고 전자매체의 [7]빈도는 낮지만 공식적인 사용을 선호합니다.
언어 장벽은 일반적으로 대화에 참여하는 배우 중 적어도 한 명이 모국어를 사용하지 않을 때 나타납니다.모국어로 자신을 더 잘 표현할 수 있어야 한다는 사실 외에도 다른 장애물이 있다.관용적 표현과 은어는 격식을 차리지 않는 의사소통을 어렵게 하는 장애의 한 예이다.
앨런스 커브에 따르면 엔지니어 간의 통신 빈도는 거리가 커짐에 따라 기하급수적으로 감소한다.회사 내 동료의 경우, 동료들 간의 우연한 만남에 의해 의사소통이 촉발되는 경우가 많다.후자 사이에 상당한 거리가 있을 경우, 그들의 통신은 감소합니다.실제로 지역 및 원격지 동료 간의 커뮤니케이션 빈도를 비교한 실증 연구가 실시되었습니다.조사 대상자 대부분은 적어도 하루에 한 번은 지역 동료들과 대화하고, 멀리 떨어져 있는 [5]동료들과 일주일에 한 번 이하로 대화한다고 답했다.
시간적 장벽은 지리적 장벽과 밀접하게 관련되어 있다.시간적 장벽은 일반적으로 두 명 이상의 동료가 서로 다른 시간대에 있고 종종 서로 다른 지리적 위치에 있는 시나리오에 존재한다.개발자들은 주로 업무시간 중에 의사소통을 하는데, 업무시간 중복이 필요 없는 비동기식 통신을 사용할 수 있지만 본질적으로 통신 프로세스를 [8]지연시킨다.그 대안으로 실시간 통신이 필요한 경우 동기식 통신을 사용할 수 있지만, 중복 근무 시간을 찾아야 하는 복잡성을 야기한다.팔로우 더 선(follow-the-sun)은 소프트웨어 회사가 후자의 문제를 완화하기 위해 취하는 일반적인 접근법입니다.
조사.
분산 소프트웨어 개발에 있어서의 커뮤니케이션에 관한 연구는, 개발 프로세스와 최종 제품의 성공에 있어서의 다양한 커뮤니케이션 방법의 영향을 이해하기 위해서 행해지고 있습니다.
커뮤니케이션은 소프트웨어 개발 프로젝트를 조정하고 팀원 간에 지식을 공유하는 데 필수적인 프로세스입니다.이전 연구에서는[9][10] 지식을 공유하는 것이 신뢰를 쌓고 팀 전체의 성과를 향상시키는 데 중요하다고 주장했습니다.이것은 분산 소프트웨어 개발 프로세스에도 적용됩니다.
또, 상기의 항에서 설명한 바와 같이, 부적절한 대처는, 팀 프로젝트를 지연시키거나 회사에 코스트의 발생을 초래할 가능성이 있습니다.많은 연구들이 이러한 문제들을 완화하고 [11]의사소통을 방해하는 것을 피하기 위해 노력하고 있다.
통신에 사용되는 도구는 일부 연구의 범위에 포함됩니다.이들은 일부 다른 유형의 도구의 장점과 단점, 그리고 개발자들이 특정 [12][13]상황에서 어떤 도구를 사용하는 것을 좋아하는지 보여줍니다.
글로벌하게 분산된 개발이 프로젝트의 성공에 어떻게 영향을 미치는지에 대한 연구자들의 관심은 저자가 이 주제에 대한 더 많은 경험적 연구의 필요성을 언급하는 등의[11] 출판물에서 주목됩니다.또 다른 연구는[14] 저자가 제시한 표본 크기가 작기 때문일 수 있는 유의한 결과 없이 시간대와 언어 장벽 사이의 보다 직접적인 관계를 찾으려 했다.그러나, 분산 개발과 협력자 간의 응답 시간 연장 사이에는 실제로 관계가 있는 것으로 나타났습니다[5].통신 빈도와 지리적 거리(예: 알렌 곡선)를 연관짓는 연구도 있다.
지금까지의 조사에서는, 기업이 사용하는 방법론이나 툴의 개선의 필요성과 커뮤니케이션이 [citation needed]기업의 성공에 있어서 큰 요소라고 지적되고 있다.
커뮤니케이션의 형태
콜라보레이션 설정의 통신은 에이전트가 서로 상호 작용하는 방식이 다르므로 동기 또는 비동기 중 하나로 실행할 수 있습니다.서로 다른 커뮤니케이션 양식은 지원되는 커뮤니케이션 유형에 따라 유사한 커뮤니케이션 시스템과 도구를 생성하며 분산된 개발 환경에서 서로 다른 목적을 수행합니다.사내에서도, [15]작업 환경에서 사용하는 툴의 사용에는, 다른 멤버의 업무나 책임이 반영되고 있습니다.
동기 시스템
동기 시스템에서는, 참가자는 「실시간」으로 정보를 동시에 송수신 해, 통상은 짧은 시간내에 메세지가 응답한다.이러한 유형의 커뮤니케이션은 다른 참가자가 즉시 응답할 수 있을 때 즉각적인 대응이 필요한 커뮤니케이션 또는 직접적인 상황에서 보다 비공식적인 커뮤니케이션을 위해 사용됩니다.기업에서 질문에 신속하게 답변하고 아이디어를 논의하며 주의를 요하는 중요한 개발 사항이나 기타 중요한 메시지를 전달할 때 사용할 수 있습니다.
비동기 시스템
비동기 시스템은 메시지의 송신과 취득을 위한 메커니즘을 제공합니다.이 메커니즘에서는, 송신자는 언제라도 정보를 송신할 수 있습니다.수신자는, 그 정보를 취득해, 응답할 수 있을 때만 응답합니다.이러한 형태의 커뮤니케이션은 즉각적인 답변이 보장되지 않기 때문에 덜 긴급한 사항에 대해 논의하거나 정보를 전달하는 데 사용할 수 있습니다.분산 개발 프로세스에서 특히 유용합니다. 왜냐하면 대부분의 경우 프로젝트에서 작업하는 여러 팀이 동시에 작업하지 않고 긴급하지 않은 문제는 비동기식으로 논의할 수 있기 때문입니다.
하이브리드 시스템
또, 시스템이 같은 환경에서 양쪽의 통신 형태를 제공해, 통신의 유연성을 높이는 방법도 있습니다.이러한 시스템은 일반적으로 교환되는 메시지가 비동기 메시지의 특성을 갖는 하이브리드 시스템이라고 할 수 있지만, 이러한 메시지를 동기 통신의 한 형태로 사용하기 위해 시스템도 구상됩니다.비동기 통신과 동기 통신 사이의 중간 지평을 제시합니다.
도구들
글로벌 분산 소프트웨어 엔지니어링용 통신 도구는 사용하는 통신 형식, 특히 사용자에게 제공되는 인터페이스에 따라 다양한 유형이 있습니다.또한, 다른 범주들은 의사소통을 향상시키기 위해 다른 감각 정보를 사용할 수 있습니다.이용할 수 있는 툴에는 인스턴트 메시징, 이메일, 음성 및 화상 회의, 가상 오피스, 가상 현실 등이 있습니다.이 섹션에서는 다양한 유형의 도구와 현재 사용 중인 몇 가지 일반적인 예를 간략히 설명하지만 사용 가능한 도구의 완전한 수집 및 목록은 아닙니다.자세한 목록은 다른 [16]리소스에서 확인할 수 있습니다.
비동기 도구
이메일
이메일은 컴퓨터, 휴대전화, 그리고 다른 전자제품과 같은 디지털 기기를 사용하여 사람들 간에 디지털 메시지를 교환하는 방법이다.대부분의 인스턴트 메시징 도구와 달리 전자 메일에서는 사용자와 컴퓨터가 동시에 온라인 상태가 될 필요가 없습니다.예를 들어 회사에 자체 이메일 서버가 있을 수 있기 때문에 회사 내 이메일 사용 비용은 다릅니다.
경험적 연구에 따르면 소프트웨어 개발 팀의 모든 팀원이 이 도구를 효과적으로 사용하는 것으로 나타났습니다.인스턴트 메시징과 달리 전자 메일 메시지는 독립적이고 통신 컨텍스트에 덜 민감하도록 설계되어 있으므로 전자 메일 메시지를 생성하는 데 기존 IM [12]메시지보다 더 많은 시간이 필요합니다.
Gmail, Outlook.com, ProtonMail 등이 있습니다.
동기 도구
음성 및 화상 회의
음성 및 화상회의는, 유저가 다른 장소에 있는 오디오 비디오 신호를 수신 및 송신해, 사람간의 커뮤니케이션을 리얼타임으로 실시하는 기술입니다.이러한 유형의 도구는 대면 [13]미팅에 존재하는 풍부한 상호작용을 복제하려고 시도합니다.화상회의와 같은 풍부한 동기 커뮤니케이션 기술은,[17] 참가자의 이해나 합의의 정도를 전달할 수 있는 고도의 인터랙티브한 토론에 적합합니다.
화상회의는 팀원들이 개인적인 [18]관계를 형성할 수 있도록 하기 때문에 글로벌 소프트웨어 개발자들 사이에서 신뢰를 쌓는 좋은 방법이기도 합니다.
조사관들은 영어실력에 자신이 없는 팀원들이 음성이나 화상회의보다 이메일이나 인스턴트 메시지를 사용하는 것을 선호한다는 것을 알아냈다. 텍스트 기반 미디어가 응답을 이해하고 [19]작성하는 데 더 많은 시간을 제공하기 때문이다.텍스트 기반 미디어는 청각과 시각적인 특징을 사용하지 않기 때문에, 이것은 중요한 정보를 이해하는 과정을 방해하고 오해를 초래할 수 있기 때문에 문제가 된다.
줌, GoTo Meeting 및 Highfive가 이러한 유형의 도구의 예입니다.
가상 오피스
가상 오피스는 글로벌 분산 소프트웨어 엔지니어링 환경에서 팀이 필요로 하는 물리 오피스의 근접성과 기능을 재현합니다.가상 사무실은 "채널" 또는 "메시지 스레드"를 갖는 대신 가상 사무실 공간에 공간을 가집니다.
1970년대 후반 토마스 J. 앨런 교수는 엔지니어들 간의 거리가 늘어나면 엔지니어들 [20]간의 통신 빈도가 기하급수적으로 줄어든다는 사실을 발견했다.가상 오피스는 그 거리를 가상으로 단축하고 가상 오피스 간의 통신을 늘리는 방법입니다.
또[21], 가상 오피스가 작업 조정을 용이하게 해, 팀내의 퍼포먼스를 향상시킨다는 연구도 있습니다.
이 서브셋에 속하는 툴로는 Socococo, 8x8 및 Skype for Business가 있습니다.
가상현실
Virtual Reality(가상현실)는 몇 년 동안 관심이 높아지고 있습니다.2015년 1억 2,900만 달러 규모였던 산업 규모가 2016년 말에는 10억 달러 이상으로 성장했습니다.2018년 [22]말에는 46억 달러에 이를 것으로 예상됩니다.
커뮤니케이션 행위 중에 교환되는 내용은 단지 행위자가 관련된 상황에 대한 해석일 뿐이다.후자는 다시 상황에 따라 달라집니다.가상현실을 커뮤니케이션 도구로 사용하는 동기는 컨텍스트에 대한 인식이 이용 가능한 감지 정보에 비례한다는 전제에 기초하고 있다.
가상현실 통신 설정에서 각 참가자는 감각적으로 몰입합니다.이것은 행위자가 처한 상황에 대한 인식을 향상시키고, 결과적으로 의사소통 경험 자체를 향상시킵니다.
비록 그 개념이 최신은 아니지만, 그 기술은 2010년에야 비로소 크게 발전하기 시작했다.
알츠페이스VR은 최근 커뮤니케이션 도구로 활용된 가상현실 플랫폼의 한 예다.[1]
하이브리드 툴
인스턴트 메시징
인스턴트 메시징(IM)을 사용하면 "대화방"의 경우 두 사람 이상 간에 메시지를 전송할 수 있습니다.동기식 또는 비동기식일 수 있으며 덜 침입적인 통신 [23]유형으로 간주됩니다.조사에 따르면 개발자들은 이런 종류의 도구를 사용하여 동료나 [12]상관에게 빠르게 질문하는 것을 좋아합니다.
WhatsApp, Facebook Messenger, HipChat이 이러한 툴의 예입니다.
소프트웨어 프로세스의 응용 프로그램
민첩성
신속한 변화를 위한 소프트웨어 개발과 분산형 소프트웨어 개발을 혼합하는 것은 팀 커뮤니케이션에 [24]많은 문제를 야기합니다.한편, 신속한 변화를 위한 소프트웨어 개발은 비공식적인 의사소통의 증가를 요구하며 [25]문서와 같은 공식적인 의사소통이 부족합니다.한편, 분산 소프트웨어 개발은 앞서 #과제에서 설명한 바와 같이 통신을 개시하는 것을 어렵게 하고 오해를 불러일으키며 통신 비용(시간, 비용 등)을 증가시켜 통신 [5][26]빈도를 감소시킬 수 있습니다.따라서 분산형 신속한 변화를 위한 소프트웨어 개발에서 연구 영역이 매우 중요합니다.그것의 핵심 원칙 중 하나는 개인과 그들의 상호작용 사이의 관계를 강조하며 지속적인 의사소통을 [27]수반한다.
익스트림 프로그래밍
Extreme Programming(XP; 익스트림 프로그래밍)은 모든 개발자가 함께 [28]있는 환경을 위해 설계되었으며 분산 소프트웨어 개발의 경우는 그렇지 않습니다.또한 XP는 이해관계자와 개발자 간의 지속적인 커뮤니케이션에 크게 의존하고 있어 커뮤니케이션은 XP의 [29]5대 핵심 가치 중 하나입니다.따라서 분산 환경에서의 통신은 XP 개발 환경에서[30] 매우 중요하므로 분산 환경에 이 방법론을 적용할 때는 고려해야 합니다.
레퍼런스
- ^ a b Kraut, Robert E.; Streeter, Lynn A. (1995-03-01). "Coordination in software development". Communications of the ACM. 38 (3): 69–81. doi:10.1145/203330.203345. S2CID 18155214.
- ^ Perry, D. E.; Staudenmayer, N. A.; Votta, L. G. (July 1994). "People, organizations, and process improvement". IEEE Software. 11 (4): 36–45. doi:10.1109/52.300082. ISSN 0740-7459. S2CID 9469646.
- ^ Robillard, Pierre N; Robillard, Martin P (2000-09-15). "Types of collaborative work in software engineering". Journal of Systems and Software. 53 (3): 219–224. doi:10.1016/S0164-1212(00)00013-3.
- ^ a b c Herbsleb, J. D.; Moitra, D. (March 2001). "Global software development". IEEE Software. 18 (2): 16–20. doi:10.1109/52.914732. ISSN 0740-7459.
- ^ a b c d Herbsleb, J. D.; Mockus, A. (June 2003). "An empirical study of speed and communication in globally distributed software development". IEEE Transactions on Software Engineering. 29 (6): 481–494. CiteSeerX 10.1.1.110.4806. doi:10.1109/tse.2003.1205177. ISSN 0098-5589.
- ^ ICGSE 2010 : Fifth International Conference on Global Software Engineering : proceedings : 23-26 August 2010, Princeton, New Jersey, USA. IEEE Computer Society. 2010. ISBN 9780769541228. OCLC 709739809.
- ^ Krishna, S.; Sahay, Sundeep; Walsham, Geoff (April 2004). "Managing Cross-cultural Issues in Global Software Outsourcing". Commun. ACM. 47 (4): 62–66. doi:10.1145/975817.975818. ISSN 0001-0782. S2CID 207691252.
- ^ Šmite, Darja (2006-01-01). "Global software development projects in one of the biggest companies in Latvia: is geographical distribution a problem?". Software Process: Improvement and Practice. 11 (1): 61–76. doi:10.1002/spip.252. ISSN 1099-1670.
- ^ Hendriks, Paul (1999-06-01). "Why share knowledge? The influence of ICT on the motivation for knowledge sharing". Knowledge and Process Management. 6 (2): 91–100. doi:10.1002/(SICI)1099-1441(199906)6:2<91::AID-KPM54>3.0.CO;2-M.
- ^ Goodman, Paul S.; Darr, Eric D. (1998). "Computer-Aided Systems and Communities: Mechanisms for Organizational Learning in Distributed Environments". MIS Quarterly. 22 (4): 417–440. doi:10.2307/249550. JSTOR 249550.
- ^ a b Mockus, A.; Herbsleb, J. (2001). Challenges of global software development. Proceedings Seventh International Software Metrics Symposium. pp. 182–184. doi:10.1109/METRIC.2001.915526. ISBN 978-0-7695-1043-9. S2CID 7332197.
- ^ a b c Niinimaki, T. (August 2011). Face-to-Face, Email and Instant Messaging in Distributed Agile Software Development Project. 2011 IEEE Sixth International Conference on Global Software Engineering Workshop. pp. 78–84. doi:10.1109/icgse-w.2011.15. ISBN 978-1-4577-1839-7. S2CID 14348571.
- ^ a b Niinimaki, T.; Piri, A.; Lassenius, C. (July 2009). Factors Affecting Audio and Text-Based Communication Media Choice in Global Software Development Projects. 2009 Fourth IEEE International Conference on Global Software Engineering. pp. 153–162. doi:10.1109/icgse.2009.23. ISBN 978-0-7695-3710-8. S2CID 17514130.
- ^ Yu, Liguo; Ramaswamy, Srini; Mishra, Alok; Mishra, Deepti (2011-10-17). Communications in Global Software Development: An Empirical Study Using GTK+ OSS Repository. On the Move to Meaningful Internet Systems: OTM 2011 Workshops. Lecture Notes in Computer Science. Vol. 7046. pp. 218–227. doi:10.1007/978-3-642-25126-9_32. ISBN 978-3-642-25125-2.
- ^ Sundaravej, T.; Mirchandani, D.; Lederer, A. (January 2015). Synchronous Collaboration Technology Use in Teamwork. 2015 48th Hawaii International Conference on System Sciences. pp. 216–225. doi:10.1109/hicss.2015.35. ISBN 978-1-4799-7367-5. S2CID 6954728.
- ^ "Mind the Gap". drennings.github.io. Retrieved 2017-06-15.
- ^ Dafoulas, G. A.; Swigger, K.; Brazile, R.; Alpaslan, F. N.; Cabrera, V. L.; Serce, F. C. (January 2009). Global Teams: Futuristic Models of Collaborative Work for Today's Software Development Industry. 2009 42nd Hawaii International Conference on System Sciences. pp. 1–10. doi:10.1109/hicss.2009.231. ISBN 978-0-7695-3450-3. S2CID 2662830.
- ^ Bhat, J. M.; Gupta, M.; Murthy, S. N. (September 2006). "Overcoming Requirements Engineering Challenges: Lessons from Offshore Outsourcing". IEEE Software. 23 (5): 38–44. doi:10.1109/ms.2006.137. ISSN 0740-7459. S2CID 9894497.
- ^ Noll, John; Beecham, Sarah; Richardson, Ita (September 2011). "Global Software Development and Collaboration: Barriers and Solutions". ACM Inroads. 1 (3): 66–78. doi:10.1145/1835428.1835445. hdl:10344/656. ISSN 2153-2184. S2CID 11317369.
- ^ Allen, Thomas J. (1984). Managing the Flow of Technology: Technology Transfer and the Dissemination of Technological Information Within the R&D Organization. Cambridge, Massachusetts: MIT Press. ISBN 9780262510271.
- ^ van Gameren, Ben; van Solingen, Rini; Dullemond, Kevin (2013). 2013 IEEE 8th International Conference on Global Software Engineering. pp. 206–215. doi:10.1109/ICGSE.2013.34. ISBN 978-0-7695-5057-2. S2CID 6555228.
- ^ "Report on the current state of the VR market" (PDF).
- ^ Thissen, M. Rita; Page, Jean M.; Bharathi, Madhavi C.; Austin, Toyia L. (2007). Communication Tools for Distributed Software Development Teams. Proceedings of the 2007 ACM SIGMIS CPR Conference on Computer Personnel Research: The Global Information Technology Workforce. SIGMIS CPR '07. New York, NY, USA: ACM. pp. 28–35. doi:10.1145/1235000.1235007. ISBN 9781595936417. S2CID 2741073.
- ^ Ramesh, Balasubramaniam; Cao, Lan; Mohan, Kannan; Xu, Peng (October 2006). "Can Distributed Software Development Be Agile?". Commun. ACM. 49 (10): 41–46. CiteSeerX 10.1.1.477.201. doi:10.1145/1164394.1164418. ISSN 0001-0782. S2CID 15032365.
- ^ Highsmith, J.; Cockburn, A. (September 2001). "Agile software development: the business of innovation". Computer. 34 (9): 120–127. doi:10.1109/2.947100. ISSN 0018-9162.
- ^ Ebert, C.; Neve, P. De (March 2001). "Surviving global software development". IEEE Software. 18 (2): 62–69. doi:10.1109/52.914748. ISSN 0740-7459.
- ^ Alistair., Cockburn (2007). Agile software development: the cooperative game. Addison-Wesley. ISBN 9780321482754. OCLC 70867033.
- ^ Anderson, Ann; Hendrickson, Chet (2001). Extreme programming installed. Addison-Wesley. ISBN 978-0201708424. OCLC 44518151.
- ^ Beck, Kent (2000). Extreme Programming Explained: Embrace Change. Addison-Wesley Professional. ISBN 9780201616415.
- ^ Layman, Lucas; Williams, Laurie; Damian, Daniela; Bures, Hynek (September 2006). "Essential communication practices for Extreme Programming in a global software development team". Information and Software Technology. Special Issue Section: Distributed Software Development. 48 (9): 781–794. CiteSeerX 10.1.1.463.7225. doi:10.1016/j.infsof.2006.01.004.