SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
SOFTWARE ENGINEERING
                      Кратчайший курс




Friday, 2 March, 12
РАХИМ ДАВЛЕТКАЛИЕВ
                            freetonik.com

Friday, 2 March, 12
Friday, 2 March, 12
Friday, 2 March, 12
• Сторонние проекты/заказы
                      • Наш собственный продукт



Friday, 2 March, 12
Программист vs.
                       разработчик




Friday, 2 March, 12
КАКОЙ ЯЗЫК ОБЯЗАН
                        ЗНАТЬ КАЖДЫЙ
                         РАЗРАБОТЧИК?



Friday, 2 March, 12
ХОРОШИЙ РАЗРАБОТЧИК:


    • Постоянно           читает книги и изучает новое

    • Хорошо           знает английский, говорит и читает на нём

    • Умеет           письменно излагать свои мысли




Friday, 2 March, 12
ТЕНДЕНЦИИ


    • Уровень             языков повышается

    • Все             возвращается на сервер

    • Веб-разработка             растёт

    • Кроссплатформенность                – всё еще мечта



Friday, 2 March, 12
КРУПНЫЕ СИСТЕМЫ

    • Смесь           разных языков и технологий

    • Длительные           сроки разработки

    • Разные          типы интерфейсов

    • Сложная           бизнес-логика на сервере

    • Огромные           объемы данных

    • Огромная           нагрузка

Friday, 2 March, 12
СЛОЖНОСТИ


    • Координация: множество   людей разных специализаций

    • Требования: множество   заинтересованных сторон

    • Планирование




Friday, 2 March, 12
ПРОЦЕСС РАЗРАБОТКИ
    • Анализ   и сбор требований
    • Формирование спецификаций
    • Проектирование архитектуры
    • Дизайн
    • Реализация
    • Тестирование
    • Релиз
    • Поддержка



Friday, 2 March, 12
ТРЕБОВАНИЕ
    • Функциональные
          • Что
            система должна делать?
    • Качественные
      • Ограничения дизайна ради определенного качества
    • Платформенные
      • Ограничения в платформах/технологиях
    • Процесса
      • Ограничения процесса разработки



Friday, 2 March, 12
ФУНКЦИОНАЛЬНЫЕ
                        ТРЕБОВАНИЯ

    • Какие           данные система должна принимать?

    • Какие           данные система должна отдавать?

    • Какие           данные система должна хранить?

    • Какие           вычисления она должна производить?

    • Каково           время выполнения и синхронизация этих аспектов?


Friday, 2 March, 12
КАЧЕСТВЕННЫЕ
                           ТРЕБОВАНИЯ

    • Время           отклика

    • Использование             ресурсов

    • Читаемость

    • Доступность

    • Восстановление            после ошибки


Friday, 2 March, 12
ПРЕЦЕДЕНТ (USE CASE)



    • Сценарий          использования

    • Спецификация          последовательных действий системы




Friday, 2 March, 12
Friday, 2 March, 12
ПРОЦЕСС РАЗРАБОТКИ
    • Анализ и сбор требований
    • Формирование спецификаций
    • Проектирование архитектуры
    • Дизайн
    • Реализация
    • Тестирование
    • Релиз
    • Поддержка



Friday, 2 March, 12
СПЕЦИФИКАЦИЯ


    • Формальное        описание поведения системы

          • Когда   пользователь нажмет кнопку ОК, контроль должен
              быть предыдущему окну, звук должен сигналировать об
              удачном завершении процесса.




Friday, 2 March, 12
ПРОЦЕСС РАЗРАБОТКИ
    • Анализ и сбор требований
    • Формирование спецификаций
    • Проектирование архитектуры
    • Дизайн
    • Реализация
    • Тестирование
    • Релиз
    • Поддержка



Friday, 2 March, 12
АРХИТЕКТУРА

    • Клиент-сервер

    • p2p

    • Монолитное             приложение

    • Front           end & back end

    • ...



Friday, 2 March, 12
ПРОЦЕСС РАЗРАБОТКИ
    • Анализ и сбор требований
    • Формирование спецификаций
    • Проектирование архитектуры
    • Дизайн
    • Реализация
    • Тестирование
    • Релиз
    • Поддержка



