Программирование пары означает дважды стоивший на разработчика. Действительно ли это стоит тех денег? [закрытый]

Просто сделайте это на всем Series, поскольку to_datetime может работать с аргументами, подобными массиву, и назначать непосредственно столбцу:

In [72]:
df['date'] = pd.to_datetime(df['date'])
df.info()


Int64Index: 5 entries, 0 to 4
Data columns (total 1 columns):
date    5 non-null datetime64[ns]
dtypes: datetime64[ns](1)
memory usage: 80.0 bytes

In [73]:
df

Out[73]:
                     date
index                    
0     2015-02-01 00:46:28
1     2015-02-01 00:59:56
2     2015-02-01 00:16:27
3     2015-02-01 00:33:45
4     2015-02-01 13:48:29

Если вы изменили свой цикл на это, work:

In [80]:
for i in df.index:
    df.loc[i,'date']=pd.to_datetime(df.loc[i, 'date'])
df

Out[80]:
                      date
index                     
0      2015-02-01 00:46:28
1      2015-02-01 00:59:56
2      2015-02-01 00:16:27
3      2015-02-01 00:33:45
4      2015-02-01 13:48:29

код стонет, потому что вы работаете с потенциально копией этой строки на df, а не с представлением, используя новые индексы , избегает этой двусмысленности

EDIT

Похоже, вы используете древнюю версию панд, следующее должно работать:

tt[1].apply(lambda x: x.hour)

40
задан skaffman 4 August 2009 в 12:13
поделиться

21 ответ

Как Вы знаете, что Ваши непарные программисты больше эффективны? Я иногда думаю, что единственное/парное сопоставимо со старой сказкой кролика и черепахи.

Соединение не дрейфует прочь в дни контрпродуктивной работы. Я понятия не имею о том, как часто я видел, что разработчики проводят недели, работая над материалом, который позже оказывается замененным чем-то намного более простым. Единственный программист "в зоне" часто делает глупые вещи. Просто слишком легко произвести слишком много код, когда то, что Вы хотите, является большим количеством перфорации с меньшим количеством кода.

И в потомстве, когда пыль обосновывается, Вы находите сотни, если не тысячи строк кода, которые, возможно, были не записаны , потому что кто-то не сделал , знают о библиотеке X или технике Y. Соединение улучшается эта проблема, но не удаляет ее. Это поощряет обоих человек и пару проводить больше исследования прежде, чем погрузиться в бессмысленную эйфорию кода.

мне жаль, что я не смог соединиться больше....

53
ответ дан MarkusQ 27 November 2019 в 01:01
поделиться

Предпосылка - то, что Ваша производительность более чем удваивается. Часть усиления понята сразу же (например, прежде чем в коде зарегистрируются), и часть понята далее на, когда существует меньше ошибок и отказов.

, Когда я учу студентов с опытом двух семестров, для большинства пар , их производительность более чем удваивается, потому что они задают друг другу вопросы, и они учатся и заканчивают быстрее. Но это не универсально верно; плохо подобранная пара может занять больше времени и сделать хуже, чем более квалифицированная половина.

3
ответ дан Norman Ramsey 27 November 2019 в 01:01
поделиться

Чем раньше ошибка/дефект найдена, тем более дешево это для фиксации, таким образом с помощью денег для найма большего количества быстродействующих людей по сравнению с другим разработчики, собирается стоить Вам большего количества времени/денег из-за сколько прохождений от DEV до QA.

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

, Если у Вас есть разработчики, которые могут соединить программу, это может быть больше тогда выгодно в конечном счете, когда Вы добавляете в большем количестве удобного в сопровождении кода, более низкие дефекты так меньше времени в QA, и самое главное если один из разработчиков поражен шиной, Вы не должны ожидать кого-то для подхождения к скорости на проекте прежде больше, работа может быть сделана на нем.

