работа в крупной компании на примере banki.ru
TRANSCRIPT
РАБОТА В КРУПНОЙКОМПАНИИ НА ПРИМЕРЕ
ПЛАН ВЕБИНАРА• Кратко о компании
• Что представляет из себя технический департамент
• Используемые технологии
• Кратко об Agile
• Разработка и процессы (наш собственный Agile framework)
• Как мы отдыхаем2
• PHP разработчик более 5 лет
• 2 года в Banki.ru
• Работал в таких компаниях как
• Сертификаты
Афанасьев Юрий [email protected]
КТО МЫ ТАКИЕ
ОТДЕЛЫ• Новостная редакция
• ТВ-группа
• Информационно-аналитический отдел
• Направление интерактивных сервисов
• Модераторы народных рейтингов
• Отдел маркетинга
• И другие
9
ТЕХНИЧЕСКИЙ ДЕПАРТАМЕНТ
ОТДЕЛЫТЕХНИЧЕСКОГО ДЕПАРТАМЕНТА• 4 команды разработчиков
• 2 DevOps
• Отдел эксплуатации
• Отдел обеспечения качества
• Системные администраторы
• Технический директор13
ОТДЕЛ ЭКСПЛУАТАЦИИ• Деплой на бой (bamboo)
• Поддержка master ветки git в рабочем состоянии
• Поиск и исправление багов и проблем на боевых серверах
14
DEVOPS• Поддержка разработческой среды, тестового и боевого окружения
• Решение архитектурных вопросов
15
КОМАНДЫДеление по функционалу, а не по направлению
• Банковские продукты
• Компании и сущности
• Маркетинг
• Страхование16
СОСТАВ КОМАНД• 3 back-end разработчика (1 из них тимлид)
• 1-2 front-end разработчика
• 1 тестировщик
17
ПЛЮСЫ• Все члены команды (её направлений) в курсе текущих задач
• Возможность быстро проговорить любую интеграцию или проблему
• Возможность выработать удобный стиль работы на всех этапах задачи
18
МИНУСЫ• Архитектурные решения разных команд на всех направлениях могут кардинально отличаться
• Скудность знаний чужого функционала, а значит проблемы при интеграции
• Слабая связь между направлениями способствует дублированию кода
19
ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ
FRONT-END• AngularJS + Backbone.JS + jQuery
• Stylus (CSS препроцессоры)
• JS сборщики
• HTML5 + CSS3
23
ТЕХНОЛОГИИ• Percona (MySQL) + PostgreSQL
• LAMP/Nginx + php-fpm
• RabbitMQ
• Redis
24
ФРЕЙМВОРКИ
• Bitrix
• Yii
• Symfony
25
СХЕМА СЕРВЕРОВ
СИСТЕМА МОНИТОРИНГА
КРАТКО ОБ AGILE
AGILEПодход к созданию продуктов путём непрерывной быстрой поставки ценного рабочего функционала самоорганизованной командой профессионалов в сотрудничестве с
заказчиком
31
AGILE
32
МАНИФЕСТ• Люди и взаимодействие важнее процессов и инструментов
• Работающий продукт важнее исчерпывающей документации
• Сотрудничество с заказчиком важнее согласования условий контракта
• Готовность к изменениям важнее следования первоначальному плану
33
ПРИНЦИПЫ1. Наивысшим приоритетом для нас является удовлетворение потребностей заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения.
2. Изменение требований приветствуется, даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения для обеспечения заказчику конкурентного преимущества.
3. Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев.
4. На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе.
5. Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте условия, обеспечьте поддержку и полностью доверьтесь им.
6. Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри нее.
34
ПРИНЦИПЫ7. Работающий продукт — основной показатель прогресса.
8. Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно. Agile помогает наладить такой устойчивый процесс разработки.
9. Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта.
10.Простота — искусство минимизации лишней работы — крайне необходима.
11. Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд.
12. Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.
35
НЕ СЛЫШАЛИ ОБ AGILE?http://www.scrumguides.org/главный сайт о Scrum
http://agiledays.ruконференция об Agile, а также бесплатное видео
с прошлых конференций
36
РАЗРАБОТКА И ПРОЦЕССЫ(НАШ СОБСТВЕННЫЙ AGILE
FRAMEWORK)
STAND UP (SCRUM)Ежедневная встреча для синхронизации членов команды.
Каждый рассказывает о том…
• Что было сделано вчера
• С какими трудностями столкнулся
• Чем планирует заняться сегодня
38
СПРИНТЫОтрезок времени, за который выполняется определенный (ограниченный) список задач
Цель спринта - создание полноценного или частично законченного функционала для последующей демонстрации заказчику
40
JIRA (WORKFLOW)
41
CODE REVIEWПроверка исходного кода другим разработчиком с целью обнаружения ошибок, которые были не замечены на начальной фазе разработки
Машина времени в действии!
42
BURN DOWN CHART
44
DEMOДемонстрация результатов (задач) спринта всем заинтересованным лицам
45
RETROПодведение итогов прошедшего спринта с целью улучшения процесса разработки
Цель - определить плюсы и минусы прошедшего спринта
На основе голосования выбираем самые насущные минусы и стараемся придумать решения проблемам
46
КАК МЫ ОТДЫХАЕМ
ВОПРОСЫ?