Friday, 2 March, 12
КОНЦЕПЦИИ ДИЗАЙНА ПО

    • Абстракция
    • Refinement (абстрактные модели -> структуры данных)
    • Модульность
    • Иерархия контроля
    • Структурное разделение
    • Структуры данных
    • Скрытие информации



Friday, 2 March, 12
АСПЕКТЫ ДИЗАЙНА ПО

    • Компактность
    • Расширяемость
    • Устойчивость к сбоям
    • Удобство поддержки
    • Модульность
    • Удобство переиспользования
    • Безопасность
    • Юзабилити

Friday, 2 March, 12
ПРОЦЕСС РАЗРАБОТКИ
    • Анализ и сбор требований
    • Формирование спецификаций
    • Проектирование архитектуры
    • Дизайн
    • Реализация
    • Тестирование
    • Релиз
    • Поддержка



Friday, 2 March, 12
НАПИСАНИЕ КОДА

    • Портативность

    • Отказоустойчивость

    • Качество        кода

    • Оптимальность

    • Читаемость        кода (единый стиль, комментарии)

    • Отладка

Friday, 2 March, 12
ПРОЦЕСС РАЗРАБОТКИ
    • Анализ и сбор требований
    • Формирование спецификаций
    • Проектирование архитектуры
    • Дизайн
    • Реализация
    • Тестирование
    • Релиз
    • Поддержка



Friday, 2 March, 12
ТЕСТИРОВАНИЕ

    • до          1956 – ориентация на отладку

    • 1957            – 1978 – ориентация на демонстрацию

    • 1979            – 1982 – ориентация на сбой

    • 1983            – 1987 – ориентация на оценку

    • 1988            – 2000 – ориентация на предотвращение


Friday, 2 March, 12
ТИПЫ ТЕСТИРОВАНИЯ


    • Функциональное

          • Код, функции, классы   (“работает ли эта штука?”)

    • Нефункциональные

          • Архитектура, скорость, безопасность




Friday, 2 March, 12
СТОИМОСТЬ
               ИСПРАВЛЕНИЯ ОШИБКИ




Friday, 2 March, 12
ПРОЦЕСС РАЗРАБОТКИ
    • Анализ и сбор требований
    • Формирование спецификаций
    • Проектирование архитектуры
    • Дизайн
    • Реализация
    • Тестирование
    • Релиз
    • Поддержка



Friday, 2 March, 12
МЕТОДОЛОГИИ
                           РАЗРАБОТКИ

    • Водопад          (waterfall)

    • Гибкая          методология (agile)

    • Экстремальное           программирование (xp)

    • Scrum

    • Итеративная           разработка (iterative)


Friday, 2 March, 12
WATERFALL




Friday, 2 March, 12
AGILE




Friday, 2 March, 12
AGILE MANIFESTO


    • Люди            и отношения > процессы и инструменты

    • Работающий            продукт > документация

    • Взаимная           работа с клиентами > контракты и бумаги

    • Отзывчивость           к изменениям > следования плану



Friday, 2 March, 12
ЦЕННОСТИ
    • Совместная работа, парное программирование
    • Довольные клиенты
    • Принятие любых изменений на любых стадиях
    • Постоянство качества и скорости разработки
    • Постоянное тесное сотрудничество
    • Личное общение с клиентами
    • Простота
    • Само-организующиеся команды
    • Быстрая адаптация к изменениям



Friday, 2 March, 12
ЭКСТРЕМАЛЬНОЕ
                      ПРОГРАММИРОВАНИЕ




Friday, 2 March, 12
ОСНОВНЫЕ КОНЦЕПЦИИ
    • Короткий цикл разработки
      • Через тестирование и планирование
      • Заказчик всегда рядом
      • Парное программирование
    • Непрерывный (не дискретный) процесс
      • Непрерывная интеграция
      • Рефакторинг
      • Частые небольшие релизы
    • Общее понимание
      • Простота
      • Стандарты кодирования
      • Коллективное владение кодом


Friday, 2 March, 12
SCRUM




Friday, 2 March, 12
РОЛИ


    • Владелец        продукта

    • Команда         разработчиков

    • Scrum-мастер




Friday, 2 March, 12
ИТЕРАТИВНАЯ




Friday, 2 March, 12
Friday, 2 March, 12
ФОРМИРОВАНИЕ
                            КОМАНДЫ

    • 2-3-4           разработчика

    • ~1          дизайнер/верстальщик/иллюстратор/креативщик

    • Начало           10-недельного проекта (10 спринтов)

          • Предположительно, веб-сайт      / сервис



Friday, 2 March, 12
ФОРМИРОВАНИЕ
                         КОМАНДЫ
    • freetonik@gmail.com

    • Тема: команда        разработчиков

    • Содержание

          • Резюме

          • Ссылки     на все ваши работы, примеры кода, всё-всё

          • Всё, что   посчитаете нужным

Friday, 2 March, 12

Contenu connexe

Tendances

SQA Days 10: Фишки просветлённых тест-менеджеров
SQA Days 10: Фишки просветлённых тест-менеджеровSQA Days 10: Фишки просветлённых тест-менеджеров
SQA Days 10: Фишки просветлённых тест-менеджеровNatalya Rukol
 
Python test-automation
Python test-automationPython test-automation
Python test-automationCOMAQA.BY
 
Цикл безопасной разработки SDL
Цикл безопасной разработки SDLЦикл безопасной разработки SDL
Цикл безопасной разработки SDLAlex Babenko
 
Startup Class - Введение и использование SCRUM для командной работы
Startup Class - Введение и использование SCRUM для командной работыStartup Class - Введение и использование SCRUM для командной работы
Startup Class - Введение и использование SCRUM для командной работыVitaly Vlasov
 
Управление виртуальной командой аналитиков
Управление виртуальной командой аналитиковУправление виртуальной командой аналитиков
Управление виртуальной командой аналитиковSQALab
 
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникацийАлексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникацийScrumTrek
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016Roman Ivliev
 
качество продуктовой команды
качество продуктовой командыкачество продуктовой команды
качество продуктовой командыDmitriy Yefimenko
 
многогранная профессия тестировщика глазами с++ разработчика в примерах
многогранная профессия тестировщика глазами с++ разработчика в примерахмногогранная профессия тестировщика глазами с++ разработчика в примерах
многогранная профессия тестировщика глазами с++ разработчика в примерахCOMAQA.BY
 

Tendances (9)

SQA Days 10: Фишки просветлённых тест-менеджеров
SQA Days 10: Фишки просветлённых тест-менеджеровSQA Days 10: Фишки просветлённых тест-менеджеров
SQA Days 10: Фишки просветлённых тест-менеджеров
 
Python test-automation
Python test-automationPython test-automation
Python test-automation
 
Цикл безопасной разработки SDL
Цикл безопасной разработки SDLЦикл безопасной разработки SDL
Цикл безопасной разработки SDL
 
Startup Class - Введение и использование SCRUM для командной работы
Startup Class - Введение и использование SCRUM для командной работыStartup Class - Введение и использование SCRUM для командной работы
Startup Class - Введение и использование SCRUM для командной работы
 
Управление виртуальной командой аналитиков
Управление виртуальной командой аналитиковУправление виртуальной командой аналитиков
Управление виртуальной командой аналитиков
 
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникацийАлексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
Алексей Трошин. Менеджер не нужен: быстрые шаблоны правильных коммуникаций
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016
 
качество продуктовой команды
качество продуктовой командыкачество продуктовой команды
качество продуктовой команды
 
многогранная профессия тестировщика глазами с++ разработчика в примерах
многогранная профессия тестировщика глазами с++ разработчика в примерахмногогранная профессия тестировщика глазами с++ разработчика в примерах
многогранная профессия тестировщика глазами с++ разработчика в примерах
 

Similaire à Lecture 1

Управление требованиями VS Разработка требований. Принципы и инструменты
Управление требованиями VS Разработка требований. Принципы и инструментыУправление требованиями VS Разработка требований. Принципы и инструменты
Управление требованиями VS Разработка требований. Принципы и инструментыSQALab
 
методологии Agile, Scrum, Lean, BK
методологии Agile, Scrum, Lean, BKметодологии Agile, Scrum, Lean, BK
методологии Agile, Scrum, Lean, BKAlexey Braichuk
 
Точка кипения: проектирование крупных веб-систем
Точка кипения:  проектирование крупных веб-системТочка кипения:  проектирование крупных веб-систем
Точка кипения: проектирование крупных веб-системRoman Ivliev
 
Проектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-системПроектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-системTKConf
 
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10Alexander Kalouguine
 
Раздвоение тестирующей личности или эффективная организация параллельного тес...
Раздвоение тестирующей личности или эффективная организация параллельного тес...Раздвоение тестирующей личности или эффективная организация параллельного тес...
Раздвоение тестирующей личности или эффективная организация параллельного тес...SQALab
 
Алексей Шоркин. Нарезаем растущего слона на бифштексы
Алексей Шоркин. Нарезаем растущего слона на бифштексыАлексей Шоркин. Нарезаем растущего слона на бифштексы
Алексей Шоркин. Нарезаем растущего слона на бифштексыIT Spring
 
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБД
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБДКак использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБД
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБДAndrew Sovtsov
 
Организация хранения данных сейсморазведки и промысловой геофизики
Организация хранения данных сейсморазведки и промысловой геофизикиОрганизация хранения данных сейсморазведки и промысловой геофизики
Организация хранения данных сейсморазведки и промысловой геофизикиVsevolod Shabad
 
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработкиКак перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработкиAlexander Byndyu
 
Ideal analyst code (Software Engineering)
Ideal analyst code (Software Engineering)Ideal analyst code (Software Engineering)
Ideal analyst code (Software Engineering)Dmitry Bezuglyy
 
A3 анализ в скайпе
A3 анализ в скайпеA3 анализ в скайпе
A3 анализ в скайпеAlexey Ilyichev
 
Быстрое прототипирование системы управления БПЛА
Быстрое прототипирование системы управления БПЛАБыстрое прототипирование системы управления БПЛА
Быстрое прототипирование системы управления БПЛАCEE-SEC(R)
 
Послание аналитиков тестировщикам
Послание аналитиков тестировщикамПослание аналитиков тестировщикам
Послание аналитиков тестировщикамSQALab
 

Similaire à Lecture 1 (20)

Управление требованиями VS Разработка требований. Принципы и инструменты
Управление требованиями VS Разработка требований. Принципы и инструментыУправление требованиями VS Разработка требований. Принципы и инструменты
Управление требованиями VS Разработка требований. Принципы и инструменты
 
методологии Agile, Scrum, Lean, BK
методологии Agile, Scrum, Lean, BKметодологии Agile, Scrum, Lean, BK
методологии Agile, Scrum, Lean, BK
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Точка кипения: проектирование крупных веб-систем
Точка кипения:  проектирование крупных веб-системТочка кипения:  проектирование крупных веб-систем
Точка кипения: проектирование крупных веб-систем
 
Проектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-системПроектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-систем
 
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
 
Раздвоение тестирующей личности или эффективная организация параллельного тес...
Раздвоение тестирующей личности или эффективная организация параллельного тес...Раздвоение тестирующей личности или эффективная организация параллельного тес...
Раздвоение тестирующей личности или эффективная организация параллельного тес...
 
Алексей Шоркин. Нарезаем растущего слона на бифштексы
Алексей Шоркин. Нарезаем растущего слона на бифштексыАлексей Шоркин. Нарезаем растущего слона на бифштексы
Алексей Шоркин. Нарезаем растущего слона на бифштексы
 
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБД
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБДКак использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБД
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБД
 
Scrum Wars
Scrum WarsScrum Wars
Scrum Wars
 
Lovely scrum
Lovely scrumLovely scrum
Lovely scrum
 
Организация хранения данных сейсморазведки и промысловой геофизики
Организация хранения данных сейсморазведки и промысловой геофизикиОрганизация хранения данных сейсморазведки и промысловой геофизики
Организация хранения данных сейсморазведки и промысловой геофизики
 
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработкиКак перейти от проектного мышления к продуктовому. Опыт из заказной разработки
Как перейти от проектного мышления к продуктовому. Опыт из заказной разработки
 
Ideal analyst code (Software Engineering)
Ideal analyst code (Software Engineering)Ideal analyst code (Software Engineering)
Ideal analyst code (Software Engineering)
 
A3 анализ в скайпе
A3 анализ в скайпеA3 анализ в скайпе
A3 анализ в скайпе
 