, Если Ваши разработчики не могут соединить программу, не вынуждают их в него, все, что Вы собираетесь сделать, напрасно тратят время и деньги.

6
ответ дан 3 revs, 3 users 80% 27 November 2019 в 01:01
поделиться

Парное программирование может быть удивительно эффективным, однако Вы не должны нанимать программистов в парах. Вы не можете вынудить разработчиков к парной программе. Это только работает, когда два разработчика нажимают и решают, что могут учиться друг от друга и создать что-то потрясающее вместе. Мой совет состоит в том, чтобы нанять в качестве многих самых умных разработчиков, можно найти и поместить их в установку, которая естественно предоставляет себя ободрительному парному программированию с частичной занятостью. Разработчики должны быть в состоянии кодировать один, но также и говорить с другими в команде об этом.

Нахождение правильного соединения, которое работает на Вас и Вашу компанию, будет большим количеством искусства, чем наука и конечно не что-то, что можно сделать путем слепого следования требованиям некоторой опубликованной методологии.

Тем не менее, чем больше ошибок Вы давите, прежде чем в них когда-либо зарегистрируются, тем больше Вы сохраняете в конечном счете. Наличие другого разработчика, наблюдающего, поскольку Вы проектируете что-то, всегда будет более эффективным, чем наличие черного ящика тестера это позже. Я назвал бы это деньгами хорошо потраченный.

6
ответ дан i_am_jorf 27 November 2019 в 01:01
поделиться

На работе мы используем пару, программирующую все время. Прием должен знать, какие задачи должны быть сделаны в паре и который был бы "пустой тратой времени", если сделано двумя разработчиками. Эмпирическое правило - то, что задачи, которые являются большим количеством ориентированного исследования (т.е. POCs & скачки), должен быть сделан в парах, а также разработке новых возможностей (так, чтобы знание существовало больше чем в одном уме). Задачи, которые являются большим количеством mundain, таким как установка сервера CI или замена дополнительных значков, сделаны единственным разработчиком. Другим фактором является текущая доступность членов команды и текущие задачи, которые будут сделаны при том повторении.

8
ответ дан rogerdpack 27 November 2019 в 01:01
поделиться

Это не означает дважды стоимость, если бы это берет меньше, чем 1/2 время, это взяло бы с одним dev. Я думаю на трудных или задачах низкого уровня, это было бы полезно. Я нахожу, что это стоит того, потому что у Вас есть кто-то для высказывания "нет, не делайте ЭТОГО!" задолго до того, как это заканчивается в производственном коде, где это будет ДЕЙСТВИТЕЛЬНО стоить Вам времени и денег.

я записал операционные системы и вещи той природы, где это было неоценимо, что кто-то сидел рядом со мной для проверения моей логики дважды.

12
ответ дан Joe Phillips 27 November 2019 в 01:01
поделиться

Нет, Вы не делаете. Каждый программист все еще получает точно одну зарплату.

Вы думаете, что Ваши программисты не будут говорить друг с другом, если Вы не назовете его "программированием пары"? Вы думаете, программируя, совершенно parallelizable?

7
ответ дан Anonymous Coward 27 November 2019 в 01:01
поделиться

С парным программированием Вы объединяетесь:

  • Более высокий качественный код
  • Лучшее распределение внутреннего знания
  • [еще 112] дух товарищества

Вы не получите так большой доход от инвестиций, легче, чем это.

С другой стороны, Вы не должны использовать его для всех задач.

12
ответ дан Toon Krijthe 27 November 2019 в 01:01
поделиться

Хотя я соглашаюсь с большей частью ответа до сих пор о программировании пары, являющемся хорошей вещью, я буду играть защитника дьявола и утверждать, что это не всегда имеет смысл.

, Когда Вы соединяетесь, Вы не получаете программиста, это получено дважды мозги. Вы получаете программиста, который это объединение из обоих из Ваших мозгов. Так в основном любое время, что я завинчиваю и мой партнер, ловит или находит некоторый путь лучше, это плюс. Однако любое время, когда я пишу правильный код самостоятельно, является пустой тратой денег, так как мой партнер не был необходим.

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

