www.cmcons.com. Практика и технология внедрения процесса конфигурационного управления и управления изменениями с применением IBM Rational ClearCase и ClearQuest
www.cmcons.com. Практика и технология внедрения процесса конфигурационного управления и управления изменениями с применением IBM Rational ClearCase и ClearQuest
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalLuxoftTraining
В своем выступлении Михаил рассматривает различные аспекты реализации проекта, начиная от управления требованиями и заканчивая управлением изменениями и конфигурациями. Описывает лучшие практики минимизации рисков провала проекта, в соответствии с методологией IBM Rational:
Итеративная разработка;
Подход к управлению требованиями;
Компонентная архитектура;
Визуальное моделирование;
Постоянный контроль качества;
Управление изменениями и конфигурациями.
А также рассматривается специфика Agile-проектов в сравнении с другими методологиями.
Практический доклад о том, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование.
В докладе рассмотрены основные проблемы, с которыми команда столкнулась при внедрении и способы их устранения.
Продемонстрированы результаты, которых смогли достичь в течении полугода.
Доклад содержит большое количество лайфхаков и обзоров инструментария, который использовался для достижения цели.
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalLuxoftTraining
В своем выступлении Михаил рассматривает различные аспекты реализации проекта, начиная от управления требованиями и заканчивая управлением изменениями и конфигурациями. Описывает лучшие практики минимизации рисков провала проекта, в соответствии с методологией IBM Rational:
Итеративная разработка;
Подход к управлению требованиями;
Компонентная архитектура;
Визуальное моделирование;
Постоянный контроль качества;
Управление изменениями и конфигурациями.
А также рассматривается специфика Agile-проектов в сравнении с другими методологиями.
Практический доклад о том, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование.
В докладе рассмотрены основные проблемы, с которыми команда столкнулась при внедрении и способы их устранения.
Продемонстрированы результаты, которых смогли достичь в течении полугода.
Доклад содержит большое количество лайфхаков и обзоров инструментария, который использовался для достижения цели.
CV2015. Лекция 1. Понятия и история компьютерного зрения. Свет и цвет.Anton Konushin
Курс "Введение в компьютерное зрение", читаемый на
ВМК МГУ имени М.В. Ломоносова в весеннем семестре 2015 года. Лектор - Конушин Антон. Лекция 1. Темы - понятие о компьютерном зрение, сложности, связь с искусственным интеллектом. История и достижения компьютерного зрения. Свет и цвет, модели цвета, цифровое изображение.
Видео: http://www.youtube.com/watch?v=vz0U3jQpHSM
Это обзор опыта применения лучших практик разработки программного обеспечения на разных проектах от госзаказов до видеоконференций в командах от 5 до 50 человек. В докладе будут описаны не только практики, но и то, как они применяются на реальных проектах и какие выгоды они действительно приносят.
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
1. Проблемы в построении CI процессов в компании
2. Структура типовой сборки
3. Пример реализации типовой сборки
4. Плюсы и минусы от использования типовой сборки
Юрий Василевский «Автоматизация в XCode»
Yandex Mobile Camp в Санкт-Петербурге 2012
http://events.yandex.ru/events/yamobcamp/spb-may-2012/
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач. Мы обсудим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Yandex Mobile Camp в Санкт-Петербурге, 30 мая 2012
Юрий Василевский, ведущий разработчик EPAM Systems, Mobile Solutions
Тема: Автоматизация в XCode
Тезисы:
Xcode — основной инструментарий разработки приложений под Mac OS X и Apple iOS. Он обладает широкими возможностями как для редактирования кода, так и для автоматизации задач.
Мы рассмотрим некоторые из аспектов автоматизации (Code Sense, Targets, Services, Help), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
В своем докладе я расскажу, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование. Также расскажу с какими проблемами столкнулись, и как мы их устраняли. И да, каких результатов смогли добиться уже через полгода. А самое интересное, покажу как мы смогли добиться того, чтоб у нас pull request долетал до боя за 3 часа со всеми этапами тестирования.
Доклад будет содержать большое количество лайфхаков и обзоров инструментария, который мы использовали.
The practical story telling how Devops changed the culture of quality in the Bank. Recently Devops became mainstream topic. But only few people have a deep understanding how to apply it to the process of software quality assurance. Some believe that the Devops kills manual testing.
I will talk about changes it makes to the role of QA engineers themself. The discussion main point is NOT about tools or technologies. It’s NOT about the “silver bullet” for your problems with the quality of products.
Instead, I will show you an integrated approach which we used for quality assurance. It allowed us to significantly reduce the cost of finding and fixing defects. This approach has also accelerated the development and delivery value to our customers and made the whole process more transparent and predictable.
Glib Rybalko, GlobalLogic’s Test Lead, consultant and trainer was among 26 known Ukrainian and international experts who took a word on IT Weekend Ukraine 2013. Glib discussed features of automated software testing, benefits and feasibility of using this approach on various projects. During his speech, Glib pointed all necessary steps of automated testing implementation and gave homework for those who were interested in this field and wanted to implement it in their projects.
В статье рассмотрен ряд вопросов связанных с тестированием 64-битного программного обеспечения. Обозначены сложности, с которыми может столкнуться разработчик ресурсоемких 64-битных приложений, и пути их преодоления.
CV2015. Лекция 2. Простые методы распознавания изображений.Anton Konushin
Курс "Введение в компьютерное зрение", читаемый на
ВМК МГУ имени М.В. Ломоносова в весеннем семестре 2015 года. Лектор - Конушин Антон. Лекция 2. Простые методы распознавания изображений. Рассматриваются методы бинаризации изображений, основы математической морфологии, медианная фильтрация, выделение связанных компонент, метод последовательного сканирования, метод К-средних, оценка характеристик сегментов.
4. Основные проблемы
Как организовать совместную работу с кодом?
Как систематизировать задачи?
Где и в каком виде хранить всю информацию по проекту?
Как оформлять код?
Как создавать документацию?
Как контролировать качество кода?
…
4
5. Системы контроля версий
(VCS, Version Control Systems)
Централизованные
o
o
StarTeam
o
Subversion (SVN)
o
Perforce
o
CVS
MS Team Foundation
Распределенные
o
Git
o
Mercurial
o
Bazaar
5
8.
Создан в 2005 г. для оптимизации разработки ядра Linux
Построен по принципу файловой системы
Большинство операций – локальные и очень быстрые («the
gods of speed have blessed Git with unworldly powers» )
Идеально подходит для активной работы с ветками
Обладает всеми преимуществами распределенных систем
8
9.
Каждый commit – «слепок» файловой системы (snapshot)
Актуальные версии файлов хранятся целиком (blobs)
9
10.
Вся история разработки – граф commit’ов
Ветка (branch) = указатель на commit (41 байт!). HEAD –
текущая ветка
10
18. Системы трекинга задач и дефектов
(Issue trackers)
Цель – организация задач, расстановка приоритетов
Issue – может быть task, bug, improvement и т.д.
Типичные характеристики issue:
o
Description
o
Reporter
o
Assignee
o
Project
o
Priority
o
Due date
o
…
18
19. Системы хранения знаний
Цель – хранение полезной информации по проекту:
o
o
Описания алгоритмов
o
Отчеты
o
Документация
Планы
Полезные возможности:
o
Поддержка версионности документов
o
Рассылка уведомлений об изменениях
19
21. Стандарты кодирования
(Coding standards, style guildelines)
Не важно какие, главное – чтобы были
Код 1 раз пишется, но 100 раз читается
Пример - Google C++ Style Guide
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
21
22. Документирование кода
Ручное написание комментариев
Системы автоматической генерации документации,
например, Doxygen
http://www.stack.nl/~dimitri/doxygen/index.html
22
25. Ревью кода
(Code review)
Цель – выявление дефектов и потенциальных проблем на как
можно более ранней стадии, улучшение процесса разработки,
контроль качества кода
25
29. Основные проблемы
Как убедиться, что разрабатываемая система делает то, что
должна?
Как проверить, что исправления известных дефектов не
породили новые?
Как контролировать изменения характеристик работы
системы в результате вносимых исправлений?
…
29
30. Уровни тестирования
Тестирование в процессе написания
кода
Модульное и интеграционное
тестирование
Регрессионные тесты
Ручное тестирование
30
31. Модульное тестирование
(Unit tests)
Цель – тестирование отдельных функций и компонентов
системы, а также их взаимодействия (интеграционные тесты)
Тесты пишутся разработчиками
Для C++ - Google Test: http://code.google.com/p/googletest/
Иногда поддерживается на уровне языка
31
36. Test-Driven Development
Достоинства:
o
Требования прописываются заранее, а не «на ходу»
o
Ошибки выявляются на самом раннем этапе
o
Сильно упрощается рефакторинг
o
Тесты служат полноценной документацией (например, в D это
выведено на уровень языка)
Критика:
o
o
Написание теста не всегда тривиально
При хорошем покрытии объем тестового кода сопоставим с
объемом кода самой системы, а иногда и значительно превышает
его
36
37. Регрессионное тестирование
(Regression tests)
Цели:
o
o
o
Убедиться, что то, что работало, не сломалось
Убедиться, что результат работы системы соответствует
спецификации
Контроль результатов работы алгоритмов, батч-тесты
Тесты создаются как разработчиками, так и тестерами
Могут быть как автоматическими, так и ручными
37
39. Непрерывная интеграция
(Continuous integration)
Основные принципы:
Наличие единого репозитория кода
Полная автоматизация сборки
Каждая сборка должна подвергаться набору тестов
Регулярные небольшие commit’ы, не «ломающие» сборку
Легкий доступ к результатам каждой сборки (инсталляторы,
отчеты и т.п.)
Автоматическое развертывание
39
41. Основные проблемы
Какой методологии разработки придерживаться?
Как организовать процесс выпуска стабильного релиза?
Как обеспечить эффективную работу каждого члена команды
и команды в целом?
…
41
42. Методологии разработки ПО
Водопадная модель (waterfall model)
Спиральная модель (spiral model)
Итерационная модель (iterative model)
Гибкая разработка (agile development)
42
46. Гибкая разработка
Целая философия, основанная на итерационной модели.
Частые итерации (спринты), кросс-функциональные команды,
работа в условиях постоянно меняющихся требований
46
47. Гибкая разработка
Основные постулаты («Agile manifesto»):
• Люди и взаимодействие важнее процессов и инструментов;
• Работающий продукт важнее исчерпывающей
документации;
• Сотрудничество с заказчиком важнее согласования условий
контракта;
• Готовность к изменениям важнее следования
первоначальному плану.
Примеры:
• SCRUM
• Kanban
• Extreme programming
47
48. Жизненный цикл релиза (Release life cycle)
development branch
release branch
active development
Ni ghtly
bui ld 1
Rel ease
1.7
…
Ni ghtly
bui ld N
bug fixing,
code stabilization
emergency
fixes only
feature
freeze
Fea ture
compl ete
Rel ease
ca ndidate
time
code
freeze
Rel ease
1.8
Release manager – специальный человек, отвечающий за процесс выпуска
релиза
48
50. Что отличает лучших разработчиков
Умение выдавать законченный результат
Кругозор
o
o
o
Знание различных языков, инструментов и технологий
Умение находить правильные подходы к возникающим задачам,
использовать подходящие инструменты
Стремление постоянно поддерживать свои знания в актуальном состоянии
Понимание высокоуровневых целей и умение мыслить в терминах
«business value»
Инициативность
Самостоятельность
Умение оценивать сроки и выдерживать их
Умение общаться с людьми (коллегами, заказчиками, пользователями)
Умение четко и структурированно рассказывать о своей работе
50