Быстрое прототипирование системы управления БПЛА
Быстрое прототипирование системы управления БПЛАБыстрое прототипирование системы управления БПЛА
Быстрое прототипирование системы управления БПЛА
 
Послание аналитиков тестировщикам
Послание аналитиков тестировщикамПослание аналитиков тестировщикам
Послание аналитиков тестировщикам
 
Градус эффективности цод
Градус эффективности цодГрадус эффективности цод
Градус эффективности цод
 
Going to extreme
Going to extremeGoing to extreme
Going to extreme
 

Lecture 1

  • 1. SOFTWARE ENGINEERING Кратчайший курс Friday, 2 March, 12
  • 2. РАХИМ ДАВЛЕТКАЛИЕВ freetonik.com Friday, 2 March, 12
  • 5. • Сторонние проекты/заказы • Наш собственный продукт Friday, 2 March, 12
  • 6. Программист vs. разработчик Friday, 2 March, 12
  • 7. КАКОЙ ЯЗЫК ОБЯЗАН ЗНАТЬ КАЖДЫЙ РАЗРАБОТЧИК? Friday, 2 March, 12
  • 8. ХОРОШИЙ РАЗРАБОТЧИК: • Постоянно читает книги и изучает новое • Хорошо знает английский, говорит и читает на нём • Умеет письменно излагать свои мысли Friday, 2 March, 12
  • 9. ТЕНДЕНЦИИ • Уровень языков повышается • Все возвращается на сервер • Веб-разработка растёт • Кроссплатформенность – всё еще мечта Friday, 2 March, 12
  • 10. КРУПНЫЕ СИСТЕМЫ • Смесь разных языков и технологий • Длительные сроки разработки • Разные типы интерфейсов • Сложная бизнес-логика на сервере • Огромные объемы данных • Огромная нагрузка Friday, 2 March, 12
  • 11. СЛОЖНОСТИ • Координация: множество людей разных специализаций • Требования: множество заинтересованных сторон • Планирование Friday, 2 March, 12
  • 12. ПРОЦЕСС РАЗРАБОТКИ • Анализ и сбор требований • Формирование спецификаций • Проектирование архитектуры • Дизайн • Реализация • Тестирование • Релиз • Поддержка Friday, 2 March, 12
  • 13. ТРЕБОВАНИЕ • Функциональные • Что система должна делать? • Качественные • Ограничения дизайна ради определенного качества • Платформенные • Ограничения в платформах/технологиях • Процесса • Ограничения процесса разработки Friday, 2 March, 12
  • 14. ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ • Какие данные система должна принимать? • Какие данные система должна отдавать? • Какие данные система должна хранить? • Какие вычисления она должна производить? • Каково время выполнения и синхронизация этих аспектов? Friday, 2 March, 12
  • 15. КАЧЕСТВЕННЫЕ ТРЕБОВАНИЯ • Время отклика • Использование ресурсов • Читаемость • Доступность • Восстановление после ошибки Friday, 2 March, 12
  • 16. ПРЕЦЕДЕНТ (USE CASE) • Сценарий использования • Спецификация последовательных действий системы Friday, 2 March, 12
  • 18. ПРОЦЕСС РАЗРАБОТКИ • Анализ и сбор требований • Формирование спецификаций • Проектирование архитектуры • Дизайн • Реализация • Тестирование • Релиз • Поддержка Friday, 2 March, 12
  • 19. СПЕЦИФИКАЦИЯ • Формальное описание поведения системы • Когда пользователь нажмет кнопку ОК, контроль должен быть предыдущему окну, звук должен сигналировать об удачном завершении процесса. Friday, 2 March, 12
  • 20. ПРОЦЕСС РАЗРАБОТКИ • Анализ и сбор требований • Формирование спецификаций • Проектирование архитектуры • Дизайн • Реализация • Тестирование • Релиз • Поддержка Friday, 2 March, 12
  • 21. АРХИТЕКТУРА • Клиент-сервер • p2p • Монолитное приложение • Front end & back end • ... Friday, 2 March, 12
  • 22. ПРОЦЕСС РАЗРАБОТКИ • Анализ и сбор требований • Формирование спецификаций • Проектирование архитектуры • Дизайн • Реализация • Тестирование • Релиз • Поддержка Friday, 2 March, 12
  • 23. КОНЦЕПЦИИ ДИЗАЙНА ПО • Абстракция • Refinement (абстрактные модели -> структуры данных) • Модульность • Иерархия контроля • Структурное разделение • Структуры данных • Скрытие информации Friday, 2 March, 12
  • 24. АСПЕКТЫ ДИЗАЙНА ПО • Компактность • Расширяемость • Устойчивость к сбоям • Удобство поддержки • Модульность • Удобство переиспользования • Безопасность • Юзабилити Friday, 2 March, 12
  • 25. ПРОЦЕСС РАЗРАБОТКИ • Анализ и сбор требований • Формирование спецификаций • Проектирование архитектуры • Дизайн • Реализация • Тестирование • Релиз • Поддержка Friday, 2 March, 12
  • 26. НАПИСАНИЕ КОДА • Портативность • Отказоустойчивость • Качество кода • Оптимальность • Читаемость кода (единый стиль, комментарии) • Отладка Friday, 2 March, 12
  • 27. ПРОЦЕСС РАЗРАБОТКИ • Анализ и сбор требований • Формирование спецификаций • Проектирование архитектуры • Дизайн • Реализация • Тестирование • Релиз • Поддержка Friday, 2 March, 12
  • 28. ТЕСТИРОВАНИЕ • до 1956 – ориентация на отладку • 1957 – 1978 – ориентация на демонстрацию • 1979 – 1982 – ориентация на сбой • 1983 – 1987 – ориентация на оценку • 1988 – 2000 – ориентация на предотвращение Friday, 2 March, 12
  • 29. ТИПЫ ТЕСТИРОВАНИЯ • Функциональное • Код, функции, классы (“работает ли эта штука?”) • Нефункциональные • Архитектура, скорость, безопасность Friday, 2 March, 12
  • 30. СТОИМОСТЬ ИСПРАВЛЕНИЯ ОШИБКИ Friday, 2 March, 12
  • 31. ПРОЦЕСС РАЗРАБОТКИ • Анализ и сбор требований • Формирование спецификаций • Проектирование архитектуры • Дизайн • Реализация • Тестирование • Релиз • Поддержка Friday, 2 March, 12
  • 32. МЕТОДОЛОГИИ РАЗРАБОТКИ • Водопад (waterfall) • Гибкая методология (agile) • Экстремальное программирование (xp) • Scrum • Итеративная разработка (iterative) Friday, 2 March, 12
  • 35. AGILE MANIFESTO • Люди и отношения > процессы и инструменты • Работающий продукт > документация • Взаимная работа с клиентами > контракты и бумаги • Отзывчивость к изменениям > следования плану Friday, 2 March, 12
  • 36. ЦЕННОСТИ • Совместная работа, парное программирование • Довольные клиенты • Принятие любых изменений на любых стадиях • Постоянство качества и скорости разработки • Постоянное тесное сотрудничество • Личное общение с клиентами • Простота • Само-организующиеся команды • Быстрая адаптация к изменениям Friday, 2 March, 12
  • 37. ЭКСТРЕМАЛЬНОЕ ПРОГРАММИРОВАНИЕ Friday, 2 March, 12
  • 38. ОСНОВНЫЕ КОНЦЕПЦИИ • Короткий цикл разработки • Через тестирование и планирование • Заказчик всегда рядом • Парное программирование • Непрерывный (не дискретный) процесс • Непрерывная интеграция • Рефакторинг • Частые небольшие релизы • Общее понимание • Простота • Стандарты кодирования • Коллективное владение кодом Friday, 2 March, 12
  • 40. РОЛИ • Владелец продукта • Команда разработчиков • Scrum-мастер Friday, 2 March, 12
  • 43. ФОРМИРОВАНИЕ КОМАНДЫ • 2-3-4 разработчика • ~1 дизайнер/верстальщик/иллюстратор/креативщик • Начало 10-недельного проекта (10 спринтов) • Предположительно, веб-сайт / сервис Friday, 2 March, 12
  • 44. ФОРМИРОВАНИЕ КОМАНДЫ • freetonik@gmail.com • Тема: команда разработчиков • Содержание • Резюме • Ссылки на все ваши работы, примеры кода, всё-всё • Всё, что посчитаете нужным Friday, 2 March, 12