Как правильно вести offshore software development?
-
- Уже с Приветом
- Posts: 2752
- Joined: 27 Mar 2005 16:26
- Location: CCCР
Как правильно вести offshore software development?
Интересуют где бы почитать в Инете документы, рекомендации, полезные советы не слишком общего характера.
Ситуация: некая фирма дает часть разработки своего корпоративного ПО в индийский офшор. Сотруднику фирмы здесь надо будет контролировать и направлять процесс и потом принимать результаты и расхлебывать последствия. Ожидаю интервью на работу в качестве такого сотрудника и хотелось бы знать не упустил ли я чего в понимании данного процесса.
Пока пришло в голову: четкие подробные спецификации, жесткий контроль графика разработки, регулярные и продуктивные коммуникации с разработчиками, тестирование (как разработчиком с предоставлением заказчику test cases так и на самой фирме-заказчике), пристойное документирование, соблюдение правил (стандартов) написания кода и максимальная детализация исполнения (т.е. кодирования, блок схемы, типа, с указанием обьектов и методов ), инспекция кода.
Какой-то общий процесс и конкретные правила ведения такого офшоривания у данной фирмы есть ,но я их не знаю.
ТИА
Ситуация: некая фирма дает часть разработки своего корпоративного ПО в индийский офшор. Сотруднику фирмы здесь надо будет контролировать и направлять процесс и потом принимать результаты и расхлебывать последствия. Ожидаю интервью на работу в качестве такого сотрудника и хотелось бы знать не упустил ли я чего в понимании данного процесса.
Пока пришло в голову: четкие подробные спецификации, жесткий контроль графика разработки, регулярные и продуктивные коммуникации с разработчиками, тестирование (как разработчиком с предоставлением заказчику test cases так и на самой фирме-заказчике), пристойное документирование, соблюдение правил (стандартов) написания кода и максимальная детализация исполнения (т.е. кодирования, блок схемы, типа, с указанием обьектов и методов ), инспекция кода.
Какой-то общий процесс и конкретные правила ведения такого офшоривания у данной фирмы есть ,но я их не знаю.
ТИА
-
- Уже с Приветом
- Posts: 34124
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Как правильно вести offshore software development?
Чем меньше Вы знаете тем больше вероятность, что Вас возьмут. Вряд ли найдется человек кто в это дерьмо вляпается повторно... увы.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 14407
- Joined: 26 May 2006 02:39
Re: Как правильно вести offshore software development?
Что реально работает, во всяком случае для меня:
1. Четкие подробные спецификаци. Т.е. я насобачился рисовать очень чёткие wireframes с абсолютно всеми подробностями и states + бонусы за любую найденную в моей wireframe ошибку и ещё большие бонусы за принятое дополнительное предложение/изменение функционала.
2. Ежедневная проверка кода - обычно видно кто что делал ( вопрос доверия это конечно проблема всегда ) ну и видно если кого-то заносит не туда. Т.е. я прошу делать коммиты каждый день и
реально смотрю на код, иногда прошу что-то поменять и т.д.
1. Четкие подробные спецификаци. Т.е. я насобачился рисовать очень чёткие wireframes с абсолютно всеми подробностями и states + бонусы за любую найденную в моей wireframe ошибку и ещё большие бонусы за принятое дополнительное предложение/изменение функционала.
2. Ежедневная проверка кода - обычно видно кто что делал ( вопрос доверия это конечно проблема всегда ) ну и видно если кого-то заносит не туда. Т.е. я прошу делать коммиты каждый день и
реально смотрю на код, иногда прошу что-то поменять и т.д.
Бога нет.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Как правильно вести offshore software development?
Интересный подход. А если код сложный и не готов к тому, чтобы быть коммитнутным. В очень многих случаях от такого premature коммита будет больше вреда, чем пользы.stenking wrote:Т.е. я прошу делать коммиты каждый день и
реально смотрю на код, иногда прошу что-то поменять и т.д.
-
- Уже с Приветом
- Posts: 24375
- Joined: 18 Nov 2003 16:42
Re: Как правильно вести offshore software development?
подтверждаю стенкинга, при всех его минусах, от каждодневного коммита в среднем получается намного больше пользы чем вреда в режиме аутсорса.
Don't code today what you can't debug tomorrow.
-
- Уже с Приветом
- Posts: 14407
- Joined: 26 May 2006 02:39
Re: Как правильно вести offshore software development?
Интеррапт wrote:Интересный подход. А если код сложный и не готов к тому, чтобы быть коммитнутным. В очень многих случаях от такого premature коммита будет больше вреда, чем пользы.stenking wrote:Т.е. я прошу делать коммиты каждый день и
реально смотрю на код, иногда прошу что-то поменять и т.д.
Ну напишут мне емаил, что код сложный, коммит ещё не готов, всем спокойной ночи а на след. день будет видно что там сложного было
Бога нет.
-
- Уже с Приветом
- Posts: 4205
- Joined: 10 Jan 2004 01:22
- Location: n-sk -> MD -> VA
Re: Как правильно вести offshore software development?
сколько вы тратите в день времени на проверку коммитов, если не секрет?stenking wrote:Что реально работает, во всяком случае для меня:
1. Четкие подробные спецификаци. Т.е. я насобачился рисовать очень чёткие wireframes с абсолютно всеми подробностями и states + бонусы за любую найденную в моей wireframe ошибку и ещё большие бонусы за принятое дополнительное предложение/изменение функционала.
2. Ежедневная проверка кода - обычно видно кто что делал ( вопрос доверия это конечно проблема всегда ) ну и видно если кого-то заносит не туда. Т.е. я прошу делать коммиты каждый день и
реально смотрю на код, иногда прошу что-то поменять и т.д.
-
- Уже с Приветом
- Posts: 64661
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Как правильно вести offshore software development?
Я за конкретные спеки и детальные Test-cases. Если моим местным ребятам приходилось выверять все коммиты, то нафиг такой аутсорс? Я использую местных для early prototyping, technology assessment, research tasks. А оффшор - для четко поставленных исполнительных задач, с четко определенными acceptance criteria.
-
- Уже с Приветом
- Posts: 14407
- Joined: 26 May 2006 02:39
Re: Как правильно вести offshore software development?
Минут 5-10 на девелопера.fruit6 wrote:сколько вы тратите в день времени на проверку коммитов, если не секрет?stenking wrote:Что реально работает, во всяком случае для меня:
1. Четкие подробные спецификаци. Т.е. я насобачился рисовать очень чёткие wireframes с абсолютно всеми подробностями и states + бонусы за любую найденную в моей wireframe ошибку и ещё большие бонусы за принятое дополнительное предложение/изменение функционала.
2. Ежедневная проверка кода - обычно видно кто что делал ( вопрос доверия это конечно проблема всегда ) ну и видно если кого-то заносит не туда. Т.е. я прошу делать коммиты каждый день и
реально смотрю на код, иногда прошу что-то поменять и т.д.
Бога нет.
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Как правильно вести offshore software development?
+1, с одним исключением. До того, как люди себя зарекомендовали, делать code review для коммитов - довольно неплохая идея. Уже позже, когда видишь, что люди нормально работают и косяков не порят, то можно от такой практики надзора потихоньку отказываться.Komissar wrote:Я за конкретные спеки и детальные Test-cases. Если моим местным ребятам приходилось выверять все коммиты, то нафиг такой аутсорс? Я использую местных для early prototyping, technology assessment, research tasks. А оффшор - для четко поставленных исполнительных задач, с четко определенными acceptance criteria.
-
- Уже с Приветом
- Posts: 13670
- Joined: 16 Jan 2001 10:01
Re: Как правильно вести offshore software development?
+1stenking wrote:Минут 5-10 на девелопера.fruit6 wrote:сколько вы тратите в день времени на проверку коммитов, если не секрет?
Если знать что приложение делает, как устроено и куда движется - проверка не займёт много времени.
Если этого не знать - контролировать работу не получится.
Для меня, как девелопера, самый большой челендж - научится определять код, который идиотский по сути, но не наносит существенного вреда для приложения. Без этого навыка получится "Если хочешь чтобы было сделано хорошо - сделай это сам". Фраза хлёсткая и красивая, но не всегда верная.
-
- Уже с Приветом
- Posts: 34124
- Joined: 03 Dec 2000 10:01
- Location: Vladivostok->San Francisco->Los Angeles->San Francisco
Re: Как правильно вести offshore software development?
Сейчас еще очень полезная вещь как Bamboo появилась которая на каждый коммит делает юнит тест всего приложения + функциональный тест. Если юнит тест написаны нормально то обычно лажа выскакивает автоматически.Интеррапт wrote:+1, с одним исключением. До того, как люди себя зарекомендовали, делать code review для коммитов - довольно неплохая идея. Уже позже, когда видишь, что люди нормально работают и косяков не порят, то можно от такой практики надзора потихоньку отказываться.Komissar wrote:Я за конкретные спеки и детальные Test-cases. Если моим местным ребятам приходилось выверять все коммиты, то нафиг такой аутсорс? Я использую местных для early prototyping, technology assessment, research tasks. А оффшор - для четко поставленных исполнительных задач, с четко определенными acceptance criteria.
"A patriot must always be ready to defend his country against his government." Edward Abbey
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Как правильно вести offshore software development?
Ага, Bamboo используем уже несколько лет (так же как и два других продукта от Atlassian: JIRA, Confluence).Sergunka wrote: Сейчас еще очень полезная вещь как Bamboo появилась которая на каждый коммит делает юнит тест всего приложения + функциональный тест. Если юнит тест написаны нормально то обычно лажа выскакивает автоматически.
-
- Уже с Приветом
- Posts: 13670
- Joined: 16 Jan 2001 10:01
Re: Как правильно вести offshore software development?
А можно мне вклиниться с техническим вопросом? Спасибо.
Придумали ли какой-нибудь технический способ отдавливать глюки связанные с неправильным scope and multuthreading?
Например - кто-то для удобства решил сохранять значение, изменяющееся с каждым запросом в static field.
Unit tests обычно однопоточные... Может какие-нибудь мудрейшие code analyzerы помогут?
Придумали ли какой-нибудь технический способ отдавливать глюки связанные с неправильным scope and multuthreading?
Например - кто-то для удобства решил сохранять значение, изменяющееся с каждым запросом в static field.
Unit tests обычно однопоточные... Может какие-нибудь мудрейшие code analyzerы помогут?
-
- Уже с Приветом
- Posts: 23749
- Joined: 05 Jul 2003 22:34
- Location: Брест -> St. Louis, MO
Re: Как правильно вести offshore software development?
Надо не использовать static fields а использовать dependency injection. Тогда и тестировать легко
Лучше водки — хуже нет! ©
-
- Уже с Приветом
- Posts: 13670
- Joined: 16 Jan 2001 10:01
Re: Как правильно вести offshore software development?
Вопрос не в том что надо, а в том как лучше отловить ситуацию когда в весь из себя dependency injected код кто-то впиндюривает статическое поле...katit wrote:Надо не использовать static fields а использовать dependency injection. Тогда и тестировать легко
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Как правильно вести offshore software development?
нда. немного в мире более бессмысленных вещей, чем такие "проверки". если только аутсорсинг чистого кодирования может побить по бессмысленностиstenking wrote: Минут 5-10 на девелопера.
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 13670
- Joined: 16 Jan 2001 10:01
Re: Как правильно вести offshore software development?
Я протестую! Д'Артаньян - это я!АццкоМото wrote:нда. немного в мире более бессмысленных вещей, чем такие "проверки". если только аутсорсинг чистого кодирования может побить по бессмысленностиstenking wrote: Минут 5-10 на девелопера.
-
- Уже с Приветом
- Posts: 14407
- Joined: 26 May 2006 02:39
Re: Как правильно вести offshore software development?
Самое бессмысленное дело это рассуждать о бессмысленности действий другихАццкоМото wrote:нда. немного в мире более бессмысленных вещей, чем такие "проверки". если только аутсорсинг чистого кодирования может побить по бессмысленностиstenking wrote: Минут 5-10 на девелопера.
Бога нет.
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Как правильно вести offshore software development?
только до тех пор, пока сам не научился действовать осмысленноstenking wrote: Самое бессмысленное дело это рассуждать о бессмысленности действий других
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 23749
- Joined: 05 Jul 2003 22:34
- Location: Брест -> St. Louis, MO
Re: Как правильно вести offshore software development?
То что дебагить многопоточный код сложно это все знают. И тот-же Мицрософт советует его не писать (многопоточного кода)Palych wrote:Вопрос не в том что надо, а в том как лучше отловить ситуацию когда в весь из себя dependency injected код кто-то впиндюривает статическое поле...katit wrote:Надо не использовать static fields а использовать dependency injection. Тогда и тестировать легко
А так набор Code Analysis, ReSharper и т.д. в принципе помагают порешить основные проблемы.
Лучше водки — хуже нет! ©
-
- Уже с Приветом
- Posts: 9194
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Как правильно вести offshore software development?
Изините, что вмешиваюсь, не поясните ли:
1) Как именно Microsoft не советует писать многопоточный код, дав все инструменты для этого?
2) Необходимость динамического анализа для нахождения ошибок многопоточного кода понятна. Так и ищите "multithreaded errors dynamic analysis". Но зачем же столь явно такая ошибка со статическим полем создаётся? Ну решил кто-то закешить что-то в статической переменной, ну пишется/читается она из более чем одного потока, что ещё необходимо сделать? Неужто не проще сразу вставить critical section / mutex?
1) Как именно Microsoft не советует писать многопоточный код, дав все инструменты для этого?
2) Необходимость динамического анализа для нахождения ошибок многопоточного кода понятна. Так и ищите "multithreaded errors dynamic analysis". Но зачем же столь явно такая ошибка со статическим полем создаётся? Ну решил кто-то закешить что-то в статической переменной, ну пишется/читается она из более чем одного потока, что ещё необходимо сделать? Неужто не проще сразу вставить critical section / mutex?
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 15242
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Как правильно вести offshore software development?
дык конечно же майкрософт ничего подобного не советуетMedium-rare wrote: 1) Как именно Microsoft не советует писать многопоточный код, дав все инструменты для этого?
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 23749
- Joined: 05 Jul 2003 22:34
- Location: Брест -> St. Louis, MO
Re: Как правильно вести offshore software development?
Я не найду конечно где я это читал. Не буду на это время тратитьMedium-rare wrote:Изините, что вмешиваюсь, не поясните ли:
1) Как именно Microsoft не советует писать многопоточный код, дав все инструменты для этого?
Я говорю за .NET. Мысль была в том что можно конечно но в большинстве случаев не нужно. Инструменты они дают и дают их много чтобы гемор был не таким сильным. Сегодня это асинхронное программирование, Action<T>, delegates, TPL with Tasks. Завтра async/await. И все для того чтобы оленям было полегче писать и не надо было ручками threads плодить и за ними смотреть.
Лучше водки — хуже нет! ©
-
- Уже с Приветом
- Posts: 1319
- Joined: 10 Jan 2000 10:01
- Location: Хьюстон
Re: Как правильно вести offshore software development?
Я для подобных случаев писал правила для FxCop. Универсально конечно не получалось но кое что отлавливать помогало.Palych wrote:А можно мне вклиниться с техническим вопросом? Спасибо.
Придумали ли какой-нибудь технический способ отдавливать глюки связанные с неправильным scope and multuthreading?
Например - кто-то для удобства решил сохранять значение, изменяющееся с каждым запросом в static field.
Unit tests обычно однопоточные... Может какие-нибудь мудрейшие code analyzerы помогут?