force.com ISV ​​разработка, внедрение, поддержка - PullRequest
2 голосов
/ 06 июня 2011

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

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

  2. Среда разработки. Разработка Agile / Scrum основана на достижении полной автоматизации тестирования и непрерывной интеграции, но полная автоматизация за пределами модульного тестирования кажется трудной или невозможной.

  3. Фоновая обработка. Ограничения по запланированным заданиям, вызовам и будущим, а также проблемы с управлением транзакциями создают проблемы для традиционной разработки программного обеспечения.

Любопытно, что нашли другие ISV.

Спасибо!

1 Ответ

4 голосов
/ 08 июня 2011

Я сейчас работаю со своим вторым ISV-сервером Force.com и, таким образом, имею достаточный опыт выпуска продуктов на платформе (видел 4 выпуска отдельных продуктов, 1 из которых включал 3 версии, а 1 - еще одно обновление версии).

  1. Если возможно, вы должны попытаться удалить все шаги до / после установки, которые пользователь должен выполнить. Это звучит жестко, и это так, но это главная причина, по которой люди не принимают продукт. Идея состоит в том, что его можно быстро и легко установить, одним щелчком мыши, и любые дополнительные усилия ухудшают пользовательский опыт. Обеспечение независимости вашей системы от данных - это хороший способ обойти упомянутые вами проблемы безопасности данных, и, очевидно, вы можете предложить консультацию для выполнения работы по обновлению. Разумная идея может состоять в том, чтобы иметь список всех объектов и полей, на которые влияет установка ваших продуктов, а затем выполнить проверку организации клиента перед установкой. Я также сказал бы, что установка в песочнице и проведение пользовательского тестирования в течение нескольких недель может очень эффективно выявить любые проблемы, которые могут возникнуть в будущем.
  2. Это неправда, что полная автоматизация тестирования за пределами модульных тестов не может произойти и на самом деле очень проста. Ключ имеет необходимую настройку фреймворка. Таким образом, у вас будет центральная система контроля версий, в которой хранится ваш код (ключевая гибкая часть). Затем вы создаете сценарий, чтобы при фиксации кода он выполнял установку в организации SFDC, запуская все тесты и отчитываясь. Затем вы можете заставить этот сценарий запускать набор классов Apex или загружать кучу CSV-файлов для ввода данных с помощью либо более полных тестов Apex для запуска функциональности, либо для запуска Selen для набора тестов. Затем вы также можете использовать эти тестовые данные и сценарий для выведения из строя демонстрационных сред для продавцов.
  3. Ограничения регулятора и фоновой обработки немного ограничены, но они продолжают увеличиваться. Может быть, вам стоит интегрироваться с Heroku или подобным, чтобы выполнить более масштабную внешнюю обработку? Я скажу, хотя я думаю, что это улучшает способности программирования в целом, заставляя вас думать о том, что вы делаете, и о том, как лучше всего это сделать. Это приводит к более приятному восприятию конечным пользователем. Область пакетных заданий является хорошим способом выполнения этой обработки, и вы можете использовать объект asyncapexjob, чтобы сообщать пользователям о состоянии выполнения.

Надеюсь, что это помогает и дает вам другую перспективу!

Пол

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...