2010-06-29 1 views
4

Я обдумывал это в течение некоторого времени. Как вы выбираете технологию (я не говорю о Java vs. .Net vs PHP), когда вы планируете новый проект/поддерживаете существующий проект в организации.Кровотечение по сравнению с полевыми испытаниями. Как вы будете балансировать

Аргументов за собирание новейших технологий

  1. Это может преодолеть некоторые из ограничений существующей технологии (не думайте SQL против RDBMS, когда речь идет о масштабируемости). Иногда новейшие технологии обратно совместимы и только получают новые возможности, не нарушая старые функции.
  2. Это даст лучший пользовательский интерфейс (может быть HTML 5 для видео, просто мысль)
  3. Сократит время разработки/стоимость и сделать содержание базового кода относительно легко

аргументов для сбора полевого испытания технологии/против собирание свертываемости края технологии

  1. Она не выдержали испытание времени. Могут возникнуть непредвиденные проблемы. свернутые решения могут привести к большему количеству проблем на этапе технического обслуживания, и приложение может стать white elephant
  2. Стандарты могут быть еще не установлены. Стандарты могут измениться, и может потребоваться существенная переработка, чтобы проект соответствовал стандартам. Выбор технологии, протестированной на местах, позволит сэкономить эти усилия.
  3. Новая технология может не поддерживаться организацией. Поддержка нового (или в этом отношении другой технологии) потребует дополнительных ресурсов
  4. Это может быть трудно получить квалифицированные ресурсы с кровотечением передовые технологии

С точки зрения разработчика, я не вижу причин не делать (в свободное время), но он может быть ограничен версиями с открытым исходным кодом/бесплатными товарами/разработчиками

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

TL; DR

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

+0

Я думаю, что вопрос слишком открытый –

ответ

5

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

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

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

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

  4. Попробуйте найти наиболее зрелых незрелых. Например, если вы думаете о хранилище данных типа NoSQL. Весь материал NoSQL незрелый, когда вы сравниваете его с RDBMS, например, с Oracle, который существует уже несколько десятилетий, поэтому посмотрите на наиболее зрелые решения для тех, у кого есть организации поддержки, профессионально или через группы поддержки.

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

+0

В качестве примера для NoSQL против MySQL, посмотрите на это: http://www.quora.com/Why-does-Quora-use-MySQL-as-the-data -store-а-чем-NoSQLs-таких-как-Cassandra-MongoDB-CouchDB-и т.д.. – MattS

+0

Ну, для NoSQL существуют реальные (и дорогостоящие) решения: Gemstone определенно зрелый и имеет клиентов с кластерами из 500 серверов –

0

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

Например, я был бы очень рад разработать на Rails 3 или Ruby 1.9, так как я уверен, что они будут в порядке, когда они будут завершены.

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

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

2

Несколько эмпирических правил.

Используйте только одну «новую» технологию за раз. Чем больше новых вещей вы используете, тем больше вероятность серьезной проблемы.

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

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

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

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

+0

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

+0

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

1

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

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

При запуске нового проекта, два вопроса приходят на ум в оценке, если я должен перейти на новую платформу:

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

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

Как и все, это анализ затрат и выгод. Вообще говоря, в то время как я всегда изучаю и тренируюсь по новым технологиям, я не буду создавать что-то для клиента, использующего технологию (среду, библиотеку, серверную платформу и т. Д.), Которая не была широко принята большим количеством разработчиков для не менее 6-12 месяцев.

+0

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

+0

Я слышал это! :) Вот почему я пытался различать «полевые испытания» и «устаревшие». Когда я говорю «Полевые испытания», я говорю о «новейших технологиях, которые были в поле достаточно долго, чтобы изломы были разработаны». – Jason

0
  1. Вы должны задать себе только один вопрос ... мне повезло?
  2. Где деньги?
    • Вы получаете прибыль и достаточно быстро, даже если технология X является флопом?
  3. Если нет, делает ли новая технология более высокой перфорации в течение длительного времени?
    • Как 64-разрядный процессор, Shader Model 4, тяжелые многопоточный
  4. Вы видите много идеологических трубят вокруг него
    • "смена парадигмы" Blurbs и т.д. - ждать 2 -8 лет, пока он не остынет и не заменит :-)
  5. Это громоздкий и требует 2х всего, что нужно запустить?
    • пусть ваш вражеский платить за него первым :-)
  6. Вы можете просто получить базовое образование и проект пробной wihtout рискуя что-нибудь?
    • , а может попробовать, если это не выглядит как 400 фунтов женщина, которая не поет :-)
  7. Там нет общего ответа на такой вопрос - пожалуйста, надо # 1
1

Это зависит от контекста. Каждая организация должна принимать собственные решения. Классическая литература по этой теме - Crossing the Chasm от Джеффри А. Мура.

Смежные вопросы