Коммуникация в распределенной разработке программного обеспечения - Communication in distributed software development
Коммуникация в распределенной разработке программного обеспечения это область исследования, которая рассматривает коммуникативные процессы и их эффекты применительно к разработка программного обеспечения в глобальном распределенная разработка процесс. Важность коммуникации и координации при разработке программного обеспечения широко изучается.[1] и организационная коммуникация изучает эти последствия на организационном уровне. Это также относится к условиям, когда команды и члены команды работают в разных физических местах. Установленное расстояние создает новые проблемы в общении, которое больше не является личным процессом, а также может подвергаться другим ограничениям, таким как команды в противоположных часовых поясах с небольшим перекрытием рабочего времени.
Есть несколько причин, по которым элементы из одного и того же проекта вынуждены работать в географически разделенных областях, от разных команд в одной компании до аутсорсинг и офшоринг, к которому применяются различные ограничения и потребности в общении. Дополнительные проблемы связи приводят к принятию широкого спектра различных методов связи, обычно используемых в сочетании. Они могут быть в реальном времени, как в случае видеоконференции, или асинхронным способом, например электронное письмо. Хотя видеоконференция может позволить разработчикам более эффективно расходовать время, затрачиваемое на общение, этого труднее добиться, когда команды работают в разных часовых поясах, и в этом случае использование электронной почты или службы обмена сообщениями может быть более полезным.
История
История коммуникации в распределенной разработке программного обеспечения связана с историческими условиями самой распределенной разработки. Коммуникационные инструменты помогли продвинуть процесс распределенной разработки, поскольку коммуникация была основным недостающим компонентом на ранних попытках распределенной разработки программного обеспечения.[нужна цитата ]. Одним из основных факторов в создании новых инструментов и превращении распределенной разработки в жизнеспособную методологию является внедрение Интернет как доступная платформа для разработчиков и исследователей, облегчающая обмен кодом и информацией в команде.
Одним из первых проявлений распределенной разработки является сообщество с открытым исходным кодом, где разработчиков объединяет не предприятие и его ресурсы, а добровольное участие в одном и том же проекте, в результате чего создаются разные команды из разных географических регионов. В этих проектах существует растущая потребность в инструментах для общения и совместной работы. В история бесплатного и открытого программного обеспечения показывает, что со временем сложность проектов и количество задействованных людей росли. Важную роль в этом росте сыграли более эффективные инструменты общения и сотрудничества. Первоначально доступные методы были в основном асинхронными формами коммуникации, такими как электронное письмо и списки рассылки или даже полагаться на периодические письменные публикации для распространения информации. Синхронное общение будет в основном ограничено телефон звонки[нужна цитата ].
На этой ранней стадии не так много аккаунтов такого рода распределенной разработки на предприятии.[нужна цитата ]. Однако разработки и инструменты прошлых лет стали первопроходцами, которые позволили компаниям начать изучение и внедрение этих методов, когда можно будет получить преимущества. Дополнительные инструменты, такие как Аудиоконференцсвязь и Мгновенное сообщение появился в основном для других целей, но был быстро принят и продолжал продвигать идею распределенной разработки. Это новое движение вызвало интерес к области исследований, а именно к коммуникациям в распределенной разработке программного обеспечения, для дальнейшего повышения эффективности и качества процесса разработки.
Важность
Разработка программного обеспечения, как правило, требует большого объема обмена информацией.[2] Исследования показывают, что значительная часть времени разработчика тратится на совместную работу и общение.[3] Пока официальное общение используется для важных задач, таких как обновление статуса проекта или определение того, кто несет ответственность за конкретную работу, неформальное общение также имеет решающее значение для процесса разработки.[4] Неформальное общение, или «коридорный разговор», помогает разработчикам оставаться в курсе того, что происходит вокруг них, над чем работают другие сотрудники, у кого есть опыт в какой области, и многие другие важные элементы справочной информации, которые позволяют им эффективно работать вместе и создавать «дух команды».[4] Исследования также показывают, что чем более неопределенным является проект, тем важнее такое общение.[1]
В Глобальная программная инженерия (GSE) среда, неформальное общение трудно воссоздать. Отсутствие такого рода коммуникации может привести к сюрпризам, что приведет к несогласованности и переделке.[4] По этой причине коммуникация в распределенной разработке программного обеспечения важна для любой компании, применяющей GSE. Эта область исследования, помимо прочего, пытается воссоздать неформальное общение в среде GSE, чтобы разрабатывать программное обеспечение без потери скорости разработки, характерной для этой среды.[5]
Вызовы
Коммуникации могут мешать несколько барьеров, таких как социокультурные, языковые, знания, географические и временные барьеры.[6]
Социокультурные барьеры могут проявляться как средство общения. Фактически, исследование показывает, что клиенты из США и Японии имеют разные предпочтения по отношению к ним. Клиенты из США предпочитают часто общаться по неформальному телефону и электронной почте, тогда как клиенты из Японии предпочитают устное общение и менее частое, но формальное использование электронных средств массовой информации.[7]
Лингвистические барьеры обычно проявляются, когда хотя бы один из участников разговора не говорит на его родном языке. Помимо того, что нужно уметь лучше выражать себя на родном языке, есть и другие препятствия. Идиомы и сленг примеры таких препятствий, которые трудно неформальное общение.
В соответствии с Кривая Аллена частота общения между инженерами падает с экспоненциальной скоростью по мере увеличения расстояния между ними. В случае коллег в компании общение часто инициируется случайными встречами между коллегами. Когда между последними существует значительное расстояние, их связь уменьшается. Фактически, было проведено эмпирическое исследование, в котором сравнивалась частота общения между коллегами из местных и удаленных мест. Большинство опрошенных ответили, что они разговаривают с большинством местных коллег не реже одного раза в день, а с удаленными - реже одного раза в неделю.[5]
Временные барьеры тесно связаны с географическими барьерами. Временные барьеры обычно присутствуют в сценарии, когда два или более сотрудника находятся в разных часовых поясах и часто в разных географических точках. Разработчики в основном общаются в рабочее время, и, хотя они могут использовать асинхронную связь, которая не требует дублирования рабочего времени, это по своей сути задерживает процесс связи.[8] В качестве альтернативы они могут использовать синхронную связь, если им нужно общаться в реальном времени, однако это усложняет поиск перекрывающихся рабочих часов. Следуй за Солнцем - это распространенный подход, используемый компаниями-разработчиками программного обеспечения для решения последней проблемы.
Исследование
Исследования в области коммуникации при разработке распределенного программного обеспечения проводятся с целью улучшения понимания последствий различных методов коммуникации для успеха процесса разработки и конечного продукта.
Коммуникация является важным процессом в координации проекта разработки программного обеспечения и обмена знаниями между членами команды. Предыдущие исследования[9][10] утверждают, что обмен знаниями важен для построения доверия и даже повышения производительности всей команды, что также применимо в процессе распределенной разработки программного обеспечения.
Это также может вызвать проблемы, о которых говорилось в предыдущем разделе, неправильное решение которых может задержать командный проект или даже стоить компании денег. Во многих исследованиях делается попытка найти способы смягчить эти проблемы и избежать недопонимания.[11]
Инструменты, используемые для общения, находятся в рамках некоторых исследований. Они показывают преимущества и недостатки некоторых различных типов инструментов, а также те инструменты, которые разработчики предпочитают использовать в определенных ситуациях.[12][13]
Интерес исследователей к тому, как глобально распределенная разработка влияет на успех проекта, отмечается в таких публикациях, как[11] где автор упоминает о необходимости дополнительных эмпирических исследований по этому вопросу. Другое исследование[14] попытался найти более прямую связь между часовыми поясами и языковыми барьерами без значительных результатов, что, как предполагает автор, могло быть связано с небольшим размером выборки. Однако было показано[5] что действительно существует взаимосвязь между распределенной разработкой и более длительным временем отклика между сотрудниками. Есть также исследования, которые соотносят частоту общения и географическое расстояние, например Кривая Аллена.
Проведенное до сих пор исследование указывает на необходимость улучшения методологий и инструментов, используемых компаниями, и что коммуникация является важным фактором успеха компании.[нужна цитата ]
Формы общения
Коммуникация в настройке сотрудничества может быть достигнуто либо синхронно, либо асинхронно, в зависимости от того, как агенты взаимодействуют друг с другом. Различные формы связи создают аналогичные системы связи и инструменты в зависимости от типа поддерживаемой связи, которые служат различным целям в условиях распределенной разработки. Даже внутри компании задачи и обязанности разных членов отражаются в их использовании в инструментах, используемых в рабочей среде.[15]
Синхронные системы
В синхронные системы, участники одновременно получают и отправляют информацию в «реальном времени», и за сообщением обычно следует ответ в течение короткого промежутка времени. Этот тип общения используется для общения, которое требует немедленного ответа, когда другой участник быстро доступен, или для более неформального общения в прямой обстановке. Его можно использовать на предприятии для быстрого ответа на вопросы, обсуждения идей, передачи важных событий, требующих внимания, или для любого другого важного сообщения.
Асинхронные системы
Асинхронные системы предоставить механизм для отправки и получения сообщений, при котором отправитель может отправлять информацию в любое время, а получатель будет получать ее и отвечать только тогда, когда он доступен. Эту форму общения можно использовать для обсуждения или передачи информации по менее важным вопросам, поскольку оперативный ответ не гарантируется. Это особенно полезно в распределенном процессе разработки, потому что в большинстве случаев разные команды, работающие над проектом, не делают это одновременно, а несрочные вопросы можно обсуждать асинхронно.
Гибридные системы
Существует также другой возможный подход, при котором система предоставляет обе формы связи в одной и той же среде, чтобы обеспечить большую гибкость в общении. Эти системы можно назвать гибридными системами, в которых обмен сообщениями обычно имеет характеристики асинхронных сообщений, но системы также разработаны для использования этих сообщений в качестве формы синхронной связи. Они представляют собой золотую середину между асинхронной и синхронной связью.
Инструменты
Коммуникационные инструменты для глобально распределенной разработки программного обеспечения могут быть различных типов, которые различаются в зависимости от используемой формы коммуникации, интерфейса, предоставляемого пользователю, среди прочего. Кроме того, разные категории могут использовать различную сенсорную информацию для улучшения коммуникации. Доступные инструменты включают мгновенное сообщение, электронное письмо, аудио и Видео-конференция, виртуальный офис и виртуальная реальность. В этом разделе представлен обзор различных типов инструментов и некоторые популярные примеры, которые используются в настоящее время, однако это не полный сбор и перечисление доступных инструментов. Более полные списки можно найти на других ресурсах.[16]
Асинхронные инструменты
Электронное письмо
Электронное письмо это метод обмена цифровыми сообщениями между людьми, использующими цифровые устройства, такие как компьютеры, мобильные телефоны и другую электронику. В отличие от большинства мгновенное сообщение инструменты, по электронной почте ни пользователи, ни их компьютеры не должны находиться в сети одновременно. Стоимость использования электронной почты в компании варьируется, поскольку, например, компания может иметь свой собственный почтовый сервер.
Эмпирические исследования показали, что все члены команды разработчиков программного обеспечения эффективно использовали этот инструмент. В отличие от мгновенное сообщение сообщения электронной почты предназначены для того, чтобы быть более автономными и менее чувствительными к контексту связи, поэтому для создания сообщений электронной почты требуется больше времени, чем для традиционных сообщений IM.[12]
Некоторые провайдеры электронной почты Gmail, Outlook.com и ProtonMail.
Синхронные инструменты
Аудио и видеоконференция
Аудио и Видео-конференция это технологии приема и передачи аудио -видео сигналы пользователей в разных местах для общения между людьми в режиме реального времени. Этот тип инструментов пытается воспроизвести разнообразное взаимодействие, присутствующее на личных встречах.[13] Богатые технологии синхронного общения, такие как видеоконференцсвязь, подходят для интерактивных дискуссий, в которых язык тела и интонация могут передать степень понимания или согласия между участниками.[17]
Видео-конференция также является хорошим способом завоевать доверие между глобальными разработчиками программного обеспечения, поскольку позволяет членам команды строить личные отношения.[18]
Исследователи выяснили, что члены команды, не уверенные в своих знаниях английского языка, предпочитают использовать электронное письмо или же мгновенное сообщение над аудио и видео-конференция, поскольку текстовые носители предоставляют больше времени для понимания и составления ответа.[19] Это становится проблемой, поскольку текстовые носители не используют ни слуховые, ни визуальные функции, что может затруднить процесс понимания важной информации и привести к недопониманию.
Увеличить, Идти на встречу и Дай пять являются примерами такого типа инструментов.
Виртуальные офисы
Виртуальные офисы воссоздают личную близость и функциональность физического офиса, необходимые командам в глобальной распределенной среде разработки программного обеспечения. Вместо «каналов» или «цепочек сообщений» виртуальные офисы имеют комнаты в виртуальном офисном пространстве.
Профессор Томас Дж. Аллен в конце 1970-х обнаружил, что увеличение расстояния между инженерами экспоненциально снижает частоту общения между ними.[20] Виртуальные офисы - это способ виртуально сократить это расстояние, чтобы улучшить связь между ними.
Кроме того, другие исследования[21] показать, что виртуальные офисы упрощают координацию работы и повышают производительность в команде.
Некоторые инструменты, которые принадлежат к этому подмножеству, - это Sococo, 8x8 и Skype для бизнеса.
Виртуальная реальность
Виртуальная реальность с годами вызывает повышенный интерес. Он вырос из отрасли с 129 миллионами доллар США в 2015 году до более 1 миллиарда доллар США к концу 2016 года. Предполагается, что отрасль достигнет 4,6 млрд доллар США к концу 2018 г.[22]
Контент, которым обмениваются во время акта коммуникации, - это просто интерпретация ситуаций, в которые вовлечены акторы. Последние, в свою очередь, зависят от контекста. Мотивация к использованию виртуальной реальности в качестве инструмента коммуникации основана на предпосылке, что восприятие контекста пропорционально доступной сенсорной информации.
В коммуникативной установке виртуальной реальности каждый из ее участников находится в сенсорном погружении. Это улучшает восприятие контекста, в котором находится актер, что, в свою очередь, улучшает сам опыт общения.
Несмотря на то, что концепция появилась не недавно, технология начала существенно развиваться только в 2010 году.
AltspaceVR является примером платформы виртуальной реальности, которая недавно использовалась в качестве инструмента коммуникации. [1]
Гибридные инструменты
Мгновенное сообщение
Мгновенное сообщение (IM) позволяет передавать сообщения между двумя или более сторонами в случае «чата». Он может быть синхронным или асинхронным и считается менее навязчивым типом связи.[23] Исследования показывают, что разработчики любят использовать этот тип инструментов, чтобы задавать быстрые вопросы своим коллегам или начальству.[12]
WhatsApp, Facebook Messenger и HipChat являются примерами этого типа инструментов.
Приложения в программных процессах
Гибкий
Смешивание Гибкая разработка программного обеспечения Распределенная разработка программного обеспечения создает множество проблем для командного взаимодействия.[24] С одной стороны, Гибкая разработка программного обеспечения требует увеличения неформального общения и не имеет формального общения, например документация.[25] С другой стороны, распределенная разработка программного обеспечения затрудняет инициирование коммуникации, может привести к недопониманию и увеличивает затраты на коммуникацию (время, деньги и т. Д.), Как объяснялось ранее. # Проблемы, что может привести к снижению частоты общения.[5][26] Это делает представленную область исследования чрезвычайно важной в Распределенная гибкая разработка программного обеспечения. Один из его основных принципов подчеркивает отношения между людьми и их взаимодействия, предполагающие постоянное общение.[27]
Экстремальное программирование
Экстремальное программирование (XP) был разработан для среды, в которой все разработчики были расположены вместе,[28] что не относится к распределенной разработке программного обеспечения. Более того, XP во многом зависит от непрерывного взаимодействия между заинтересованными сторонами и разработчиками, что делает общение одним из пяти основных ценностей XP.[29] Следовательно, коммуникация в распределенной среде имеет огромное значение для среды разработки XP.[30] и это следует учитывать при применении этой методологии в распределенной среде.
Рекомендации
- ^ а б Краут, Роберт Э .; Стритер, Линн А. (1995-03-01). «Координация разработки программного обеспечения». Коммуникации ACM. 38 (3): 69–81. Дои:10.1145/203330.203345.
- ^ Perry, D.E .; Staudenmayer, N.A .; Вотта, Л. Г. (июль 1994 г.). «Люди, организации и улучшение процессов». Программное обеспечение IEEE. 11 (4): 36–45. Дои:10.1109/52.300082. ISSN 0740-7459.
- ^ Робиллард, Пьер Н; Робиллард, Мартин П. (2000-09-15). «Виды совместной работы в программной инженерии». Журнал систем и программного обеспечения. 53 (3): 219–224. Дои:10.1016 / S0164-1212 (00) 00013-3.
- ^ а б c Herbsleb, J.D .; Моитра, Д. (март 2001 г.). «Глобальная разработка программного обеспечения». Программное обеспечение IEEE. 18 (2): 16–20. Дои:10.1109/52.914732. ISSN 0740-7459.
- ^ а б c d Herbsleb, J.D .; Моцкус, А. (июнь 2003 г.). «Эмпирическое исследование скорости и коммуникации в глобально распределенной разработке программного обеспечения». IEEE Transactions по разработке программного обеспечения. 29 (6): 481–494. CiteSeerX 10.1.1.110.4806. Дои:10.1109 / це.2003.1205177. ISSN 0098-5589.
- ^ Инженеры., Институт электротехники и электроники; Общ., IEEE Computer (2010). ICGSE 2010: Пятая международная конференция по глобальной разработке программного обеспечения: протоколы: 23-26 августа 2010 г., Принстон, Нью-Джерси, США. Компьютерное общество IEEE. ISBN 9780769541228. OCLC 709739809.
- ^ Кришна, С .; Сахай, Сандип; Уолшем, Джефф (апрель 2004 г.). «Управление межкультурными проблемами в глобальном аутсорсинге программного обеспечения». Commun. ACM. 47 (4): 62–66. Дои:10.1145/975817.975818. ISSN 0001-0782.
- ^ Шмите, Дарья (01.01.2006). «Глобальные проекты по разработке программного обеспечения в одной из крупнейших латвийских компаний: проблема географического распределения?». Программный процесс: улучшение и практика. 11 (1): 61–76. Дои:10.1002 / spip.252. ISSN 1099-1670.
- ^ Хендрикс, Пол (1999-06-01). «Зачем делиться знаниями? Влияние ИКТ на мотивацию обмена знаниями». Управление знаниями и процессами. 6 (2): 91–100. Дои:10.1002 / (SICI) 1099-1441 (199906) 6: 2 <91 :: AID-KPM54> 3.0.CO; 2-M.
- ^ Goodman, Paul S .; Дарр, Эрик Д. (1998). «Компьютерные системы и сообщества: механизмы организационного обучения в распределенных средах». MIS Quarterly. 22 (4): 417–440. Дои:10.2307/249550. JSTOR 249550.
- ^ а б Mockus, A .; Хербслеб, Дж. (2001). Проблемы глобальной разработки программного обеспечения. Материалы седьмого международного симпозиума по метрикам программного обеспечения. С. 182–184. Дои:10.1109 / METRIC.2001.915526. ISBN 978-0-7695-1043-9.
- ^ а б c Ниинимаки, Т. (август 2011 г.). Лицом к лицу, электронной почте и обмену мгновенными сообщениями в проекте распределенной гибкой разработки программного обеспечения. 2011 Шестая международная конференция IEEE по глобальному семинару по разработке программного обеспечения. С. 78–84. Дои:10.1109 / icgse-w.2011.15. ISBN 978-1-4577-1839-7.
- ^ а б Niinimaki, T .; Пири, А .; Лассениус, К. (июль 2009 г.). Факторы, влияющие на выбор аудио- и текстовых средств коммуникации в глобальных проектах разработки программного обеспечения. 2009 Четвертая международная конференция IEEE по глобальной разработке программного обеспечения. С. 153–162. Дои:10.1109 / icgse.2009.23. ISBN 978-0-7695-3710-8.
- ^ Ю, Лигуо; Рамасвами, Шрини; Мишра, Алок; Мишра, Дипти (2011-10-17). Коммуникации в глобальной разработке программного обеспечения: эмпирическое исследование с использованием репозитория GTK + OSS. На пути к полноценным интернет-системам: семинары по OTM 2011. Конспект лекций по информатике. 7046. С. 218–227. Дои:10.1007/978-3-642-25126-9_32. ISBN 978-3-642-25125-2.
- ^ Сундаравей, Т .; Mirchandani, D .; Ледерер, А. (январь 2015 г.). Использование технологий синхронной совместной работы в командной работе. 2015 48-я Гавайская международная конференция по системным наукам. С. 216–225. Дои:10.1109 / hicss.2015.35. ISBN 978-1-4799-7367-5.
- ^ "Запомните разрыв". drennings.github.io. Получено 2017-06-15.
- ^ Dafoulas, G.A .; Swigger, K .; Brazile, R .; Альпаслан, Ф. Н .; Cabrera, V. L .; Серце, Ф. К. (январь 2009 г.). Глобальные команды: футуристические модели совместной работы для современной индустрии разработки программного обеспечения. 2009 42-я Гавайская международная конференция по системным наукам. С. 1–10. Дои:10.1109 / hicss.2009.231. ISBN 978-0-7695-3450-3.
- ^ Bhat, J.M .; Gupta, M .; Мурти, С. Н. (сентябрь 2006 г.). «Преодоление требований инженерных задач: уроки оффшорного аутсорсинга». Программное обеспечение IEEE. 23 (5): 38–44. Дои:10.1109 / мс.2006.137. ISSN 0740-7459.
- ^ Нолл, Джон; Бичем, Сара; Ричардсон, Ита (сентябрь 2011 г.). «Глобальная разработка программного обеспечения и сотрудничество: препятствия и решения». ACM Inroads. 1 (3): 66–78. Дои:10.1145/1835428.1835445. HDL:10344/656. ISSN 2153-2184.
- ^ Аллен, Томас Дж. (1984). Управление потоком технологий: передача технологий и распространение технологической информации внутри научно-исследовательской организации. Кембридж, Массачусетс: MIT Press. ISBN 9780262510271.
- ^ ван Гамерен, Бен; ван Золинген, Рини; Даллемон, Кевин (2013). 2013 8-я Международная конференция по глобальной программной инженерии IEEE. С. 206–215. Дои:10.1109 / ICGSE.2013.34. ISBN 978-0-7695-5057-2.
- ^ «Отчет о текущем состоянии рынка VR» (PDF).
- ^ Тиссен, М. Рита; Пейдж, Жан М .; Bharathi, Madhavi C .; Остин, Тойя Л. (2007). Коммуникационные инструменты для распределенных команд разработки программного обеспечения. Материалы конференции ACM SIGMIS CPR 2007 года по исследованию компьютерного персонала: глобальная рабочая сила в области информационных технологий. SIGMIS CPR '07. Нью-Йорк, Нью-Йорк, США: ACM. С. 28–35. Дои:10.1145/1235000.1235007. ISBN 9781595936417.
- ^ Рамеш, Баласубраманиам; Цао, Лан; Мохан, Каннан; Сюй, Пэн (октябрь 2006 г.). «Может ли распределенная разработка программного обеспечения быть гибкой?». Commun. ACM. 49 (10): 41–46. CiteSeerX 10.1.1.477.201. Дои:10.1145/1164394.1164418. ISSN 0001-0782.
- ^ Highsmith, J .; Кокберн, А. (сентябрь 2001 г.). «Гибкая разработка программного обеспечения: бизнес инноваций». Компьютер. 34 (9): 120–127. Дои:10.1109/2.947100. ISSN 0018-9162.
- ^ Ebert, C .; Неве, П. Де (март 2001 г.). «Выживание в глобальной разработке программного обеспечения». Программное обеспечение IEEE. 18 (2): 62–69. Дои:10.1109/52.914748. ISSN 0740-7459.
- ^ Алистер., Кокберн (2007). Гибкая разработка программного обеспечения: совместная игра. Эддисон-Уэсли. ISBN 9780321482754. OCLC 70867033.
- ^ 1967 г. - Андерсон, Энн; Чет., Хендриксон (2001). Установлено экстремальное программирование. Эддисон-Уэсли. ISBN 978-0201708424. OCLC 44518151.CS1 maint: числовые имена: список авторов (связь)
- ^ Бек, Кент (2000). Объяснение экстремального программирования: примите изменения. Эддисон-Уэсли Профессионал. ISBN 9780201616415.
- ^ Обыватель, Лукас; Уильямс, Лори; Дамиан, Даниэла; Бурес, Хайнек (сентябрь 2006 г.). «Основные методы коммуникации для экстремального программирования в глобальной команде разработчиков программного обеспечения». Информационные и программные технологии. Раздел специального выпуска: Распределенная разработка программного обеспечения. 48 (9): 781–794. CiteSeerX 10.1.1.463.7225. Дои:10.1016 / j.infsof.2006.01.004.