Мне нужен этот ребенок за месяц - отправляют мне девять женщин!

Я столкнулся с подобной проблемой. Мой проект в контексте - это динамический веб-проект (Java 8 + Tomcat 8), и ошибка для исключения драйвера PostgreSQL: Не найдено подходящего драйвера

. Он был разрешен путем добавления Class.forName("org.postgresql.Driver") до вызов метода getConnection()

Вот мой пример кода:

try {
            Connection conn = null;
            Class.forName("org.postgresql.Driver");
            conn = DriverManager.getConnection("jdbc:postgresql://" + host + ":" + port + "/?preferQueryMode="
                    + sql_auth,sql_user , sql_password);
        } catch (Exception e) {
            System.out.println("Failed to create JDBC db connection " + e.toString() + e.getMessage());
        }
185
задан 3 revs, 3 users 100% 21 October 2009 в 04:29
поделиться

15 ответов

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

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

существует много вещей, что я думаю, необходимы , но не достаточные, для этого для появления (без определенного порядка):

  • предложенные люди, которые будут добавлены к проекту, должны иметь:
    • , По крайней мере, разумное понимание проблемной области проекта
    • Быть опытным на языке проекта и определенных технологий, которые они использовали бы для задач, которые им дадут
    • , Их мастерство должно/not/быть намного меньше или намного больше, чем самый слабый или самый сильный существующий участник соответственно. Слабые участники истощат Ваш существующий штат с третичными проблемами, в то время как новый человек, который слишком силен, разрушит команду с тем, как все они сделали и делают, является неправильным.
    • Имеют хорошие коммуникативные навыки
    • быть высоко мотивированным (например, быть в состоянии работать независимо, не подталкивая)
  • , существующие члены команды должны иметь:
    • Отличные коммуникативные навыки
    • Превосходные навыки тайм-менеджмента
  • руководитель проекта / управление должен иметь:
    • Хорошие способности к установлению приоритетов и распределению ресурсов
    • высокий уровень А уважения от существующих членов команды
    • Отличные коммуникативные навыки
  • проект должен иметь:
    • А хорошая, завершенная, и зарегистрированная спецификация
    • разработки программного обеспечения Хорошая документация вещей уже реализовала
    • модульная конструкция А, чтобы позволить ясным блокам ответственности быть вырезанными
    • Достаточные автоматизированные процессы для гарантии качества для необходимого количества дефектов, Они могли бы включать такие вещи как: модульные тесты, регрессионные тесты, автоматизированное развертывание сборки, и т.д.)
    • система слежения ошибки/функции А, которая является в настоящее время оперативной и используемой командой (например, trac, SourceForge, FogBugz, и т.д.).

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

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

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

  • Были поздними перед запуском (больше материала, чем время), и/или
  • подсунул 1 час, 1 день во время.

Hope, которая помогает!

87
ответ дан 2 revs, 2 users 99% 23 November 2019 в 05:55
поделиться

То, где команда уже привыкла к парному программированию, затем добавляя другого разработчика , кто уже квалифицирован в соединении , не может замедлить проект, особенно если разработка является продолжением стиля TDD.

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

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

1
ответ дан Bill Michell 23 November 2019 в 05:55
поделиться

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

  1. , Насколько хороший ресурс при собирании его. Лучшие разработчики могут идти на новый сайт и быть продуктивными ошибками фиксации почти немедленно с небольшой помощью. Этот навык редок, но может быть освоен.
  2. segregability задач. Они должны быть в состоянии работать над объектами и функциями, не спотыкаясь за существующих разработчиков и замедляя их.
  3. сложность проекта и доступной документации. Если это - приложение ASP.NET лучшей практики ванили и общие хорошо зарегистрированные бизнес-сценарии тогда, хороший разработчик может просто застрять в немедленно. Эти больше фактора, чем кто-либо определят, сколько времени существующие ресурсы должны будут вложить капитал в обучение и поэтому начальное негативное воздействие новых ресурсов.
  4. оставленное количество времени. Это часто неверно оценивается также. Часто логика будет, мы только имеем x недели в запасе, и потребуются x+1 недели для получения кого-то до скорости. В действительности проект собирается уменьшиться и действительно на самом деле имеет 2x, недели dev, оставленного пойти и надевающий больше ресурсов как можно скорее, помогут.