15
ответ дан rogerdpack 27 November 2019 в 01:01
поделиться

Мы используем этот подход в нашей компании, но только для трудных задач или когда Вы не уверены в чем-то, кто-то еще уже продолжил работать, который я верю работам очень хорошо. Это сохраняет Вас застревающий в колеи и способности возвратить идеи от людей в случае необходимости в то время как все еще способность работать независимо на самые простые задачи.

я также полагаю, что это более выгодно, чем обзор кода, который является чем-то еще, что мы делаем, где я работаю. Часто трудно знать полностью, что продолжается при выполнении обзора кода, не обеспечивая значительный контекст, в которой точке у Вас не всегда есть время для размышления обо всем in's и out's. Парное программирование дает Вам, что контекст от запуска и позволяет Вам проводить больше времени, думая о пограничных случаях, которые могут или не могут вызвать проблемы.

17
ответ дан Ian 27 November 2019 в 01:01
поделиться

Если Вы не очень крошечный магазин, Вы, вероятно, уже платите зарплаты двух программистов. Парное программирование является просто способом (теоретически) вытащить более отлаженное и рабочее программное обеспечение из тех двух за то же количество времени.

1
ответ дан T.E.D. 27 November 2019 в 01:01
поделиться

Опыт управления качеством от других многих отраслей промышленности учит нас, что дефектное предотвращение является более дешевым в конечном счете, чем дефектное обнаружение (также известный как QA) и последующая фиксация.

Они также узнали, что длительный период располагается в большинстве случаев с 1 до 2 лет, что означает, что Ваши инвестиции окупаются после этого. При полагании, что инвестиции в том масштабе, как обычно ожидают, достигнут повреждения даже после 4 лет, это довольно хорошо!

Проблема состоит в том, что другим отраслям промышленности потребовались несколько десятилетий для накопления достаточного количества данных для способности доказать что дело обстоит так для них. Можно легко найти, что данные поддерживают их заключение и делают вывод для программного обеспечения на аналогии с этим, но с сегодняшнего дня, нет никакого доказательства для бизнеса программного обеспечения.

Однако я полагаю, что аналогичное заключение действительно: пара разработчиков и одного тестера более продуктивна, чем один разработчик и два тестера.

Если у Вас есть проблемы при выравнивании по ширине двух дорогих разработчиков, сидящих перед одним компьютером к управлению, существует много других вещей, которые помогают с дефектным предотвращением, но не являются как видимые (и поэтому раздражающий) к управлению.

3
ответ дан Treb 27 November 2019 в 01:01
поделиться

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

0
ответ дан 27 November 2019 в 01:01
поделиться

Когда я программирую на лодке моего друга, у нас не всегда есть время, потому что один из нас плывет, а другой кодирует. Однако, когда мы находимся на якоре или в спокойной воде, мы можем выполнять парное программирование, и оно отлично работает.

3
ответ дан 27 November 2019 в 01:01
поделиться

Первое предположение, которое делается при парном программировании, состоит в том, что сюжетная карта будет стоить в два раза больше. много развиваться. Предположение неверно. И вот почему?

  • Улучшенное качество : Пара активных программистов, работающих на одной и той же карточке истории, выполнит карту с меньшим количеством дефектов
  • Улучшенная производительность : вероятность того, что пара будет замедлена, если не блокируется при решении проблемы. Более того, труднее взять отпуск по электронной почте или в Интернете, когда вы работаете с партнером ... вы не хотите подводить партнера. Работая в паре, вы решите проблему с более чистым дизайном и меньшим количеством строк кода.
  • Устраните накопления знаний : с помощью ротационных пар вы изучите прикладные и предметные знания бизнеса в команде. Команда с меньшей вероятностью будет заблокирована, потому что Сью находится в отпуске, и никто больше не знает ее код.
  • Передача знаний: Вращающиеся пары учат друг другу новые навыки (инженерия и область), когда они работают вместе. Уровень команды повысится для всех, и знания распространяются через команду.
  • Команда самостоятельно выбирает: Команда изучает навыки одного пыльника и быстро отсеет того, кто не выполняет.

