SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Сергей Моргунов
Успешная карьера
в современной
разработке ПО.
Что должен знать каждый?
Содержание
> Базовые принципы командной работы
> Правила по работе с исходным кодом
> Непрерывная поставка разрабатываемого
продукта
> Правильная организация построения
архитектуры
> Behavior Driven Development
Базовые
принципы
командной
работы
4Успешная карьера в современной разработке ПО. Что должен знать каждый?
Что такое команда?
Команда
— это небольшая группа людей со взаимодополняющими
навыками, чувствующих взаимную ответственность
и объединенных общей целью.
5Успешная карьера в современной разработке ПО. Что должен знать каждый?
Manifesto for Agile Software Development
Agile-манифест разработки
программного обеспечения
Мы постоянно открываем для себя более
совершенные методы разработки программного
обеспечения, занимаясь разработкой
непосредственно и помогая в этом другим.
Благодаря проделанной работе мы смогли осознать,
что:
> Люди и взаимодействие важнее процессов
и инструментов
> Работающий продукт важнее исчерпывающей
документации
> Сотрудничество с заказчиком важнее
согласования условий контракта
> Готовность к изменениям важнее следования
первоначальному плану
То есть, не отрицая важности того, что справа,
мы всё-таки больше ценим то, что слева.
Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert C. Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas
www.agilemanifesto.org
6Успешная карьера в современной разработке ПО. Что должен знать каждый?
XP, Scrum, Kanban
Адаптивность
XP
(13) Scrum
(9) Kanban
(3)
?
More adaptive
7Успешная карьера в современной разработке ПО. Что должен знать каждый?
Planning game (XP)
Planning poker
8Успешная карьера в современной разработке ПО. Что должен знать каждый?
Doing Agile vs Being Agile
Doing Agile
Being Agile
Правила
по работе
с исходным
кодом
10Успешная карьера в современной разработке ПО. Что должен знать каждый?
Version Control System
GIT & Subversion
2009 2010 2011 2012 2013 2014
70%
60%
50%
40%
30%
20%
10%
0%
Git
Svn
11Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow
в теории
12Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow
на
практике
13Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow
+ REBASE
In process
Цель
> Линейность истории
изменений
Средства
> Merge ff-only
> Логическая
завершенность каждого
коммита
14Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow
+ REBASE
AFTER MERGE
15Успешная карьера в современной разработке ПО. Что должен знать каждый?
Практики XP
> Формируется командой
> Перечень правил не должен
быть исчерпывающим или
слишком объёмным
> Адаптируется вместе с командой
CODING
STANDARD
> Проводится командой
> Используется специализированное
ПО (Stash, Upsource и др.)
> Целью является улучшение качества
программного продукта и
совершенствование навыков
разработчиков
CODE
REVIEW
Непрерывная
поставка
разрабатывае-
мого продукта
17Успешная карьера в современной разработке ПО. Что должен знать каждый?
Continuous delivery
Continuous delivery
Правильная
организация
построения
архитектуры
19Успешная карьера в современной разработке ПО. Что должен знать каждый?
Domain-Driven Design
ANEMIC DOMAIN MODEL + RPC
20Успешная карьера в современной разработке ПО. Что должен знать каждый?
Domain-Driven Design
Многоуровневая архитектура
Интерфейс пользователя
Операционный
Предметной области
Инфраструктурный
21Успешная карьера в современной разработке ПО. Что должен знать каждый?
Domain-Driven Design
Что читать?
22Успешная карьера в современной разработке ПО. Что должен знать каждый?
Domain-Driven Design
Составляющие эффективного
моделирования
Связь между моделью и реализацией
Единый язык
Информоемкая модель
Дистилляция модели
Эксперименты и мозговые штурмы
23Успешная карьера в современной разработке ПО. Что должен знать каждый?
Domain-Driven Design
Модульность
Низкая внешняя зависимость при
высокой внутренней связности
Behavior Driven
Development
25Успешная карьера в современной разработке ПО. Что должен знать каждый?
Test-Driven Development
Test-driven
development
Возникающие
вопросы
С чего начать?
Что тестировать?
Что не тестировать?
Как много тестировать за раз?
Как называть тесты?
Как понять, почему тесты падают?
26Успешная карьера в современной разработке ПО. Что должен знать каждый?
Behavior Driven Development
Немного истории
2004
JBehave
2006
INTRODUCING BDD
http://dannorth.net/introducing-bdd/
2007
RBehave, Rspec
2009
Cucumber (Gherkin)
27Успешная карьера в современной разработке ПО. Что должен знать каждый?
Behavior Driven Development
Behavior Driven
Development
«BDD is a second-generation, outside-in, pull-based, multiple-
stakeholder, multiple-scale, high-automation, agile methodology.
It describes a cycle of interactions with well-defined outputs, resulting
in the delivery of working, tested software that matters.»
Dan North
3 Principles
> Enough is enough: do as much planning, analysis, and design
as you need, but no more
> Deliver stakeholder value: everything you do should deliver
value or increase your ability to do so
> It's a behavior: everyone involved should have the same way
of talking about the system and what it does
28Успешная карьера в современной разработке ПО. Что должен знать каждый?
Behavior Driven Development
Cucumber example
Feature: Addition
In order to avoid silly mistakes
As a math idiot
I want to be told sum of two numbers
Scenario: Add two numbers
Given I have entered 50 into the calculator
And I have entered 70 into the calculator
When I press add
Then the result should be 120 on the screen
29Успешная карьера в современной разработке ПО. Что должен знать каждый?
Behavior Driven Development
Что
почитать?
Спасибо
за внимание!

