Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Vadim Martynov
Это настоящий курс молодого бойца по коммерческой разработке ПО в компаниях и распределённых командах.В рамках курса слушатели приобретут навыки по участию в командной разработке, взаимодействию с аналитиками, заказчиком, менеджером и отделом тестирования, совместной работой с кодом, пониманию особенностей построения высоконагруженных систем, анализу качества продукта и автоматизации тестирования.
www.cmcons.com. Практика и технология внедрения процесса конфигурационного управления и управления изменениями с применением IBM Rational ClearCase и ClearQuest
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Vadim Martynov
Это настоящий курс молодого бойца по коммерческой разработке ПО в компаниях и распределённых командах.В рамках курса слушатели приобретут навыки по участию в командной разработке, взаимодействию с аналитиками, заказчиком, менеджером и отделом тестирования, совместной работой с кодом, пониманию особенностей построения высоконагруженных систем, анализу качества продукта и автоматизации тестирования.
www.cmcons.com. Практика и технология внедрения процесса конфигурационного управления и управления изменениями с применением IBM Rational ClearCase и ClearQuest
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYPavel Tsukanov
то такое "Непрерывная Интеграция", зачем она нужна и с чем ее едят? Правда ли, что она нужна только для тестировщиков? На все эти вопросы мы постараемся найти ответы в ходе выступления Щербакова Ильи на нашей следующей юзер-группе.
Проектирование Программных Систем. Лекция 01Dima Dzuba
Лекция рассказывает о базовых принципах построения программного обеспечения. Проводится сравнение гибких (Agile) и водопадных методологий разработки программного обеспечения.
Quality Assurance vs Quality Control - так в чем же заключается работа специа...COMAQA.BY
Поговорим о том, что такое Quality Assurance и что такое Quality Control. Узнаем в чем заключается принципиальная разница между этими двумя понятиями\подходами. Расскажем как можно и нужно строить карьеру тестировщика. Приведем пример мировой практики от Microsoft.
Презентация на комплексную тему Continious integration-Automated Testing-Agile, показывается связи между этими темам, обоснование автоматического тестирования , и вложения ресурсов для развертывания автоматического тестирования и непрерываной интеграциия. Все темы тесно связаны между собой , хотя бы появились независимос друг от друга.
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYPavel Tsukanov
то такое "Непрерывная Интеграция", зачем она нужна и с чем ее едят? Правда ли, что она нужна только для тестировщиков? На все эти вопросы мы постараемся найти ответы в ходе выступления Щербакова Ильи на нашей следующей юзер-группе.
Проектирование Программных Систем. Лекция 01Dima Dzuba
Лекция рассказывает о базовых принципах построения программного обеспечения. Проводится сравнение гибких (Agile) и водопадных методологий разработки программного обеспечения.
Quality Assurance vs Quality Control - так в чем же заключается работа специа...COMAQA.BY
Поговорим о том, что такое Quality Assurance и что такое Quality Control. Узнаем в чем заключается принципиальная разница между этими двумя понятиями\подходами. Расскажем как можно и нужно строить карьеру тестировщика. Приведем пример мировой практики от Microsoft.
Презентация на комплексную тему Continious integration-Automated Testing-Agile, показывается связи между этими темам, обоснование автоматического тестирования , и вложения ресурсов для развертывания автоматического тестирования и непрерываной интеграциия. Все темы тесно связаны между собой , хотя бы появились независимос друг от друга.
Масштабирование Agile в Единой фронтальной системе СбербанкаSergey Rogachev
Презентация доклада "Масштабирование Agile в Единой фронтальной системе Сбербанка" Сергея Рогачева на конференции AgileKitchen, посвященной масштабированию Agile, которая прошла в Москве 22 сентября 2016 года (https://agilerussia.timepad.ru/event/374516). Также см. видео этого доклада: https://youtu.be/mJpCJiVNuME.
Сергей Рогачев. Agile на гигантских размерахScrumTrek
Не верите, что по Agile можно запускать программы проектов гигантские по численности привлечённых сотрудников и сложности создаваемого продукта? К примеру, программа проектов на 2 тыс. человек должна вывести все банковские продукты на единый фронт. Такая задача подразумевает интеграцию огромного количества внутренних банковских систем. Итого, колоссальное количество коммуникаций как внутри программы проектов, так и с другими подразделениями банка. Как запустить такое количество людей в едином русле? Как их координировать? Можно ли принципиально при таких входных параметрах не упасть хаос?
Lombardi Software — назначение и основные возможности программных продуктовКРОК
Практический семинар «Процессное управление — новый уровень эффективности предприятия».
Подробнее о мероприятии http://www.croc.ru/action/detail/2365/
Презентация Сергея Гонцова, эксперта направления системных решений компании КРОК
Юлия Викторова; Александр Тарасов. DevOps без булшита.ScrumTrek
В своём докладе мы расскажем о том, что значит DevOps для нас, и как мы его готовим в большой организации со всеми её ограничениями, проблемами и челленджами как с технической, так и менеджерской точек зрения. Поделимся наработанным уникальным опытом в непростых вопросах: а зачем банку вообще нужен DevOps? как поставить более-менее правильные цели и продать это себе, своим коллегам, начальнику и бизнесу? Какие метрики нужно поставить, и попробуем разобраться есть ли в метриках счастье? Покажем, какие метрики были для нас окошком в Нарнию, и что в итоге получилось, расскажем про трансформацию людей и те инженерные практики, которые мы применяем (парная работа, тотальный кодинг, TDD, Infrastructure as a Code, API самообслуживания и т.д.), ответим на вопросы о том, что это за команда DevOps: какие грабли точно подстерегают нас, и как не наступать на них
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
В докладе мы рассмотрим этапы развития приложения, начиная от монолитного Web приложения, до распределенной платформы по управлению бизнес-процессами. Покажем этапы развития, задачи и вызовы, которые возникали на каждом их них. Проанализируем различные аспекты, влияющие на развитие архитектуры, такие как бизнес-требования, технологические тренды и возможные ограничения.
Continuous Integration(как мы подружили frontend и backend)Talks&Works
— Почему нельзя просто взять и "натянуть" шаблон на CMS/Framework
— Как сократить время разработки в 2 раза, работая над конечным продуктом, а не над побочными артефактами
— Что значит Continuous Integration для frontend разработчика
— Как использовать CI на примере работы с 1C-Bitrix
Проблемы и пути их решения при командной разработке проектовАгентство AlterEGO
– Кому нужна командная разработка?
– Что делать в команде?
– Решение реальных задач, распределение ответственности
– Командная разработка на 1С-Битрикс
– Миграции БД
– Проблемы и пути их решения
Как успеть за изменениями в бюджетной модели и учетной политике?
IBM Cognos Express – вдвое быстрее и втрое дешевле.
Опыт внедрения в банковском секторе
2. WhoAmIResponse
Савран Роман Александрович
Украинские Динамические Системы
Программирую для Microsoft Dynamics CRM 7 лет
Выступал в роли разработчика/архитектора/руководителя команды для
проектов внедрения Microsoft CRM
4. 0-й уровень зрелости
чик-чик и в продакшн
Устанавливаем среду у заказчика
Программист пишет код со слов заказчика, требования не фиксируются
Разрабатывает на той же среде, которая у него установлена
Исходный код хранится на ноутбуке программиста
За день-два до запуска показываем заказчику и краснеем, от того что
ничего не работает
В определенный момент говорим «Ок, это теперь продакшн»
Продолжаем разрабатывать и фиксать баги на этой же среде. Возможно
имеем запасную для тестирования сложных требований
5. Как мы делаем сейчас
Для хранения требований, задач и управления ими используем
TFS/систему заказчика
Его же используем для хранения исходного кода/версионности (либо
систему заказчика)
Используем 3+ сред для разработки/тестирования/продакшн
Используем Unit Tests и ручное тестирование
На сложных проектах с большой командой используем Continuous
Integration
6. Что нужно для реализации Continuous
Integration?
Система контроля версий
• TFS
• SVN
• Все производимые
настройки должны иметь
возможность быть
отраженными в виде
файлов
Автоматическое
тестирование и
разворачивание
• TFS
• Hudson
• Утилита для выгрузки
настроек из CRM системы
• Утилита для
разворачивания настроек
из Системы контроля
версий
7. Проблемы разработки без системы
контроля версий
Сложность координации при наличии изменений многими членами команды
одного компонента или связанных компонент
Нет истории изменений
Нет привязки к конкретным задачам и понимания для чего производились
изменения (требует интеграции с системой управления требованиями)
Есть риск потери исходного кода при уходе разработчика или проблемами с
железом
Сложно найти последнюю актуальную версию исходного кода, если он
менялся несколькими людьми
Проблемы при необходимости подменить человека на определенный период,
или необходимости срочного исправления кода в отсутствие программиста
Сложность контроля качества исходного кода
8. Проблемы разработки без
автоматического разворачивания
Большие трудозатраты на перенос решений (в частности из-за скорости
импорта решений в Microsoft CRM)
Растут очень быстро с увеличением количества сред
Большие относительные трудозатраты при переносе небольших изменений
(добавить поле – 1 минута, перенести на продакт – 20 минут). Как результат
естественное желание исправить на продакте и рассинхронизировать среды
Человеческий фактор
При экспорте
Забыл включить в решение
Включил в решение недоделанный функционал (возможно не свой)
При импорте
Забыл сделать Publish All
Забыл поставить галочку Publish all workflows … при импорте
Не перепубликовал Duplicate detection rules
9. Что дает Continuous Integration?
Ускорение цикла разработки при отсутствии уменьшения качества
Автоматическое выявление конфликтов при работе над компонентами
нескольких людей
Изоляция разработок
Уменьшение себестоимости поддержки и развития решения
11. Сложности построения CI для Microsoft
CRM
Исходный код составляет малую часть изменений при разработке, кроме них
есть:
Roles
WorkFlow
Reports
Настройки объектов, форм, представлений
Dashboards/Charts e.t.c.
Особенности переноса решений:
Workflow должны быть зарегистрированы от пользователя производящего импорт
Duplication Rules могут перестать быть опубликованными при изменении метаданных
У Plugin registration steps зарегистрированных работать от имени конкретной учетной
записи, ставится по умолчанию Calling User
12. Схема
Parallel development
Dev lab
Test lab
Prod environment
Update
CRM Environment
dev1
Story 1
Local folder
Update
Unlock
Trunc
Commit
CRM Environment
dev2
Story 2
Local folder
Commit
SVN
Autodeploy
Lock svn on deploy
CRM Environment
Dev-Test
(Check)
Merged Solution
CRM Environment
Test (QC)
Mainstream testing
Commit
CRM Environment
bugfix
Story 3
CRM Environment
dev1
Story 1
Local folder
Solution merge when needed
Solution
Local folder
Approve
Approve
Branch
Commit
CRM Environment
dev2
Story 2
Local folder
Commit
SVN
Autodeploy
Lock svn on deploy
CRM Environment
Dev-Test 2
(Check)
Commit
CRM Environment
bugfix
Story 3
Local folder
Unlock
Branch solution
CRM Environment
Test (QC)
Branch testing
Merged Solution
CRM Environment
Beta
Merged Solution
CRM Environment
Prod
13. Построение отражения CRM –> SVN
Выгрузка
решения из
CRM
Распаковка
решения
Чистка
решения от
битых ссылок
Заливка
распакованного
решения в SVN
Выгрузка
решения Default
при помощи
ExportSolutionReq
uest
Использование
утилиты
SolutionPackager
для распаковки
выгруженного
решения в папку
под контролем
версий
Убирание ссылок
на компоненты
управляемых
решений,
которые не
выгружаются
Вызов
TortoiseSVN для
заливки решений
14. Построение отражения SVN -> CRM
Обновление
SVN
Запаковка
решения
Совершение
доимпортных
операций
Импорт
решения
Совершение
послеимпортных
операций
Публикация
настроек
Выгрузка
последних
изменений из
SVN
Использован
ие утилиты
SolutionPacka
ger для
формировани
я пакета
решения
Выполнение
автоматических
действий
Импорт
решения при
помощи
вызова
ImportSolutio
nRequest
Публикация
duplicate
detection
rules
Выполнение
автоматических
действий
15. SolutionPackager
Распаковывает решение, выгруженное из CRM в виде zip файла в набор
структурированных по папкам xml файлов
Entity
Entity Form
Entity View
Option Set
Entity Relationship
Ribbon Customization
Site Map
Web Resources
Role
Connection Role
Dashboard
Workflow
Email Template
Contract Template
Kb Article Template
Mail Merge Template
PluginAssembly
SdkMessageProcessingStep
ServiceEndpoint
Reports
EntityMap