Как правильно вести offshore software development?

Плюшка
Уже с Приветом
Posts: 2752
Joined: 27 Mar 2005 16:26
Location: CCCР

Как правильно вести offshore software development?

Post by Плюшка »

Интересуют где бы почитать в Инете документы, рекомендации, полезные советы не слишком общего характера.

Ситуация: некая фирма дает часть разработки своего корпоративного ПО в индийский офшор. Сотруднику фирмы здесь надо будет контролировать и направлять процесс и потом принимать результаты и расхлебывать последствия. Ожидаю интервью на работу в качестве такого сотрудника и хотелось бы знать не упустил ли я чего в понимании данного процесса.

Пока пришло в голову: четкие подробные спецификации, жесткий контроль графика разработки, регулярные и продуктивные коммуникации с разработчиками, тестирование (как разработчиком с предоставлением заказчику test cases так и на самой фирме-заказчике), пристойное документирование, соблюдение правил (стандартов) написания кода и максимальная детализация исполнения (т.е. кодирования, блок схемы, типа, с указанием обьектов и методов ), инспекция кода.

Какой-то общий процесс и конкретные правила ведения такого офшоривания у данной фирмы есть ,но я их не знаю.

ТИА
User avatar
Sergunka
Уже с Приветом
Posts: 34124
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Как правильно вести offshore software development?

Post by Sergunka »

Чем меньше Вы знаете тем больше вероятность, что Вас возьмут. Вряд ли найдется человек кто в это дерьмо вляпается повторно... увы.
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Как правильно вести offshore software development?

Post by stenking »

Что реально работает, во всяком случае для меня:

1. Четкие подробные спецификаци. Т.е. я насобачился рисовать очень чёткие wireframes с абсолютно всеми подробностями и states + бонусы за любую найденную в моей wireframe ошибку и ещё большие бонусы за принятое дополнительное предложение/изменение функционала.

2. Ежедневная проверка кода - обычно видно кто что делал ( вопрос доверия это конечно проблема всегда ) ну и видно если кого-то заносит не туда. Т.е. я прошу делать коммиты каждый день и
реально смотрю на код, иногда прошу что-то поменять и т.д.
Бога нет.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Как правильно вести offshore software development?

Post by Интеррапт »

stenking wrote:Т.е. я прошу делать коммиты каждый день и
реально смотрю на код, иногда прошу что-то поменять и т.д.
Интересный подход. А если код сложный и не готов к тому, чтобы быть коммитнутным. В очень многих случаях от такого premature коммита будет больше вреда, чем пользы.
User avatar
rzen
Уже с Приветом
Posts: 24375
Joined: 18 Nov 2003 16:42

Re: Как правильно вести offshore software development?

Post by rzen »

подтверждаю стенкинга, при всех его минусах, от каждодневного коммита в среднем получается намного больше пользы чем вреда в режиме аутсорса.
Don't code today what you can't debug tomorrow.
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Как правильно вести offshore software development?

Post by stenking »

Интеррапт wrote:
stenking wrote:Т.е. я прошу делать коммиты каждый день и
реально смотрю на код, иногда прошу что-то поменять и т.д.
Интересный подход. А если код сложный и не готов к тому, чтобы быть коммитнутным. В очень многих случаях от такого premature коммита будет больше вреда, чем пользы.

Ну напишут мне емаил, что код сложный, коммит ещё не готов, всем спокойной ночи а на след. день будет видно что там сложного было :)
Бога нет.
User avatar
fruit6
Уже с Приветом
Posts: 4205
Joined: 10 Jan 2004 01:22
Location: n-sk -> MD -> VA

Re: Как правильно вести offshore software development?

Post by fruit6 »

stenking wrote:Что реально работает, во всяком случае для меня:

1. Четкие подробные спецификаци. Т.е. я насобачился рисовать очень чёткие wireframes с абсолютно всеми подробностями и states + бонусы за любую найденную в моей wireframe ошибку и ещё большие бонусы за принятое дополнительное предложение/изменение функционала.

2. Ежедневная проверка кода - обычно видно кто что делал ( вопрос доверия это конечно проблема всегда ) ну и видно если кого-то заносит не туда. Т.е. я прошу делать коммиты каждый день и
реально смотрю на код, иногда прошу что-то поменять и т.д.
сколько вы тратите в день времени на проверку коммитов, если не секрет?
User avatar
Komissar
Уже с Приветом
Posts: 64661
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Как правильно вести offshore software development?

Post by Komissar »