Weitere ähnliche Inhalte

Was ist angesagt?

Василий Чепцов, PMBOK для Agile-менеджера. Чем полезен?
Василий Чепцов, PMBOK для Agile-менеджера. Чем полезен?Василий Чепцов, PMBOK для Agile-менеджера. Чем полезен?
Василий Чепцов, PMBOK для Agile-менеджера. Чем полезен?ScrumTrek
 
Владимир Завертайлов. Требовательность, мозгоклюйство и провокации: уровни уп...
Владимир Завертайлов. Требовательность, мозгоклюйство и провокации: уровни уп...Владимир Завертайлов. Требовательность, мозгоклюйство и провокации: уровни уп...
Владимир Завертайлов. Требовательность, мозгоклюйство и провокации: уровни уп...ScrumTrek
 
Процесс Mindbox 2015
Процесс Mindbox 2015Процесс Mindbox 2015
Процесс Mindbox 2015Alexander Gornik
 
Борис Вольфсон. Agile ценности и принципы для новичков.
Борис Вольфсон. Agile ценности и принципы для новичков.Борис Вольфсон. Agile ценности и принципы для новичков.
Борис Вольфсон. Agile ценности и принципы для новичков.ScrumTrek
 
Александр Андронов, Engineering Assessment
Александр Андронов, Engineering AssessmentАлександр Андронов, Engineering Assessment
Александр Андронов, Engineering AssessmentScrumTrek
 
Дмитрий Матвеев, Александр Павлович. Гибкий подход к продуктовому развитию Го...
Дмитрий Матвеев, Александр Павлович. Гибкий подход к продуктовому развитию Го...Дмитрий Матвеев, Александр Павлович. Гибкий подход к продуктовому развитию Го...
Дмитрий Матвеев, Александр Павлович. Гибкий подход к продуктовому развитию Го...ScrumTrek
 
работа в крупной компании на примере Banki.ru
работа в крупной компании на примере Banki.ruработа в крупной компании на примере Banki.ru
работа в крупной компании на примере Banki.ruYuri Afanasiev
 
Обзор Agile - эволюция процессов
Обзор Agile - эволюция процессовОбзор Agile - эволюция процессов
Обзор Agile - эволюция процессовNikita Filippov
 
пылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрампылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрамMagneta AI
 
11боровиков. 2016 копия
11боровиков. 2016 копия11боровиков. 2016 копия
11боровиков. 2016 копияBankir_Ru
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.ScrumTrek
 
Чем полезен PMBOK для Agile-менеджера
Чем полезен PMBOK для Agile-менеджераЧем полезен PMBOK для Agile-менеджера
Чем полезен PMBOK для Agile-менеджераVasiliy Cheptsov
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Ontico
 
