Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Сергей Моргунов
Успешная карьера
в современной
разработке ПО.
Что должен знать каждый?
Содержание
> Базовые принципы командной работы
> Правила по работе с исходным кодом
> Непрерывная поставка разрабатываемог...
Базовые
принципы
командной
работы
4Успешная карьера в современной разработке ПО. Что должен знать каждый?
Что такое команда?
Команда
— это небольшая группа ...
5Успешная карьера в современной разработке ПО. Что должен знать каждый?
Manifesto for Agile Software Development
Agile-ман...
6Успешная карьера в современной разработке ПО. Что должен знать каждый?
XP, Scrum, Kanban
Адаптивность
XP
(13) Scrum
(9) K...
7Успешная карьера в современной разработке ПО. Что должен знать каждый?
Planning game (XP)
Planning poker
8Успешная карьера в современной разработке ПО. Что должен знать каждый?
Doing Agile vs Being Agile
Doing Agile
Being Agile
Правила
по работе
с исходным
кодом
10Успешная карьера в современной разработке ПО. Что должен знать каждый?
Version Control System
GIT & Subversion
2009 2010...
11Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow
в теории
12Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow
на
практике
13Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow
+ REBASE
In process
Цель
> Лине...
14Успешная карьера в современной разработке ПО. Что должен знать каждый?
GIT Flow
GIT Flow
+ REBASE
AFTER MERGE
15Успешная карьера в современной разработке ПО. Что должен знать каждый?
Практики XP
> Формируется командой
> Перечень пра...
Непрерывная
поставка
разрабатывае-
мого продукта
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
...
27Успешная карьера в современной разработке ПО. Что должен знать каждый?
Behavior Driven Development
Behavior Driven
Devel...
28Успешная карьера в современной разработке ПО. Что должен знать каждый?
Behavior Driven Development
Cucumber example
Feat...
29Успешная карьера в современной разработке ПО. Что должен знать каждый?
Behavior Driven Development
Что
почитать?
Спасибо
за внимание!
Upcoming SlideShare
Loading in …5
×

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

313 views

Published on

Краткая информация о том, что должен знать каждый разработчик программного обеспечения.
Видео версия презентации http://www.youtube.com/watch?v=MqKFIcfouQc

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Сергей Моргунов Успешная карьера в современной разработке ПО. Что должен знать каждый?
  2. 2. Содержание > Базовые принципы командной работы > Правила по работе с исходным кодом > Непрерывная поставка разрабатываемого продукта > Правильная организация построения архитектуры > Behavior Driven Development
  3. 3. Базовые принципы командной работы
  4. 4. 4Успешная карьера в современной разработке ПО. Что должен знать каждый? Что такое команда? Команда — это небольшая группа людей со взаимодополняющими навыками, чувствующих взаимную ответственность и объединенных общей целью.
  5. 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. 6Успешная карьера в современной разработке ПО. Что должен знать каждый? XP, Scrum, Kanban Адаптивность XP (13) Scrum (9) Kanban (3) ? More adaptive
  7. 7. 7Успешная карьера в современной разработке ПО. Что должен знать каждый? Planning game (XP) Planning poker
  8. 8. 8Успешная карьера в современной разработке ПО. Что должен знать каждый? Doing Agile vs Being Agile Doing Agile Being Agile
  9. 9. Правила по работе с исходным кодом
  10. 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. 11Успешная карьера в современной разработке ПО. Что должен знать каждый? GIT Flow GIT Flow в теории
  12. 12. 12Успешная карьера в современной разработке ПО. Что должен знать каждый? GIT Flow GIT Flow на практике
  13. 13. 13Успешная карьера в современной разработке ПО. Что должен знать каждый? GIT Flow GIT Flow + REBASE In process Цель > Линейность истории изменений Средства > Merge ff-only > Логическая завершенность каждого коммита
  14. 14. 14Успешная карьера в современной разработке ПО. Что должен знать каждый? GIT Flow GIT Flow + REBASE AFTER MERGE
  15. 15. 15Успешная карьера в современной разработке ПО. Что должен знать каждый? Практики XP > Формируется командой > Перечень правил не должен быть исчерпывающим или слишком объёмным > Адаптируется вместе с командой CODING STANDARD > Проводится командой > Используется специализированное ПО (Stash, Upsource и др.) > Целью является улучшение качества программного продукта и совершенствование навыков разработчиков CODE REVIEW
  16. 16. Непрерывная поставка разрабатывае- мого продукта
  17. 17. 17Успешная карьера в современной разработке ПО. Что должен знать каждый? Continuous delivery Continuous delivery
  18. 18. Правильная организация построения архитектуры
  19. 19. 19Успешная карьера в современной разработке ПО. Что должен знать каждый? Domain-Driven Design ANEMIC DOMAIN MODEL + RPC
  20. 20. 20Успешная карьера в современной разработке ПО. Что должен знать каждый? Domain-Driven Design Многоуровневая архитектура Интерфейс пользователя Операционный Предметной области Инфраструктурный
  21. 21. 21Успешная карьера в современной разработке ПО. Что должен знать каждый? Domain-Driven Design Что читать?
  22. 22. 22Успешная карьера в современной разработке ПО. Что должен знать каждый? Domain-Driven Design Составляющие эффективного моделирования Связь между моделью и реализацией Единый язык Информоемкая модель Дистилляция модели Эксперименты и мозговые штурмы
  23. 23. 23Успешная карьера в современной разработке ПО. Что должен знать каждый? Domain-Driven Design Модульность Низкая внешняя зависимость при высокой внутренней связности
  24. 24. Behavior Driven Development
  25. 25. 25Успешная карьера в современной разработке ПО. Что должен знать каждый? Test-Driven Development Test-driven development Возникающие вопросы С чего начать? Что тестировать? Что не тестировать? Как много тестировать за раз? Как называть тесты? Как понять, почему тесты падают?
  26. 26. 26Успешная карьера в современной разработке ПО. Что должен знать каждый? Behavior Driven Development Немного истории 2004 JBehave 2006 INTRODUCING BDD http://dannorth.net/introducing-bdd/ 2007 RBehave, Rspec 2009 Cucumber (Gherkin)
  27. 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. 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. 29Успешная карьера в современной разработке ПО. Что должен знать каждый? Behavior Driven Development Что почитать?
  30. 30. Спасибо за внимание!

×