30
Обзор курса Лучшие практики корпоративной разработки

Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Embed Size (px)

Citation preview

Page 1: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Обзор курсаЛучшие практики корпоративной разработки

 

Page 2: Лучшие практики корпоративной разработки. Лекция 0: обзор курса
Page 3: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Опыт работы

Ростовский НИИ Радиосвязи Auriga

Клинский институт охраны и условий труда

РИКРОП USETECH СКБ Контур

Page 4: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Опыт работы. ПроектыПроект Роль Где Технологии

Клиент-серверное приложение для обмена мгновенными сообщениями в локальной сети 1 Программист РНИИРС 4  Windows Forms, WinSock, multithreading, serialization

Интерфейс для работы с отсоединенными данными и синхронизацией с БД 1 Программист РНИИРС 4  Windows Forms, MS SQL Server 2005, ADO.NET, 

DevExpress, serializationБиблиотека многопоточной обработки цифрового телевизионного сигнала стандарта DVB в реальном времени

1 Программист РНИИРС 8  .net 3.5, Class library, multithreading

Программа-аналог игры MineSweeper 1 Программист 1  Windows Forms, разработка UserControlСайт-галерея для загрузки и хранения изображений пользователями 2 Программист, 

html-верстальщик Auriga 2  ASP.NET Web Forms, MS SQL Server 2008, ADO.NET

Программный инструмент для поддержки процесса взаимодействия компании с заказчиками, сбора данных о реализации обязательств между сторонами и формирования отчётов

15Программист, программист БД, html-верстальщик

Auriga 12  ASP.NET Web Forms, MS SQL Server 2008, ORM NHibernate, Clips (Expert system), NUnit API

ВТБ24 – Сервис распределенных банковских транзакций 30 Программист Auriga 15

КРОК Application Framework .NET, XML-XSD, MS SQL Server 2008, NUnit, взаимодействие с банковскими системами (Way4, Telebank, PPC, Profile, BISquit) via Sonic ESB GateWay

Росстат – Таблицы «затраты-выпуск» 30Программист, XAML-верстальщик, программист БД

Auriga 14 КРОК Application Framework 3.x XFW3 (на основе XAML), WPF, SQL Server 2008 R2, VS tests

OLFA-concept – трейдинговая платформа 10Программист, XAML-верстальщик

Auriga 4 Silverlight 4, Microsoft Prism 4, MVVM, sockets, multithreading

ФСО – ИС мониторинга, ситуационного анализа и прогнозирования внутреполитических процессов       20

Программист, XAML-верстТеальщик

Auriga 6 MVC 3 + Silverlight 4, MVVM, Telerik, WCF, Server 2008 R2, ADO.NET

Page 5: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

АС «Труд-Эксперт .NET» 1000

Архитектор, scrum-мастер, программист, программист БД, XAML-верстальщик, DevOps, лидер команды

КИОУТ 102 WPF, Prism 4, Unity, MVVM, WCF, SQL Server 2008 R2, ADO.NET EF 4.0, t4-templates

Программа просмотра и редактирования карты земельных участков 8

Программист, XAML-верстальщик

РИКРОП 6 .net 4.5, async/await, wpf, mvvm, Rikrop.Core, MigraDoc, MSTest, Moq

TimeTracker учёта рабочего времени сотрудников 30Программист, XAML-верстальщик, архитектор

РИКРОП 10.net 4.5, async/await, wpf, mvvm, Rikrop.Core, entity framework 5.0 code first, active directory, microsoft sql server 2012, wcf, nunit, Telerik .NET UI Controls, JustMock

ParquetDesign программа проектирования и расчёта паркетных покрытий 20

Программист, архитектор, аналитик, лидер команды

РИКРОП 10 Rikrop.Core, .net 4.5, async/await, wpf, mvvm

Программа для учёта и планирования промо-акций Российской сети супермаркетов 50 Программист, 

программист js Usetech 12 Asp.net mvc, angularjs, entity framework 5, Microsoft sql server, git

CRM-система для оператора медиа рекламного рынка 10000Программист, XAML-верстальщик

Usetech 50 Wpf, mvvm, Prism 4, tfs

Back-end приложения для поиска товаров в магазинах и сравнения цен 50 Архитектор, 

консультант РИКРОП 10 Asp.net mvc web api 2, entity framework 6, Microsoft sql server, svn