Я за конкретные спеки и детальные Test-cases. Если моим местным ребятам приходилось выверять все коммиты, то нафиг такой аутсорс? Я использую местных для early prototyping, technology assessment, research tasks. А оффшор - для четко поставленных исполнительных задач, с четко определенными acceptance criteria.
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Как правильно вести offshore software development?

Post by stenking »

fruit6 wrote:
stenking wrote:Что реально работает, во всяком случае для меня:

1. Четкие подробные спецификаци. Т.е. я насобачился рисовать очень чёткие wireframes с абсолютно всеми подробностями и states + бонусы за любую найденную в моей wireframe ошибку и ещё большие бонусы за принятое дополнительное предложение/изменение функционала.

2. Ежедневная проверка кода - обычно видно кто что делал ( вопрос доверия это конечно проблема всегда ) ну и видно если кого-то заносит не туда. Т.е. я прошу делать коммиты каждый день и
реально смотрю на код, иногда прошу что-то поменять и т.д.
сколько вы тратите в день времени на проверку коммитов, если не секрет?
Минут 5-10 на девелопера.
Бога нет.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Как правильно вести offshore software development?

Post by Интеррапт »

Komissar wrote:Я за конкретные спеки и детальные Test-cases. Если моим местным ребятам приходилось выверять все коммиты, то нафиг такой аутсорс? Я использую местных для early prototyping, technology assessment, research tasks. А оффшор - для четко поставленных исполнительных задач, с четко определенными acceptance criteria.
+1, с одним исключением. До того, как люди себя зарекомендовали, делать code review для коммитов - довольно неплохая идея. Уже позже, когда видишь, что люди нормально работают и косяков не порят, то можно от такой практики надзора потихоньку отказываться.
Palych
Уже с Приветом
Posts: 13670
Joined: 16 Jan 2001 10:01

Re: Как правильно вести offshore software development?

Post by Palych »

stenking wrote:
fruit6 wrote:сколько вы тратите в день времени на проверку коммитов, если не секрет?
Минут 5-10 на девелопера.
+1
Если знать что приложение делает, как устроено и куда движется - проверка не займёт много времени.
Если этого не знать - контролировать работу не получится.
Для меня, как девелопера, самый большой челендж - научится определять код, который идиотский по сути, но не наносит существенного вреда для приложения. Без этого навыка получится "Если хочешь чтобы было сделано хорошо - сделай это сам". Фраза хлёсткая и красивая, но не всегда верная.
User avatar
Sergunka
Уже с Приветом
Posts: 34124
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Как правильно вести offshore software development?

Post by Sergunka »

Интеррапт wrote:
Komissar wrote:Я за конкретные спеки и детальные Test-cases. Если моим местным ребятам приходилось выверять все коммиты, то нафиг такой аутсорс? Я использую местных для early prototyping, technology assessment, research tasks. А оффшор - для четко поставленных исполнительных задач, с четко определенными acceptance criteria.
+1, с одним исключением. До того, как люди себя зарекомендовали, делать code review для коммитов - довольно неплохая идея. Уже позже, когда видишь, что люди нормально работают и косяков не порят, то можно от такой практики надзора потихоньку отказываться.
Сейчас еще очень полезная вещь как Bamboo появилась которая на каждый коммит делает юнит тест всего приложения + функциональный тест. Если юнит тест написаны нормально то обычно лажа выскакивает автоматически.
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Как правильно вести offshore software development?

Post by Интеррапт »

Ага, Bamboo используем уже несколько лет (так же как и два других продукта от Atlassian: JIRA, Confluence).
Palych
Уже с Приветом
Posts: 13670
Joined: 16 Jan 2001 10:01

Re: Как правильно вести offshore software development?

Post by Palych »

А можно мне вклиниться с техническим вопросом? Спасибо.
Придумали ли какой-нибудь технический способ отдавливать глюки связанные с неправильным scope and multuthreading?
Например - кто-то для удобства решил сохранять значение, изменяющееся с каждым запросом в static field.
Unit tests обычно однопоточные... Может какие-нибудь мудрейшие code analyzerы помогут?
User avatar
katit
Уже с Приветом
Posts: 23749
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: Как правильно вести offshore software development?

Post by katit »

Надо не использовать static fields а использовать dependency injection. Тогда и тестировать легко
Лучше водки — хуже нет! ©
Palych
Уже с Приветом
Posts: 13670
Joined: 16 Jan 2001 10:01

Re: Как правильно вести offshore software development?

Post by Palych »

katit wrote:Надо не использовать static fields а использовать dependency injection. Тогда и тестировать легко
Вопрос не в том что надо, а в том как лучше отловить ситуацию когда в весь из себя dependency injected код кто-то впиндюривает статическое поле...
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Как правильно вести offshore software development?

Post by АццкоМото »

stenking wrote: Минут 5-10 на девелопера.
нда. немного в мире более бессмысленных вещей, чем такие "проверки". если только аутсорсинг чистого кодирования может побить по бессмысленности
Мат на форуме запрещен, блдж!
Palych
Уже с Приветом
Posts: 13670
Joined: 16 Jan 2001 10:01

Re: Как правильно вести offshore software development?

Post by Palych »

АццкоМото wrote:
stenking wrote: Минут 5-10 на девелопера.
нда. немного в мире более бессмысленных вещей, чем такие "проверки". если только аутсорсинг чистого кодирования может побить по бессмысленности
Я протестую! Д'Артаньян - это я! :ignor:
User avatar
stenking
Уже с Приветом
Posts: 14407
Joined: 26 May 2006 02:39

Re: Как правильно вести offshore software development?

Post by stenking »

АццкоМото wrote:
stenking wrote: Минут 5-10 на девелопера.
нда. немного в мире более бессмысленных вещей, чем такие "проверки". если только аутсорсинг чистого кодирования может побить по бессмысленности
Самое бессмысленное дело это рассуждать о бессмысленности действий других :)
Бога нет.
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Как правильно вести offshore software development?

Post by АццкоМото »

stenking wrote: Самое бессмысленное дело это рассуждать о бессмысленности действий других :)
только до тех пор, пока сам не научился действовать осмысленно :gen1:
Мат на форуме запрещен, блдж!
User avatar
katit
Уже с Приветом
Posts: 23749
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: Как правильно вести offshore software development?

Post by katit »

Palych wrote:
katit wrote:Надо не использовать static fields а использовать dependency injection. Тогда и тестировать легко
Вопрос не в том что надо, а в том как лучше отловить ситуацию когда в весь из себя dependency injected код кто-то впиндюривает статическое поле...
То что дебагить многопоточный код сложно это все знают. И тот-же Мицрософт советует его не писать (многопоточного кода)
А так набор Code Analysis, ReSharper и т.д. в принципе помагают порешить основные проблемы.
Лучше водки — хуже нет! ©
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: Как правильно вести offshore software development?

Post by Medium-rare »

Изините, что вмешиваюсь, не поясните ли:
1) Как именно Microsoft не советует писать многопоточный код, дав все инструменты для этого?
2) Необходимость динамического анализа для нахождения ошибок многопоточного кода понятна. Так и ищите "multithreaded errors dynamic analysis". Но зачем же столь явно такая ошибка со статическим полем создаётся? Ну решил кто-то закешить что-то в статической переменной, ну пишется/читается она из более чем одного потока, что ещё необходимо сделать? Неужто не проще сразу вставить critical section / mutex?
... and even then it's rare that you'll be going there...
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Как правильно вести offshore software development?

Post by АццкоМото »

Medium-rare wrote: 1) Как именно Microsoft не советует писать многопоточный код, дав все инструменты для этого?
дык конечно же майкрософт ничего подобного не советует :)
Мат на форуме запрещен, блдж!
User avatar
katit
Уже с Приветом
Posts: 23749
Joined: 05 Jul 2003 22:34
Location: Брест -> St. Louis, MO

Re: Как правильно вести offshore software development?

Post by katit »

Medium-rare wrote:Изините, что вмешиваюсь, не поясните ли:
1) Как именно Microsoft не советует писать многопоточный код, дав все инструменты для этого?
Я не найду конечно где я это читал. Не буду на это время тратить :D

Я говорю за .NET. Мысль была в том что можно конечно но в большинстве случаев не нужно. Инструменты они дают и дают их много чтобы гемор был не таким сильным. Сегодня это асинхронное программирование, Action<T>, delegates, TPL with Tasks. Завтра async/await. И все для того чтобы оленям было полегче писать и не надо было ручками threads плодить и за ними смотреть.
Лучше водки — хуже нет! ©
User avatar
major Major Major Major
Уже с Приветом
Posts: 1319
Joined: 10 Jan 2000 10:01
Location: Хьюстон

Re: Как правильно вести offshore software development?

Post by major Major Major Major »

Palych wrote:А можно мне вклиниться с техническим вопросом? Спасибо.
Придумали ли какой-нибудь технический способ отдавливать глюки связанные с неправильным scope and multuthreading?
Например - кто-то для удобства решил сохранять значение, изменяющееся с каждым запросом в static field.
Unit tests обычно однопоточные... Может какие-нибудь мудрейшие code analyzerы помогут?
Я для подобных случаев писал правила для FxCop. Универсально конечно не получалось но кое что отлавливать помогало.

Return to “Работа и Карьера в IT”