1
ответ дан JackCorn 23 November 2019 в 05:55
поделиться

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

2
ответ дан 2 revs 23 November 2019 в 05:55
поделиться

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

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

, Конечно, это предполагает найм способных, инициативных разработчиков которые в состоянии наследовать крупные проекты и учиться независимо.:-)

2
ответ дан Matthew Cole 23 November 2019 в 05:55
поделиться
  • Автономные модули, которые должны все же быть запущены
  • Недостающие средства разработки, которые они могут интегрировать (как автоматизированный менеджер по сборке)

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

2
ответ дан Tom Ritter 23 November 2019 в 05:55
поделиться

Я предполагаю, что добавляющие люди к концу работы могли ускорить вещи если:

  1. работа может быть сделана параллельно.

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

РЕДАКТИРОВАНИЕ: Я забыл упоминать, такого рода вещи не происходит слишком часто. Обычно это - довольно прямой материал, как администраторские экраны, которые делают простой CRUD к таблице. В эти дни эти типы инструментов могут быть главным образом автоматически сгенерированы так или иначе.

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

3
ответ дан 2 revs 23 November 2019 в 05:55
поделиться

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

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

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

3) другие члены команды очень терпеливы.

3
ответ дан screenglow 23 November 2019 в 05:55
поделиться

Только, когда у Вас есть на той поздней стадии некоторый независимый политик (почти 0%-е взаимодействие с другими частями проекта) задачи, которыми кто-либо не занимается все же, и можно навлечь команду кто-то, который является специалистом в том домене. Добавление члена команды должно минимизировать разрушение для остальной части команды.

4
ответ дан Daniel 23 November 2019 в 05:55
поделиться
  • , Если новые люди фокусируются на тестировании
  • , Если можно изолировать независимые функции, которые не создают новые зависимости
  • , Если можно ортогонализировать некоторые аспекты проекта (особенно некодирование задач, таких как визуальное проектирование / расположение, база данных, tuning/indexing, или установка/конфигурация сети сервера) так, чтобы один человек мог работать надо что, в то время как другие продолжают с кодом приложения
  • , Если люди знают друг друга, и технологию, и бизнес-требования и дизайн, достаточно хорошо чтобы быть в состоянии сделать вещи со знанием того, когда они ступят на пальцы ног друг друга и как постараться не делать так (это, конечно, довольно трудно расположить, если это уже не имеет место)
5
ответ дан Leigh Caldwell 23 November 2019 в 05:55
поделиться

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

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

В основном Мифические ссылки Месяца Человека корректны, кроме изобретенных случаев как тот, который я составил. Г-н Brooks провел серьезное исследование, чтобы продемонстрировать, что после определенного момента, сети и затраты на коммуникацию добавления новых программистов к проекту перевесят любую выгоду, которую Вы получаете от их производительности.

10
ответ дан 3 revs 23 November 2019 в 05:55
поделиться

Согласно Мифическому Месяцу Человека, главная причина люди добавления к последнему проекту делают, это позже - O (n^2) коммуникация наверху.

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

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

11
ответ дан apenwarr 23 November 2019 в 05:55
поделиться

Возможно, если следующие условия применяются:

  1. новые программисты уже понимают проект и не требуются никакое время наращивания.
  2. новые программисты уже являются опытными со средой разработки.
  3. Никакое adminstrative время не необходимо, чтобы добавить разработчиков к команде.
  4. Почти никакая коммуникация не требуется между членами команды.

я сообщу в первый раз, когда я вижу все их сразу.

17
ответ дан Lost in Alabama 23 November 2019 в 05:55
поделиться

Только помогает, есть ли у Вас управляемый ресурсом проект.

, Например, рассмотрите это:

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

Однако, если Ваш проект состоит в том, чтобы наполнить конверты готово распечатанными буквами (как Вы, ВОЗМОЖНО, победили! ) тогда, чем больше людей Вы добавляете, тем быстрее это идет. Существуют немного служебные в скупо выдавании стопок работы, таким образом, Вы не можете извлечь пользу до точки, где у Вас есть один PR человека. конверт, но можно извлечь пользу из намного больше, чем всего 2 или 3 человека.

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

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

29
ответ дан angry person 23 November 2019 в 05:55
поделиться

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

4
ответ дан JXG 23 November 2019 в 05:55
поделиться
Другие вопросы по тегам:

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