Из реального опыта мы наблюдали значительное снижение дефектов. Новые члены команды могут быть добавлены без замедления команды (попробуйте это с непарной командой). Для испытания одна команда оценила работу над набором карточек-историй так, как если бы шесть разработчиков разработали код по отдельности. Шести разработчикам затем сказали пару. Они выполнили работу в срок с высоким качеством. Если вы не создаете пару, вы тратите много времени на доставку с низким качеством, у вас нет возможности масштабировать и у вас слишком много знаний.

Во втором примере, по нашим оценкам, работа будет завершена в Запрашиваемое время нам потребуется команда из 4 пар до 7 пар. Мы дали себе 1 месяц на борт новых пар. Мы соединяли нового разработчика с опытным разработчиком и чередовали пары по сюжетным картам. Команда поразила качество всех результатов в запланированные сроки. Без сопряжения нельзя было бы добавить 6 разработчиков в команду из 8 разработчиков и достичь цели!

В итоге вы сэкономите деньги при сопряжении. Вам понадобится примерно столько же времени, доставка с более высоким качеством, повышение производительности команды, навыков и знаний и отсеивание мертвого леса. Ваши сбережения будут идти с устойчивым темпом и значительно меньше дефектов в способе замедлить работу команды.

4
ответ дан 27 November 2019 в 01:01
поделиться

Это зависит от разработчиков. К сожалению, нельзя просто соединить двух разработчиков и ожидать своевременных, качественных результатов. Не всем нравится работать в парных программах или даже работать в среде гибкой разработки. Две вещи в парном программировании, которые, я думаю, стоят того: (1) Перекрестное обучение между разработчиками; и (2) рецензирование в режиме реального времени. Перекрестное обучение поможет укрепить навыки команды в целом, а рецензирование в режиме реального времени может устранить необходимость в официальных рецензиях. За эти годы я узнал больше от своих сверстников, чем когда-либо научился на технической подготовке.

2
ответ дан 27 November 2019 в 01:01
поделиться

Ни за что, мужик! В компании, в которой я работаю, мы практикуем много парного программирования! это делается очень быстро и эффективно! просто попробуйте! Вы оцените это позже!

2
ответ дан 27 November 2019 в 01:01
поделиться

Профессор Лори Уильямс из штата Северная Каролина является главным научным руководителем в области эффективности парного программирования, она провела целый ряд исследований по этому вопросу.

Если вам нужно «официальное слово» Посетите ее список публикаций .

Ее статья: «Укрепление аргументов в пользу парного программирования» чрезвычайно известна.

2
ответ дан 27 November 2019 в 01:01
поделиться

Трудно сказать - я провел много времени, работая в среде с принудительным сопряжением, а также в среде с возможностью сопряжения. Код самого высокого качества, который я видел, это , а не в парной среде. Это, вероятно, больше связано с калибром и дисциплиной отдельных разработчиков. Иногда вы получаете ценность своих денег от объединения, особенно когда некоторые кодеры не являются топ-уровнями. Но если все кодеры - опытные, хорошо дисциплинированные кодеры, вы просто напрасно тратите свои деньги, если они спаривают все время.

Один тип опыта, который у меня был несколько раз, имеет огромное влияние на мою дисциплину кодирования и качество продукции, которую я производю это: носить пейджер. Когда мне приходится поддерживать систему, для которой я пишу код, это меняет то, как я кодирую. То есть я кодирую таким образом, чтобы не допустить, чтобы этот пейджер сработал. В результате получается продукт лучшего качества и, как правило, лучшее качество кода. Кодеры, которых я видел, никогда не несущие пейджер, создают код, более хрупкий. Это не то, что они могут даже понять и улучшить, пока не получат поддержку.