Интеграционная шина для Диадок 500 Программист СКБ Контур 30 Cassandra, RabbitMQ, asp.net mvc, MariaDB, git

Page 6: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Тест Джоэла1. Пользуетесь ли вы системой контроля версий?2. Можете ли вы собрать продукт за один шаг?3. Выполняете ли вы ежедневные билды?4. Используете ли вы bug tracker?5. Исправляете ли вы ошибки перед написанием нового кода?6. Есть ли у вас актуальный план работ?7. Есть ли у вас спецификация?8. Предоставлены ли вашим программистам спокойные условия для работы?9. Используете ли вы новейшее дорогое оборудование?10. Есть ли у вас тестировщики?11. Пишут ли кандидаты на работу код во время собеседования?12. Проводите ли вы коридорное тестирование удобства использования 

программ? 

Page 7: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Разработка ПО

Требования Проектирование  Управление инфраструктурой разработки

Программирование Тестирование  Управление качеством 

Сопровождение  Управление разработкой  Процессы разработки

Page 8: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Жизненный цикл. WaterfallПлюсы

• Требования утверждаются один раз и остаются стабильными

• Удобный менеджмент по фазам• Легкость составления плана, диаграмма Ганта• Управление ресурсами по фазам• Приём проекта заказчиком по утвержденным заранее 

требованиям

Минусы• Требования? Один раз?? Так не бывает!• У Заказчика нет возможности ознакомиться с 

системой на этапе прототипа

• У Пользователя нет возможности начать пользоваться продуктом до окончания разработки

• Требуется постоянный контроль со стороны менеджера

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

Утверждение требований

Проектирование Реализация Тестирование Поддержка

Page 9: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Жизненный цикл. Итеративная модель

Плюсы• Адаптивность к изменению требований

• Обратная связь от пользователей

• Нет необходимости в строго согласованных требованиях

• Непрерывное итеративное тестирование

• Акцент на наиболее важном для пользователей функционале

• Равномерная загрузка команды

• Возможность построения разных моделей оплаты

Минусы• Отсутствие понимания конечной цели

• Проблемы с архитектурой из-за изменяющихся требований

• Большая вовлеченность заказчика

• Проблемы при приёмке результата

• Усложнение процесса разработки

• Размытие deadline

Page 10: Лучшие практики корпоративной разработки. Лекция 0: обзор курса
Page 11: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Agile-манифест• Люди и взаимодействие важнее процессов и инструментов• Работающий продукт важнее исчерпывающей документации• Сотрудничество с заказчиком важнее согласования условий контракта• Реагирование на изменения важнее следования первоначальному плану 

• Командная работа важнее людей и взаимодействия• Бизнес-ценность важнее работающего продукта• Партнёрские отношения важнее сотрудничества• Готовность к изменениям важнее реагирования на изменения

Page 12: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Scrum

Page 13: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Kanban

Page 14: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Starban

Page 15: Лучшие практики корпоративной разработки. Лекция 0: обзор курса
Page 16: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Требования к ПО

оценка

декомпозиция

приоритезация

документирование

анализ

проверка (валидация)

сбор

Page 17: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Требования к ПОХарактеристики требований:

• Единичность• Атомарность• Завершенность• Последовательность• Отслеживаемость

• Актуальность

• Выполнимость• Понятность• Проверяемость• Обязательность• Полнота

Page 18: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Архитектура ПО

Page 19: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Паттерны проектирования

Page 20: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

REST services

Page 21: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Высоконагруженные системы

• CAP-теорема• хранение данных• отказоустойчивость• распределение нагрузки• согласованность данных

Page 22: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Тестирование

Page 23: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Тестирование

Построение процесса тестирования:• разработка плана тестирования• разработка тестовых сценариев• автоматизация проверки тестовых сценариев• автоматизация фиксации результатов проверки• автоматизация доставки приложения пользователям

Page 24: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Автоматизация доставки

Page 25: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Системы контрля версий

Page 26: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

VCS. Модели ветвления

• ветка под каждый релиз• ветка под каждую команду• ветка под каждую feature

• gitflow

Page 27: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Доставка

Page 28: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Доставка и микросервисы

Page 29: Лучшие практики корпоративной разработки. Лекция 0: обзор курса

Мониторинг