лобасев 3 ключевых навыка успешной agile-команды
лобасев   3 ключевых навыка успешной agile-командылобасев   3 ключевых навыка успешной agile-команды
лобасев 3 ключевых навыка успешной agile-командыMagneta AI
 
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?ScrumTrek
 
Вебинар: 12 принципов Agile, которые делают его довольно успешным
Вебинар: 12 принципов Agile, которые делают его довольно успешнымВебинар: 12 принципов Agile, которые делают его довольно успешным
Вебинар: 12 принципов Agile, которые делают его довольно успешнымak-itconsulting.com
 
Опыт проведения дизайн-спринта по методике Google Ventures (при создании прод...
Опыт проведения дизайн-спринта по методике Google Ventures (при создании прод...Опыт проведения дизайн-спринта по методике Google Ventures (при создании прод...
Опыт проведения дизайн-спринта по методике Google Ventures (при создании прод...PCampRussia
 
щеголев по ту сторону баррикад
щеголев   по ту сторону баррикадщеголев   по ту сторону баррикад
щеголев по ту сторону баррикадMagneta AI
 
безуглый гибкая стратегия (Agile strategy)
безуглый   гибкая стратегия (Agile strategy)безуглый   гибкая стратегия (Agile strategy)
безуглый гибкая стратегия (Agile strategy)Magneta AI
 

Was ist angesagt? (20)

Василий Чепцов, PMBOK для Agile-менеджера. Чем полезен?
Василий Чепцов, PMBOK для Agile-менеджера. Чем полезен?Василий Чепцов, PMBOK для Agile-менеджера. Чем полезен?
Василий Чепцов, PMBOK для Agile-менеджера. Чем полезен?
 
Владимир Завертайлов. Требовательность, мозгоклюйство и провокации: уровни уп...
Владимир Завертайлов. Требовательность, мозгоклюйство и провокации: уровни уп...Владимир Завертайлов. Требовательность, мозгоклюйство и провокации: уровни уп...
Владимир Завертайлов. Требовательность, мозгоклюйство и провокации: уровни уп...
 
Процесс Mindbox 2015
Процесс Mindbox 2015Процесс Mindbox 2015
Процесс Mindbox 2015
 
Борис Вольфсон. Agile ценности и принципы для новичков.
Борис Вольфсон. Agile ценности и принципы для новичков.Борис Вольфсон. Agile ценности и принципы для новичков.
Борис Вольфсон. Agile ценности и принципы для новичков.
 
Александр Андронов, Engineering Assessment
Александр Андронов, Engineering AssessmentАлександр Андронов, Engineering Assessment
Александр Андронов, Engineering Assessment
 
Дмитрий Матвеев, Александр Павлович. Гибкий подход к продуктовому развитию Го...
Дмитрий Матвеев, Александр Павлович. Гибкий подход к продуктовому развитию Го...Дмитрий Матвеев, Александр Павлович. Гибкий подход к продуктовому развитию Го...
Дмитрий Матвеев, Александр Павлович. Гибкий подход к продуктовому развитию Го...
 
работа в крупной компании на примере Banki.ru
работа в крупной компании на примере Banki.ruработа в крупной компании на примере Banki.ru
работа в крупной компании на примере Banki.ru
 
Обзор Agile - эволюция процессов
Обзор Agile - эволюция процессовОбзор Agile - эволюция процессов
Обзор Agile - эволюция процессов
 
пылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрампылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрам
 
11боровиков. 2016 копия
11боровиков. 2016 копия11боровиков. 2016 копия
11боровиков. 2016 копия
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
 
Гибкие технологии разработки
Гибкие технологии разработкиГибкие технологии разработки
Гибкие технологии разработки
 
Чем полезен PMBOK для Agile-менеджера
Чем полезен PMBOK для Agile-менеджераЧем полезен PMBOK для Agile-менеджера
Чем полезен PMBOK для Agile-менеджера
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)
 
лобасев 3 ключевых навыка успешной agile-команды
лобасев   3 ключевых навыка успешной agile-командылобасев   3 ключевых навыка успешной agile-команды
лобасев 3 ключевых навыка успешной agile-команды
 
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?
 
Вебинар: 12 принципов Agile, которые делают его довольно успешным
Вебинар: 12 принципов Agile, которые делают его довольно успешнымВебинар: 12 принципов Agile, которые делают его довольно успешным
Вебинар: 12 принципов Agile, которые делают его довольно успешным
 
Опыт проведения дизайн-спринта по методике Google Ventures (при создании прод...
Опыт проведения дизайн-спринта по методике Google Ventures (при создании прод...Опыт проведения дизайн-спринта по методике Google Ventures (при создании прод...
Опыт проведения дизайн-спринта по методике Google Ventures (при создании прод...
 
щеголев по ту сторону баррикад
щеголев   по ту сторону баррикадщеголев   по ту сторону баррикад
щеголев по ту сторону баррикад
 
безуглый гибкая стратегия (Agile strategy)
безуглый   гибкая стратегия (Agile strategy)безуглый   гибкая стратегия (Agile strategy)
безуглый гибкая стратегия (Agile strategy)
 

Andere mochten auch

Сергей Сергеев — Maintainer кода в большом проекте
Сергей Сергеев — Maintainer кода в большом проектеСергей Сергеев — Maintainer кода в большом проекте
Сергей Сергеев — Maintainer кода в большом проектеYandex
 
Распределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере gitРаспределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере gitIvan Evtukhovich
 
Сергей Сергеев "Менеджмент кода, или Почему SCM"
Сергей Сергеев "Менеджмент кода, или Почему SCM"Сергей Сергеев "Менеджмент кода, или Почему SCM"
Сергей Сергеев "Менеджмент кода, или Почему SCM"Yandex
 
Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"Egor Stremousov
 
A Piece of case.
A Piece of case.A Piece of case.
A Piece of case.TBWA\Moscow
 
Адаптация Git flow при коллективной разработке на 1с
Адаптация Git flow при коллективной разработке на 1сАдаптация Git flow при коллективной разработке на 1с
Адаптация Git flow при коллективной разработке на 1сAlexey Lustin
 
что такое Git и как с ним бороться
что такое Git и как с ним боротьсячто такое Git и как с ним бороться
что такое Git и как с ним боротьсяВладимир Кожаев
 
Continuous delivery в крупном интернет проекте
Continuous delivery в крупном интернет проектеContinuous delivery в крупном интернет проекте
Continuous delivery в крупном интернет проектеSQALab
 
Основы работы с Git
Основы работы с GitОсновы работы с Git
Основы работы с GitAndrey Akinshin
 
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013Андрей Кухаренко
 
Основы Git
Основы GitОсновы Git
Основы Gitoelifantiev
 
Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.7bits
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to gitJoel Krebs
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkVolker Hirsch
 

Andere mochten auch (19)

Git flow
Git flowGit flow
Git flow
 
Сергей Сергеев — Maintainer кода в большом проекте
Сергей Сергеев — Maintainer кода в большом проектеСергей Сергеев — Maintainer кода в большом проекте
Сергей Сергеев — Maintainer кода в большом проекте
 
Распределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере gitРаспределенные системы контоля версия на примере git
Распределенные системы контоля версия на примере git
 
Сергей Сергеев "Менеджмент кода, или Почему SCM"
Сергей Сергеев "Менеджмент кода, или Почему SCM"Сергей Сергеев "Менеджмент кода, или Почему SCM"
Сергей Сергеев "Менеджмент кода, или Почему SCM"
 
Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"Никита Шультайс. "Система управления версиями git"
Никита Шультайс. "Система управления версиями git"
 
A Piece of case.
A Piece of case.A Piece of case.
A Piece of case.
 
Адаптация Git flow при коллективной разработке на 1с
Адаптация Git flow при коллективной разработке на 1сАдаптация Git flow при коллективной разработке на 1с
Адаптация Git flow при коллективной разработке на 1с
 
что такое Git и как с ним бороться
что такое Git и как с ним боротьсячто такое Git и как с ним бороться
что такое Git и как с ним бороться
 
Continuous delivery в крупном интернет проекте
Continuous delivery в крупном интернет проектеContinuous delivery в крупном интернет проекте
Continuous delivery в крупном интернет проекте
 
Основы работы с Git
Основы работы с GitОсновы работы с Git
Основы работы с Git
 
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
 
iron man
iron maniron man
iron man
 
Основы Git
Основы GitОсновы Git
Основы Git
 
Git
GitGit
Git
 
Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.Стажировка 2014, занятие 4. Git, Github и Open source.
Стажировка 2014, занятие 4. Git, Github и Open source.
 
Intro To Git
Intro To GitIntro To Git
Intro To Git
 
GitFlow_MOEX
GitFlow_MOEXGitFlow_MOEX
GitFlow_MOEX
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to git
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
 

Ähnlich wie Успешная карьера в современной разработки программного обеспечения

Введение в Lean и Agile
Введение в Lean и AgileВведение в Lean и Agile
Введение в Lean и AgileKirill Rubinshteyn
 
Философия Agile 1.0
Философия Agile 1.0Философия Agile 1.0
Философия Agile 1.0Alexandr Tupikov
 
Product lifecycle ws software development (sef)
Product lifecycle ws software development (sef)Product lifecycle ws software development (sef)
Product lifecycle ws software development (sef)Dmitry Bezuglyy
 
Agileee Petelin самый непонимаемый принцип Agile Manifesto
Agileee Petelin самый непонимаемый принцип Agile ManifestoAgileee Petelin самый непонимаемый принцип Agile Manifesto
Agileee Petelin самый непонимаемый принцип Agile ManifestoAgileee
 
гибкая методология разработки по
гибкая методология разработки погибкая методология разработки по
гибкая методология разработки поpoverhnost
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай КрапивныйCodeFest
 
Теория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаТеория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаSQALab
 
Lombardi Software — назначение и основные возможности программных продуктов
Lombardi Software — назначение и основные возможности программных продуктовLombardi Software — назначение и основные возможности программных продуктов
Lombardi Software — назначение и основные возможности программных продуктовКРОК
 
Mykola Mytko — "Быть, а не казаться Agile"
Mykola Mytko — "Быть, а не казаться Agile" Mykola Mytko — "Быть, а не казаться Agile"
Mykola Mytko — "Быть, а не казаться Agile" it-network
 
Software craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgileSoftware craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgilePavel Veinik
 
На пути к совершенному инжинирингу
На пути к совершенному инжинирингуНа пути к совершенному инжинирингу
На пути к совершенному инжинирингуVitebsk DSC
 
Dev ops performance lab-v2 (1)
Dev ops performance lab-v2 (1)Dev ops performance lab-v2 (1)
Dev ops performance lab-v2 (1)Rostislav Achilov
 
Практика работы с крупными проектами - от Scrum с XP к Kanban
Практика работы с крупными проектами - от Scrum с XP к KanbanПрактика работы с крупными проектами - от Scrum с XP к Kanban
Практика работы с крупными проектами - от Scrum с XP к KanbanAlexander Byndyu
 
Евгений Кривошеев. Beyond DevOps
Евгений Кривошеев. Beyond DevOpsЕвгений Кривошеев. Beyond DevOps
Евгений Кривошеев. Beyond DevOpsScrumTrek
 
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.RuФорум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.RuYury Vetrov
 
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
Модуль 2: Лекция 9-10.  Обзор методологий, фреймворковМодуль 2: Лекция 9-10.  Обзор методологий, фреймворков
Модуль 2: Лекция 9-10. Обзор методологий, фреймворковYana Brodetski
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0HighLoad2009
 
Как информационные дайджесты помогают контролировать работу десятков интернет...
Как информационные дайджесты помогают контролировать работу десятков интернет...Как информационные дайджесты помогают контролировать работу десятков интернет...
Как информационные дайджесты помогают контролировать работу десятков интернет...Netpeak
 
Никита Ремизов - Введение в разработку ТЗ
Никита Ремизов - Введение в разработку ТЗНикита Ремизов - Введение в разработку ТЗ
Никита Ремизов - Введение в разработку ТЗDrupalSPB
 

Ähnlich wie Успешная карьера в современной разработки программного обеспечения (20)

Введение в Lean и Agile
Введение в Lean и AgileВведение в Lean и Agile
Введение в Lean и Agile
 
Философия Agile 1.0
Философия Agile 1.0Философия Agile 1.0
Философия Agile 1.0
 
Product lifecycle ws software development (sef)
Product lifecycle ws software development (sef)Product lifecycle ws software development (sef)
Product lifecycle ws software development (sef)
 
Agileee Petelin самый непонимаемый принцип Agile Manifesto
Agileee Petelin самый непонимаемый принцип Agile ManifestoAgileee Petelin самый непонимаемый принцип Agile Manifesto
Agileee Petelin самый непонимаемый принцип Agile Manifesto
 
гибкая методология разработки по
гибкая методология разработки погибкая методология разработки по
гибкая методология разработки по
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Теория и практика сокращения релизного цикла
Теория и практика сокращения релизного циклаТеория и практика сокращения релизного цикла
Теория и практика сокращения релизного цикла
 
Lombardi Software — назначение и основные возможности программных продуктов
Lombardi Software — назначение и основные возможности программных продуктовLombardi Software — назначение и основные возможности программных продуктов
Lombardi Software — назначение и основные возможности программных продуктов
 
Mykola Mytko — "Быть, а не казаться Agile"
Mykola Mytko — "Быть, а не казаться Agile" Mykola Mytko — "Быть, а не казаться Agile"
Mykola Mytko — "Быть, а не казаться Agile"
 
Quality assurance
Quality assuranceQuality assurance
Quality assurance
 
Software craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgileSoftware craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы Agile
 
На пути к совершенному инжинирингу
На пути к совершенному инжинирингуНа пути к совершенному инжинирингу
На пути к совершенному инжинирингу
 
Dev ops performance lab-v2 (1)
Dev ops performance lab-v2 (1)Dev ops performance lab-v2 (1)
Dev ops performance lab-v2 (1)
 
Практика работы с крупными проектами - от Scrum с XP к Kanban
Практика работы с крупными проектами - от Scrum с XP к KanbanПрактика работы с крупными проектами - от Scrum с XP к Kanban
Практика работы с крупными проектами - от Scrum с XP к Kanban
 
Евгений Кривошеев. Beyond DevOps
Евгений Кривошеев. Beyond DevOpsЕвгений Кривошеев. Beyond DevOps
Евгений Кривошеев. Beyond DevOps
 
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.RuФорум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
Форум Технологий Mail.Ru 2011: Юрий Ветров — Как создаются интерфейсы в Mail.Ru
 
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
Модуль 2: Лекция 9-10.  Обзор методологий, фреймворковМодуль 2: Лекция 9-10.  Обзор методологий, фреймворков
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
Как информационные дайджесты помогают контролировать работу десятков интернет...
Как информационные дайджесты помогают контролировать работу десятков интернет...Как информационные дайджесты помогают контролировать работу десятков интернет...
Как информационные дайджесты помогают контролировать работу десятков интернет...
 
Никита Ремизов - Введение в разработку ТЗ
Никита Ремизов - Введение в разработку ТЗНикита Ремизов - Введение в разработку ТЗ
Никита Ремизов - Введение в разработку ТЗ
 

Успешная карьера в современной разработки программного обеспечения

  • 1. Сергей Моргунов Успешная карьера в современной разработке ПО. Что должен знать каждый?
  • 2. Содержание > Базовые принципы командной работы > Правила по работе с исходным кодом > Непрерывная поставка разрабатываемого продукта > Правильная организация построения архитектуры > Behavior Driven Development
  • 4. 4Успешная карьера в современной разработке ПО. Что должен знать каждый? Что такое команда? Команда — это небольшая группа людей со взаимодополняющими навыками, чувствующих взаимную ответственность и объединенных общей целью.
  • 5. 5Успешная карьера в современной разработке ПО. Что должен знать каждый? Manifesto for Agile Software Development Agile-манифест разработки программного обеспечения Мы постоянно открываем для себя более совершенные методы разработки программного обеспечения, занимаясь разработкой непосредственно и помогая в этом другим. Благодаря проделанной работе мы смогли осознать, что: > Люди и взаимодействие важнее процессов и инструментов > Работающий продукт важнее исчерпывающей документации > Сотрудничество с заказчиком важнее согласования условий контракта > Готовность к изменениям важнее следования первоначальному плану То есть, не отрицая важности того, что справа, мы всё-таки больше ценим то, что слева. Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas www.agilemanifesto.org
  • 6. 6Успешная карьера в современной разработке ПО. Что должен знать каждый? XP, Scrum, Kanban Адаптивность XP (13) Scrum (9) Kanban (3) ? More adaptive
  • 7. 7Успешная карьера в современной разработке ПО. Что должен знать каждый? Planning game (XP) Planning poker
  • 8. 8Успешная карьера в современной разработке ПО. Что должен знать каждый? Doing Agile vs Being Agile Doing Agile Being Agile
  • 10. 10Успешная карьера в современной разработке ПО. Что должен знать каждый? Version Control System GIT & Subversion 2009 2010 2011 2012 2013 2014 70% 60% 50% 40% 30% 20% 10% 0% Git Svn
  • 11. 11Успешная карьера в современной разработке ПО. Что должен знать каждый? GIT Flow GIT Flow в теории
  • 12. 12Успешная карьера в современной разработке ПО. Что должен знать каждый? GIT Flow GIT Flow на практике
  • 13. 13Успешная карьера в современной разработке ПО. Что должен знать каждый? GIT Flow GIT Flow + REBASE In process Цель > Линейность истории изменений Средства > Merge ff-only > Логическая завершенность каждого коммита
  • 14. 14Успешная карьера в современной разработке ПО. Что должен знать каждый? GIT Flow GIT Flow + REBASE AFTER MERGE
  • 15. 15Успешная карьера в современной разработке ПО. Что должен знать каждый? Практики XP > Формируется командой > Перечень правил не должен быть исчерпывающим или слишком объёмным > Адаптируется вместе с командой CODING STANDARD > Проводится командой > Используется специализированное ПО (Stash, Upsource и др.) > Целью является улучшение качества программного продукта и совершенствование навыков разработчиков CODE REVIEW
  • 17. 17Успешная карьера в современной разработке ПО. Что должен знать каждый? Continuous delivery Continuous delivery
  • 19. 19Успешная карьера в современной разработке ПО. Что должен знать каждый? Domain-Driven Design ANEMIC DOMAIN MODEL + RPC
  • 20. 20Успешная карьера в современной разработке ПО. Что должен знать каждый? Domain-Driven Design Многоуровневая архитектура Интерфейс пользователя Операционный Предметной области Инфраструктурный
  • 21. 21Успешная карьера в современной разработке ПО. Что должен знать каждый? Domain-Driven Design Что читать?
  • 22. 22Успешная карьера в современной разработке ПО. Что должен знать каждый? Domain-Driven Design Составляющие эффективного моделирования Связь между моделью и реализацией Единый язык Информоемкая модель Дистилляция модели Эксперименты и мозговые штурмы
  • 23. 23Успешная карьера в современной разработке ПО. Что должен знать каждый? Domain-Driven Design Модульность Низкая внешняя зависимость при высокой внутренней связности
  • 25. 25Успешная карьера в современной разработке ПО. Что должен знать каждый? Test-Driven Development Test-driven development Возникающие вопросы С чего начать? Что тестировать? Что не тестировать? Как много тестировать за раз? Как называть тесты? Как понять, почему тесты падают?
  • 26. 26Успешная карьера в современной разработке ПО. Что должен знать каждый? Behavior Driven Development Немного истории 2004 JBehave 2006 INTRODUCING BDD http://dannorth.net/introducing-bdd/ 2007 RBehave, Rspec 2009 Cucumber (Gherkin)
  • 27. 27Успешная карьера в современной разработке ПО. Что должен знать каждый? Behavior Driven Development Behavior Driven Development «BDD is a second-generation, outside-in, pull-based, multiple- stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.» Dan North 3 Principles > Enough is enough: do as much planning, analysis, and design as you need, but no more > Deliver stakeholder value: everything you do should deliver value or increase your ability to do so > It's a behavior: everyone involved should have the same way of talking about the system and what it does
  • 28. 28Успешная карьера в современной разработке ПО. Что должен знать каждый? Behavior Driven Development Cucumber example Feature: Addition In order to avoid silly mistakes As a math idiot I want to be told sum of two numbers Scenario: Add two numbers Given I have entered 50 into the calculator And I have entered 70 into the calculator When I press add Then the result should be 120 on the screen
  • 29. 29Успешная карьера в современной разработке ПО. Что должен знать каждый? Behavior Driven Development Что почитать?