7
ответ дан 27 November 2019 в 01:01
поделиться

Это не черно-белая вещь или серебряная пуля, концепция парного программирования.

Парное программирование, как правило, чрезвычайно эффективно по разным причинам, но сделано правильно ». Это также очень утомительно (на мой взгляд, в любом случае) - это означает, что хорошая пара может создать пару программ максимум несколько часов в день. Конечно, это следует поощрять, но не предписывать и, в особенности, не предписывать на 100% времени, потому что это кажется трудным для управления (с устойчивой эффективностью и без пива в любом случае).

Таким образом, парное программирование - это только один из способов решения проблемы. и мне трудно смотреть на это с точки зрения вопроса. Вам не нужно нанимать вдвое больше разработчиков для этого. Это все равно, что задаться вопросом, стоит ли нанимать мальчика / девочку для сообщения, чтобы два сотрудника в одном отделе разговаривали друг с другом ... когда очевидное решение состоит в том, чтобы они общались друг с другом напрямую без дополнительного посланника.

но не обязательный и особенно не обязательный в 100% времени, потому что это кажется трудным для управления (с устойчивой эффективностью и без пива в любом случае).

Таким образом, парное программирование - только один из способов решения проблемы, и мне трудно смотреть на это с точки зрения вопроса. Вам не нужно нанимать вдвое больше разработчиков для этого. Это все равно, что задаться вопросом, стоит ли нанимать мальчика / девочку для сообщения, чтобы два сотрудника в одном отделе разговаривали друг с другом ... когда очевидное решение состоит в том, чтобы они общались друг с другом напрямую без дополнительного посланника.

но не обязательный и особенно не обязательный в 100% времени, потому что это кажется трудным для управления (с устойчивой эффективностью и без пива в любом случае).

Таким образом, парное программирование - только один из способов решения проблемы, и мне трудно смотреть на это с точки зрения вопроса. Вам не нужно нанимать вдвое больше разработчиков для этого. Это все равно, что задаться вопросом, стоит ли нанимать мальчика / девочку для сообщения, чтобы два сотрудника в одном отделе разговаривали друг с другом ... когда очевидное решение состоит в том, чтобы они общались друг с другом напрямую без дополнительного посланника.

Не то чтобы вам нужно было нанять вдвое больше разработчиков для этого. Это все равно, что задаться вопросом, стоит ли нанимать мальчика / девочку для сообщения, чтобы два сотрудника в одном отделе разговаривали друг с другом ... когда очевидное решение состоит в том, чтобы они общались друг с другом напрямую без дополнительного посланника.

Не то чтобы вам нужно было нанять вдвое больше разработчиков для этого. Это все равно, что задаться вопросом, стоит ли нанимать мальчика / девочку для сообщения, чтобы два сотрудника в одном отделе разговаривали друг с другом ... когда очевидное решение состоит в том, чтобы они общались друг с другом напрямую без дополнительного посланника.

1
ответ дан 27 November 2019 в 01:01
поделиться

Парное программирование не удваивает затраты - оно просто вдвое сокращает объем набора текста. Печатание - это не программирование. Завершение функциональности программного обеспечения - программирование. Это решение проблем. Вы не можете просто измерить это строками набранного кода. Некоторые программисты будут использовать более совершенный алгоритм, чтобы в конечном итоге набирать меньше.

Как бы вы определили соотношение цены и качества? Возможно общее время, прошедшее между началом кодирования и завершением работы функции в реальном времени?

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

Было предпринято несколько попыток измерить производительность при согласовании, но, к сожалению, это немного связано с «количеством доставленных строк кода», что является фиктивной метрикой.

Вы можете найти это исследование уместным: http://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF

4
ответ дан 27 November 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: