Видео: http://www.youtube.com/watch?v=vz0U3jQpHSM
Это обзор опыта применения лучших практик разработки программного обеспечения на разных проектах от госзаказов до видеоконференций в командах от 5 до 50 человек. В докладе будут описаны не только практики, но и то, как они применяются на реальных проектах и какие выгоды они действительно приносят.
Современный мир ускоряется, и от тестирования требуется быстрые и стабильные тесты. В этом мастер-классе предлагается уйти от UI автоматизации и перейти на уровень ниже "пирамиды тестирования", на уровень WEB API. Не обещаю теорию, но будет много практических кейсов. В качестве примера я возьму популярный веб сайт с открытым API и покажу как за относительно небольшое время можно создавать хорошие тесты! Причем тесты мы будем создавать совместно, и особых навыков программирования от участников здесь не потребуется, достаточно включить логику и желание освоить что-то новое.
В этом докладе вы услышите историю о том, как можно построить процесс автоматизированного тестирования и непрерывной интеграции за короткий период времени. Мы поговорим о точках роста, развития и внедрения автоматизированного тестирования на уже существующем проекте. Вы узнаете, что с чего начинать автоматизированное тестирование и как выбрать "работающую" стратегию. После доклада вы захотите избавиться или значительно сократить ручное тестирование и ручной труд у себя на проекте. Вы откроете для себя целую систему, элементы который можно будет внедрять у себя, и которые будут работать.
Доклад будет интересен всем тестировщикам, разработчикам и менеджерам проектов.
Современный мир ускоряется, и от тестирования требуется быстрые и стабильные тесты. В этом мастер-классе предлагается уйти от UI автоматизации и перейти на уровень ниже "пирамиды тестирования", на уровень WEB API. Не обещаю теорию, но будет много практических кейсов. В качестве примера я возьму популярный веб сайт с открытым API и покажу как за относительно небольшое время можно создавать хорошие тесты! Причем тесты мы будем создавать совместно, и особых навыков программирования от участников здесь не потребуется, достаточно включить логику и желание освоить что-то новое.
В этом докладе вы услышите историю о том, как можно построить процесс автоматизированного тестирования и непрерывной интеграции за короткий период времени. Мы поговорим о точках роста, развития и внедрения автоматизированного тестирования на уже существующем проекте. Вы узнаете, что с чего начинать автоматизированное тестирование и как выбрать "работающую" стратегию. После доклада вы захотите избавиться или значительно сократить ручное тестирование и ручной труд у себя на проекте. Вы откроете для себя целую систему, элементы который можно будет внедрять у себя, и которые будут работать.
Доклад будет интересен всем тестировщикам, разработчикам и менеджерам проектов.
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
Матерый enterprise проект с "зоопарком" из разнообразных технологий. Часто меняющаяся команда и требовательный заказчик. Менеджер, активно пытающийся вытянуть проект... Все составляющие для сюжета, достойного Титаника.
Было перепробовано множество практик для улучшения процесса разработки, и больше всего это влияло на нас, разработчиков. В одночасье рушились привычные устои, а новые, не успев прижиться, менялись снова. Разве возможна нормальная работа в такой нервной обстановке?
Автор критически оценит парное программирование, тестирование, code review и прочие практики из мира улучшения разработки, а также расшарит набитые шишки и обнаруженные грабли.
Практический доклад о том, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование.
В докладе рассмотрены основные проблемы, с которыми команда столкнулась при внедрении и способы их устранения.
Продемонстрированы результаты, которых смогли достичь в течении полугода.
Доклад содержит большое количество лайфхаков и обзоров инструментария, который использовался для достижения цели.
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
В своем докладе я расскажу, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование. Также расскажу с какими проблемами столкнулись, и как мы их устраняли. И да, каких результатов смогли добиться уже через полгода. А самое интересное, покажу как мы смогли добиться того, чтоб у нас pull request долетал до боя за 3 часа со всеми этапами тестирования.
Доклад будет содержать большое количество лайфхаков и обзоров инструментария, который мы использовали.
Джоэл Спольски много лет назад придумал тест на качество и адекватность IT-компании, но ценности он не теряет и по сей день.
Сентябрь 2014, TechTalks NSU, Новосибирск
http://techtalks.nsu.ru
Видеозапись: http://www.youtube.com/watch?v=9sWD3RBwz30
23 сентября 2014. Проходим тест Джоэла (Семён Факторович и Олег Годовых, Noveo)
«Вот уже 14 лет как Джоэл Спольски придумал свой Joel test, но до сих пор далеко не все компании успешно проходят его. Мы поговорим о самых важных частях этого теста: о сервисах и инфраструктурных инструментах разработки (к ним относятся системы контроля версий, багтрекеры, continuous integration...) Принципы, о которых мы расскажем, одинаково применимы и для крупных компаний, и для стильных молодежных стартапов, и для студенческих курсовых проектов.»
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
1. Краткое введение в Agile и Scrum
2. Как и какие риски снижает применение Scrum?
3. Как планировать риски на итерацию и как это объяснить заказчику?
a. Стоит ли говорить заказчику о том, что вы планируете риски, и, если стоит, то как?
b. Что делать с «мега срочными» задачами от заказчика в середине итерации и как аргументированно сказать «нет»?
4. Что делать, что объём незапланированных задач больше объема запланированных?
5. Способы снижения рисков:
a. Снижение вероятности рисков
b. Снижение влияния на производительность команды
6. Управление рисками в самоорганизуемой команде
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
Матерый enterprise проект с "зоопарком" из разнообразных технологий. Часто меняющаяся команда и требовательный заказчик. Менеджер, активно пытающийся вытянуть проект... Все составляющие для сюжета, достойного Титаника.
Было перепробовано множество практик для улучшения процесса разработки, и больше всего это влияло на нас, разработчиков. В одночасье рушились привычные устои, а новые, не успев прижиться, менялись снова. Разве возможна нормальная работа в такой нервной обстановке?
Автор критически оценит парное программирование, тестирование, code review и прочие практики из мира улучшения разработки, а также расшарит набитые шишки и обнаруженные грабли.
Практический доклад о том, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование.
В докладе рассмотрены основные проблемы, с которыми команда столкнулась при внедрении и способы их устранения.
Продемонстрированы результаты, которых смогли достичь в течении полугода.
Доклад содержит большое количество лайфхаков и обзоров инструментария, который использовался для достижения цели.
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
В своем докладе я расскажу, как мы внедряли devops в банке, а конкретнее какую роль в этом процессе сыграло тестирование. Также расскажу с какими проблемами столкнулись, и как мы их устраняли. И да, каких результатов смогли добиться уже через полгода. А самое интересное, покажу как мы смогли добиться того, чтоб у нас pull request долетал до боя за 3 часа со всеми этапами тестирования.
Доклад будет содержать большое количество лайфхаков и обзоров инструментария, который мы использовали.
Джоэл Спольски много лет назад придумал тест на качество и адекватность IT-компании, но ценности он не теряет и по сей день.
Сентябрь 2014, TechTalks NSU, Новосибирск
http://techtalks.nsu.ru
Видеозапись: http://www.youtube.com/watch?v=9sWD3RBwz30
23 сентября 2014. Проходим тест Джоэла (Семён Факторович и Олег Годовых, Noveo)
«Вот уже 14 лет как Джоэл Спольски придумал свой Joel test, но до сих пор далеко не все компании успешно проходят его. Мы поговорим о самых важных частях этого теста: о сервисах и инфраструктурных инструментах разработки (к ним относятся системы контроля версий, багтрекеры, continuous integration...) Принципы, о которых мы расскажем, одинаково применимы и для крупных компаний, и для стильных молодежных стартапов, и для студенческих курсовых проектов.»
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
1. Краткое введение в Agile и Scrum
2. Как и какие риски снижает применение Scrum?
3. Как планировать риски на итерацию и как это объяснить заказчику?
a. Стоит ли говорить заказчику о том, что вы планируете риски, и, если стоит, то как?
b. Что делать с «мега срочными» задачами от заказчика в середине итерации и как аргументированно сказать «нет»?
4. Что делать, что объём незапланированных задач больше объема запланированных?
5. Способы снижения рисков:
a. Снижение вероятности рисков
b. Снижение влияния на производительность команды
6. Управление рисками в самоорганизуемой команде
The story of SonarQube told to a DevOps EngineerManu Pk
SonarQube is a open source code quality management platform. This talk focuses on the need, setup, CI Infrastructure and administration of the SonarQube to the DevOps community.
List of Software Development Model and MethodsRiant Soft
RiantSoft a Software Development Company derived the most useful and different types of Software Development Model for the users who want to know the development process. RiantSoft is specialized in custom software development with latest cutting edge technologies.
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.
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Ontico
HighLoad++ 2017
Зал «Пекин + Шанхай», 8 ноября, 17:00
Тезисы:
http://www.highload.ru/2017/abstracts/2991.html
Нынче стало модно выделять UI-компоненты в отдельную библиотеку и использовать её в нескольких проектах. Мы в команде почты Mail.ru делаем так же, но столкнулись с проблемой: каждый разработчик, меняя библиотеку под свои нужды, обязательно ломает что-нибудь, что работало у других.
Я расскажу о том, как мы решили эту проблему, и о том, какие инструменты для этого можно использовать. Storybook, BackstopJS, Jest, Webdriver.io, TypeScript - в их числе.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
Я расскажу о нашем двухлетнем опыте использования инженерной практики «Continious Inspection» и платформы SonarQube при организации кросс-языковой разработки в процессе «непрерывной поставки» (CI-CD для языков Java, C#, JavaScript, typeScript и Gherkin) при автоматизированном code-review.
Юрий Василевский «Автоматизация в 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), связанные с нумерацией сборок билдов, форматированием и контролем стиля кода, анализом дублированных участков кода, управлением внешними библиотеками.
Javascript-фреймворки: должен остаться только одинSergey Xek
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
Рассказ от tech-менеджера о том, как мы в Acronis выбирали фреймворк в условиях, когда любое более-менее важное технологическое решение сразу затрагивает с десяток команд, несколько сотен человек и права «случайно все сломать» нет.
В докладе пойдет речь о том, что производительность фронтенда — это больше про слаженную работу команды, про понятный и масштабируемый код, чем про сухие циферки. Но циферки тоже будут.
1) Какие у нас были проблемы с текущим фреймворком — UI, архитектура, код.
2) Как измеряли, что примерно стоит брать (исследование популярности).
3) Что рассматривали.
4) На пути к демо-проекту, какие были сложности (то, что уперли идею с Typescript, собственный компилятор шаблонов, четыре Flux-фреймворка и все плохи).
5) Два пилотных демо-проекта: цифры.
6) Оценка трудоемкости перехода.
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU
http://techtalks.nsu.ru
20 февраля 2013. Рассказ о разных профессиях в IT-индустрии, или почему не все выпускники IT-специальностей пишут код (Семён Факторович, Noveo)
«Семен Факторович (Noveo, Новосибирск) рассказывает о разных профессиях в IT-индустрии и о вариантах карьерного роста IT-специалиста»
Лекция прочитана в рамках проекта Tech Talks @NSU – серии открытых лекций о разработке ПО и карьере в IT, проводимых в Новосибирском государственном университете.
Подробности: http://techtalks.nsu.ru
Картинки к моему рассказу о том, что такое фреймворки и с чем их едят, что лучше не есть и как выбрать приправы для приготовления. Тезисы тут: http://backendconf.ru/2016/abstracts/2123.html
LeSS in the big bank a five-year journey.pdfDenis Tuchin
We will trace the history of LeSS in a large bank from underground to the preferred framework from the perspective of 16 LeSS-like cases.
I will tell how I grew LeSS and got a profit in the hostile organizational structure.
I will share how I sold the LeSS framework to business people who hadn’t heard anything about Agile before and wanted to save their subordinate managers.
How I helped middle managers understand their roles in the new LeSS context and how many of them were fired.
In the end, I will explain 5 years of struggle between the corporate bonus system and the LeSS principle of a single goal for all teams of one product.
LeSS in the big bank a five-year journeyDenis Tuchin
We will trace the history of LeSS in a large bank from underground to the preferred framework from the perspective of 16 LeSS-like cases.
I will tell how I grew LeSS and got a profit in the hostile organizational structure.
I will share how I sold the LeSS framework to business people who hadn’t heard anything about Agile before and wanted to save their subordinate managers.
How I helped middle managers understand their roles in the new LeSS context and how many of them were fired.
In the end, I will explain 5 years of struggle between the corporate bonus system and the LeSS principle of a single goal for all teams of one product.
Прототипирование, как способ исправить клиентский опыт до старта разработки п...Denis Tuchin
Запись выступления: https://www.youtube.com/watch?v=LJ-0nm1UWDg
- Прототип нового продукта или новой функции продукта зачастую можно за считанные часы ещё до выделения бюджета
- Тестирование такого прототипа, как правило тоже обходится достаточно дёшево
- На докладе рассказал, том как быстро создавать и тестировать прототипы, улучшая клиентский опыт ещё до старта разработки
Типовые слайды для тренинга "Agile для лидеров"Denis Tuchin
Тренинг предназначен для руководителей команий, директоров департаментов, начальников отделов, а также вновь назначенных Владелцев Продуктов и бывших руководителей проектов
Видео: https://www.youtube.com/watch?v=I5bI1QTGrRs
Провёл тренинг и kickoff, а команда всё равно не понимает, зачем она повесила доску, и каждый день двигает стикеры? Завёл бэклог и запустил все события Scrum, а Владелец Продукта продолжает себя вести как начальник отдела или руководитель проекта? Провёл воркшоп по 5 порокам команды, а её участники продолжают работать обособленно? Значит ты что-то упустил при внедрении изменений. На докладе рассмотрим, типичные ошибки внедрения изменений на реальных примерах из Agile-кочинга и как их избежать:
- Отсутствие активного участия руководства
- Недостаточное вовлечение сотрудников
- Недостаточное уделение внимания планированию трансформации
- Завышенные ожидания от Agile и отсутствие желания/возможности поменять окружение
Денис Тучин - Как не завалить Ретро: практические советы, как готовится и как...Denis Tuchin
Подготовка к Ретроспективе
1.1. Карта фасилитации
1.2. Нейро-карта фасилитации
1.3. Какие практики выбрать именно для этого ретро?
Что-то пошло не так, что делать?
2.1. Цикл вмешательства (Intervention Cycle)
2.2. Всегда ли применим цикл вмешательства
2.3. Кейсы!
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)Denis Tuchin
Видео: http://youtu.be/CTrRzdzhj1s?list=PLu7pKL8OAoRSze5Ts9wrbcEQBvXDx-AGq
Если вы начали проводить ретроспективы в своей команде, это ещё не значит, что вы внедрили процесс постоянного совершенствования (Kaizen). Часто у начинающих и не только Agile команд возникают те или иные сложности: выявленные проблемы не существенны или находятся за пределами влияния команды, действия по решению проблем не воплощаются в жизнь.
На докладе мы рассмотрим типичные проблемы Agile ретроспектив и как с ними бороться. Начнём с такого часто встречаемого случая, когда члены команды достаточно позитивно настроены, не видят проблем в своей работе и их идеи по улучшению процесса сводятся к предложениям по организации инфраструктуры офиса: кондиционеры, видов чая и т.д.
Здесь нужно вернуть команду с небес на землю, показать, какие проблемы есть на самом деле и профасилитировать нахождение решений.
Другой частый случай почти полная противоположность первому по атмосфере, но по эффекту на ретро очень похож. Члены команды настолько сильно находятся под прессингом дефектов и постоянных "хотелок" заказчиков, что не верят, что что-то можно улучшить и видят проблемы только в других командах, но не у себя.
Здесь более сложный процесс по нормализации атмосферы в команде. Рассмотрим первые 3 важных шага, как это сделать: снижение психологического напряжения процессным путём, решение основных проблем и маленькие победы.
Третья проблема, которую успеем рассмотреть: принятые на ретроспективе решения, не претворяются в жизнь. Практики для исправления достаточно просты, но далеко не все о них знают и их соблюдают: добровольное назначение задач, голосование консенсусом и добавление задач в беклог.
Денис Тучин - Принципы Agile в управлении требованиямиDenis Tuchin
Этот вебинар для бизнес-аналитиков, архитекторов, руководителей проектов, менеджеров продуктов, которые хотят узнать об особенностях управления требованиями в Agile-проектах.
Денис Тучин - Пользовательские истории в Agile-проектахDenis Tuchin
Видеозапись вебинара: https://www.youtube.com/watch?v=YBjbaygwvBM&index=9&list=PLu7pKL8OAoRTTwi3KK2OmVmuX9VllOFwt
1. Что такое пользовательские истории (User Stories)
2. Зачем они нужны в ваших проектах?
3. Как пользовательские истории помогают повысить удовлетворённость заказчика?
4. Как применяются пользовательские истории в Scrum?
Для кого:
Вебинар будет полезен менеджерам продуктов, менеджерам проектов, бизнес-аналитикам, владельцам продуктов, проектировщикам и разработчикам систем, которые хотят начать использовать преимущества разработки требований и создания продуктов в стиле Agile в своих проектах
Денис Тучин - Удачные и неудачные паттерны распределённого Agile (Agile Days ...Denis Tuchin
Видео выступления: https://www.youtube.com/watch?v=vOMSRSTl1Xo
Хотим мы этого или нет, но часто приходится работать с удалёнными командами, а иногда и с полностью распределёнными, когда все участники сидят в разных местах. На докладе разберём некоторые паттерны организации взаимодействия распределённых Agile команд, какие из них работают лучше, какие хуже и почему, а также посмотрим, что можно изменить, чтобы получился всё же Agile. Рассмотрим такие паттерны как:
- передача изолированных User Story удалённой команде
- Индивидуальные User stories
- Scrum of Remote Scrums
- Функциональные распределённые команды
- Scrum in spite of distributed team
Николай Борисов, Денис Тучин - Основы метода LEGO SERIOUS PLAY, фасилитация, ...Denis Tuchin
4-часовой мастер-класс
Lego Serious Play (LSP) — инновационный и эффективный способ проведения различных встреч, будь то стратегическая сессия, генерация идей нового продукта или ретроспектива. Метод LSP — это не просто метод фасилитации, это своеобразный язык общения.
Он позволяет находить совместные решения, моделировать системы и их взаимосвязи для людей с разным уровнем и порогом входа - "6+". Отличный способ построить любую текущую картину и понять, как достичь планируемой.
Позволяет:
- обеспечить вовлеченность и прозрачность близкую к 100%;
- создать 3D модель, на которую можно смотреть под разным углом, изменять - дополнять и соединять с другими, сравнивать и обсуждать;
- на уровне биохимии мы готовы реализовывать, то что уже построили руками;
- мягко и плавно выводит на очень сокровенные темы и истинные причины проблем и конфликтов, помогаем договориться там, где это казалось не возможным.
На мастер-классе участники узнают о принципах работы метода Lego Serious Play (LSP), где и как можно применить его, а также сами построят индивидуальные и групповые модели.
Николай Борисов, Денис Тучин - Основы метода LEGO SERIOUS PLAY, фасилитация, ...
Лучшие практики на практике
1. Опыт применения
лучших практик
Денис Тучин
руководитель группы разработки ПО
i-Sys
2. Об авторе
• Коммерческая разработка с 2004
• Применение best practices с 2006
• Внедрение best practices с 2009
• Agile evangelist с 2009
Работодатели и заказчики Agile
консалтинг
3. Лучшие практики
• Система контроля версий
• Итерации + демонстрации
• Заказчик рядом
• База знаний (Wiki)
• Code review
• Коллективное владение кодом
• Модульное и интеграционное тестирования
• Автоматизированная сборка и
непрерывная интеграция
• Стандарты кодирования
• Ретроспективы
• Метафора системы
4. Система контроля версий
• Совместная работа с одним кодом
• Возможность определить, кто, когда и какие
изменения внѐс
• Хранение истории изменений и старого кода
• Возможность сравнить свой код с работающим
• Возможность более продуктивно поддерживать
несколько версий продукта (ветки)
• Разграничение прав (чтение/запись)
6. Итерации + демонстрации
• Есть обратная связь от заказчика:
o то ли делаем, что нужно?
o так ли делаем как нужно?
• Заказчик видит, что мы всѐ-таки
что-то делаем
• Можно брать $ с заказчика за реализованный
функционал
• У заказчика есть возможность менять приоритеты
и требования походу безболезненно для команды
7. Заказчик рядом
• Всегда можно задать вопросы по требованиям
• Показать какой-то критичный функционал до
демонстрации
• Заказчик видит, что мы всѐ-таки что-то делаем :)
• Технические вопросы заказчику (субподряд)
* Рядом не обязательно, но желательно очно
8. База знаний (Wiki)
• Решение типовых проблем
o При деплое ошибка «…»
o Неверная кодировка в HTTP request
• Решение нетривиальных проблем,
возникавших >1 раза (в целом в команде)
• Описание работы самописных библиотек и
фреймворков
• Лучшие практики использования
сторонних библиотек
• Инструкции по развѐртыванию и настройке…
9. Требования в Wiki
• Иерархическая структура
• Проще поиск информации по разделам
• Комменты
o Вопросы (уточнение требований)
o Замечания: некорректность или конфликты
• Совместное редактирование
o Если несколько аналитиков
o Или если кросс-функциональная команда
• Оповещение об изменениях конкретного раздела
требований
10. Матрица участников в Wiki
• Матрица компетенций участников проекта
o Java, BPEL, Тестирование, Банковский софт
• Матрица ответственности участников проекта
o Своевременность и актуальность требований
o Работоспособность тестового стеда
o План на итерацию…
• Информация по тому как нужно общаться с
каждым из представителей заказчика *
* Стоит закрыть для заказчика этот раздел :)
12. Аудит кода (Code review)
• Опытные коллеги поправляют менее опытных
• Опытные коллеги учат, как правильно, менее
опытных
• Коллеги находят баги и несовершенства у других
в коде
• Review Board
o Оповещение о коде на проверку
o Выделение кода для добавления комментария и
отправка письма автору
14. Коллективное владение кодом
Бенефты
• Все знают, как работает система
• Более эффективная интеграция
• Каждый может подменить другого
o болезнь
o отпуск
o увольнение
o уход с проекта
• «Автоматический» аудит кода (code review)
• Каждый несѐт ответственность за весь код
15. Коллективное владение кодом
Принципы
• Каждый может вносить изменения в любую часть
программы
• За работоспособность кода несѐт ответственность
последний, кто его изменял
• Если такового найти сложно,
работоспособность
восстанавливает «кто считает
себя более вежливым и
воспитанным»
16. Модульные тесты
• Обнаружение ошибок раньше и быстрее тестеров
• Возможность избежать поиска труднонаходимых
багов
• Контроль того, что кто-то постфактум внѐс баги
(регрессии)
• Архитектура неизбежно приобретает большую
модульность
• Тестирование функционала происходит «с
низу», что существенно упрощает интеграцию
20. Автоматизированная сборка
• Компиляция исходного кода в бинарный код
• Сборка бинарного кода в приложение
• Выполнение тестов
• Разворачивание на testing и production
платформы
21. Apache Maven
• Один скрипт для всех платформ: Win, Linux, Mac
• Один скрипт для всех целей *:
• Для разработчиков
• Для стенда тестирования
• Для Production версии
• Сервер непрерывной интеграции (Continuous Integration)
• Управлением версиями модулей системы и
сторонних библиотек
• Нет необходимости дублирования библиотек
* Возможно сделать разные профили, для разных целей сборки
22. Sonatype Nexus
• Единый репозитарий артефактов
• Одинаковые библиотеки у всех:
• у разработчиков
• на стенде тестирования
• в Production версии
• на сервере непрерывной интеграции
• Храним самописные библиотеки в одном месте
• Не нужно каждый раз искать, где скачать
• Экономим трафик
• Решаем проблемы шаринга платных библиотек
внутри компании
23. Непрерывная интеграция (CI)
• Быстро всем видно, если сборка упала и кто в
этом виноват
• Автоматическое разворачивание для
альфа-тестирования
• Возможность запускать ресурсоемкие тесты
• Возможность автоматического разворачивания
на стенд разработки, если он общий
24. Стандарты кодирования
• Код однообразен
• Код более удобочитаем в целом
• Код обычно более документирован (Javadocs)
• Позволяет избежать досадных ошибок
(типа if без скобок)
• Позволяет исключить неоптимальные практики
• Разработчики не тратят
время холивары
25. Стандарты кодирования:
Плагины к среде разработки
Даже если вы забыли все соглашения, плагин
напомнит:
• Выделит цветом
• Предупредит перед
комитом (check-in)
26. Стандарты кодирования:
Плагины к серверу CI
• Даже если у вас не включѐн плагин в IDE
• Continuous Integration (CI) сервер скажет вам
всѐ, что он про вас думает :)
• Можно ввести рейтинг по комитерам:
• Количество удачных/неудачных сборок после комита
• Количество внесѐнных браков
• Количество исправленных браков
27. Ретроспективы
Цели
• Можно увидеть не очевидные проблемы
• Понять, что «безобидные вещи» являются
существенными проблемами
• Предупредить назревающие конфликты
Формат
• Мозговой штурм
• Голосование
• План действий
29. Метафора системы
= +
• Все разработчики понимают систему одинаково
• Разработчики и заказчик говорят на одном языке
• Разработчики и тестировщики говорят на одном
языке
36. Парное программирование
• Повышение дисциплины
• Лучший код
• Гибкий поток работы
• Высокий боевой дух
• Коллективное владение кодом
• Командный дух
• Высокое качество дизайна
• Обратная связь
• Непрерывный аудит кода
• Обучение
37. Рефакторинг
• Нужно добавить новую функцию, которая плохо
укладывается в архитектуру
• Нужно исправить ошибку, причины возникновения
которой сразу не ясны
• Сложная логика программы
• Дублирование кода
• Длинный метод
• Большой класс
• Много параметров в методе
• «Завистливые» функции
• Избыточные временные переменные
• Классы данных
38. YAGNI
Вам это не понадобится
• В 50% случаев код написанный про запас не
используется вообще
• В 49% - дорабатывается или перерабатывается
39. 40-часовая рабочая неделя
• Производительность разработчиков сильно
падает, если они вынуждены работать подолгу.
• Падает настолько, что за 10 часов они начинают
делать столько, сколько раньше делали за 6
60<40 *
* В сочетании с описанными практиками
41. Так же почитать
• Слайдкаст «Ведение проектной документации IT-специалистами»
• Экстремальное программирование в Википедии
• Обзор методологии SCRUM
• Про каждую из практик в Википедии
42. Спасибо за внимание
Блог: IT-Improver.LiveJournal.com
E-mail: DenisTuchin@gmail.com
Skype: Denis.Tuchin
Вебинары: IT-Webinars.LiveJournal.com