Как агентство по программному обеспечению может поставить качественные проекты программного обеспечения/победы? [закрытый]

Другое событие NullPointerException возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.

String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals для гарантированного непустого объекта.

Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null.

Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.

String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
    System.out.println(phrase.equals(keyPhrase));
}

26
задан 16 revs, 8 users 82% 18 February 2012 в 10:21
поделиться

9 ответов

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

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

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

9
ответ дан Ed.T 28 November 2019 в 17:17
поделиться

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

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

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

Вы спрашиваете: «Как вы выигрываете работу по хорошей цене»? Люди социальные животные, они разговаривают друг с другом. Если на рынке есть мнение, что вы ненадежная компания, люди или будущие клиенты рано или поздно узнают. Клиентов не волнует, предлагали ли вы им продукт по действительно низкой цене или в слишком сжатые сроки - это не их ошибка, это вы их приняли. Итак, еще раз, я думаю, что испытание - это плохая деловая практика.

Я обнаружил, что вам действительно нужно определить жесткие спецификации на рабочие места с низким бюджетом, определить, что вы будете и можете выполнять, сообщить им цену, не дать своему боссу предлагать слишком много долгосрочных ценников со скидками для клиентов, потому что они слишком боятся потерять клиента. Общайтесь рано и часто, когда вещи начинают выходить из-под контроля. Напишите точные предложения для дополнительных функций. Запишите это точно, не полагайтесь на телефонные разговоры (вы: «это дополнительные 4 часа работы», клиент: «хорошо» ... 4 месяца спустя, клиент », что это было снова ??? почему я должен платить за это ").

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

5
ответ дан kitsune 28 November 2019 в 17:17
поделиться

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

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

3
ответ дан David Robbins 28 November 2019 в 17:17
поделиться

«такая большая конкуренция со стороны оффшорных / спальных программных команд» - звучит так, что вам, ребята, нужно уделить время работе в сети. В конце концов, людям нравится иметь дело с людьми, а не с бизнесом. Если вы хорошо известны и любимы в ваших клиентских сообществах, вы будете лидерами, и вы получите лучшую цену за доверие, которое вы создали. А рефералы дадут вам мощное преимущество - попросите их.

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

2
ответ дан John Mac 28 November 2019 в 17:17
поделиться

Это можно рассматривать как краткое руководство по вышеуказанной проблеме.

Документ с предложениями

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

Бюджетный документ

  1. Теперь перейдите в Excel и перечислите все задачи в проекте, которые, по вашему мнению, вам придется выполнить. Запишите время в днях, не больше 2 (0,25, 0,5 и т. Д.).

  2. Добавьте столбец для тестирования и задайте его в процентах от времени разработки (20-30% - это нормально).

  3. Теперь добавьте столбец для управления (проект + счет) и добавить% времени для этого (по сравнению с предыдущими двумя столбцами). 20-40% это нормально. (70-30 деления вечера / утра)

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

  5. Определите, каково значение для всех дней, которые были записаны до сих пор. Затем добавьте непредвиденную сумму в дополнение к этому (для работы с фиксированной ценой) 10-20% здесь нормально, но могут меняться в зависимости от опыта работы с клиентом и суммы изменений, к которым вы привыкли.

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

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

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

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

Документ временной шкалы

  1. Возьмите список задач проектирования и разработки из бюджета и поместите его в новый лист (или проект, если вы шикарный как я). Укажите даты начала и окончания каждого раздела, добавив дополнительно примерно 30-50% сверху.

  2. Добавьте некоторое графическое представление дней в виде блоков в Excel или используйте шаблон Gantt, как этот .

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

Завершен этап предложения

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

Стадия требований

  1. Перечислите каждое требование по отдельному идентификатору, 1,2,4,5 или 1.1,1.2,1.3. Это не имеет большого значения, но второй может помочь с большими списками.

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

2
ответ дан 2 revs, 2 users 88% 28 November 2019 в 17:17
поделиться

Это - моя точка зрения разработчика:

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

кроме того, наймите , хорошие разработчики , и рассматривают их хорошо :)

1
ответ дан Peter Mortensen 28 November 2019 в 17:17
поделиться

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

0
ответ дан Tim Howland 28 November 2019 в 17:17
поделиться

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

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

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

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

Мы пытаемся создать продукт и повторно использовать существующий опыт. Сравнение к Великобритании в Украине (где я работаю) зарплаты ниже, но еще в 4-5 раз выше, чем в Индии.

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

Кстати, я проверил whwewaitdigital.com, и кажется, что у нас есть продукт, который может потребоваться ваши клиенты. Мы делаем порталы - редакцию, B2C, каталоги продуктов с Geo, и мы используем ASP.NET MVC . Вы можете найти контактную информацию на нашем сайте www.socialtalents.com.

0
ответ дан 28 November 2019 в 17:17
поделиться
Другие вопросы по тегам:

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