С некоторым упрощением примером гибкой методологии можно назвать Time & Materials — это: когда специалист или специалисты, работающие на проекте выполняют поставленные задачи и учитывают все отработанное время, которое, как правило, тарифицируется по часовому или дневному тарифу (человеко-часы или человеко-дни). Как развитие методологии T&M мы используем подход Retainer (выделенная команда). По сути это тот же аутстаффинг, но с управлением, тестированием и главное — ответственностью исполнителя.
Гибкие методологии подходят для проектов, где необходимо быстро протестировать гипотезы и запустить MVP продукта. Для запуска, например, SCRUM на старте проекта создается небольшая и гибкая команда из специалистов заказчика и исполнителя. Общий состав команды, как правило, 7-10 человек. Scrum-подход делит рабочий процесс на равные спринты – обычно это периоды от недели до месяца, в зависимости от проекта и команды. Перед спринтом формулируются задачи на данный спринт, в конце – обсуждаются результаты, а команда начинает новый спринт. Спринты очень удобно сравнивать между собой, что позволяет управлять эффективностью работы.
Менее гибкий поэтапный подход планирования проекта от А до Я с обязательным документированием и жёсткой фиксацией ТЗ. Такой подход хорош, когда заказчик заранее знает результат, на который он должен выйти, и совместно с исполнителями просчитал, как его поэтапно достичь. Залог успеха при waterfall-подходе – грамотное ТЗ. Как правило, на ТЗ должно быть заложено не менее 20% бюджета, а детальное ТЗ требует участия нескольких высококвалифированных специалистов:
Но существуют проекты с очень амбициозными целями, где есть примерное понимание, что в итоге должно получиться, но процесс достижения еще не ясен. Зачастую это крупные и очень крупные проекты. Создать детальное техническое задание не получится, прежде всего потому что бизнес меняется и под него будут меняться требования проекта. Однако, одна только методика SCRUM тоже работать не будет, поскольку нужно соблюдать формальные процедуры. Поэтому в таких проектах применимы мутации. Сверху - формальный проектный подход (с проектными комитетами, длинными цепочками согласований и т. д.), а снизу команда разработчиков работает по гибкой методологии Scrum. Такой подход и называется Scaled Agile Framework. Он позволяет соблюсти сверху все формальные процедуры, а команде внедренцев гибко и поэтапно реализовать проект. Причем, Scaled Agile Framework - не единственная методология, использующая микс и гибких (внизу, на уровне команды) и жестких (на уровне управления) методологий.
Выделение функционала MVP
Ежедневные скрам-встречи
Подключение бизнес-заказчика к скрам-встречам не реже, чем несколько раз в неделю и чаще
Постановка задач в JIRA
Совместная работа в GIT
Постоянное тестирование
Встречи по обзору спринта
Ведение журнала продукта, журнала спринта и графика спринта
Руководитель проекта выступает в роли скрам-мастера
Со всеми специалистами на проекте подписывается проектный NDA
Роли | Артефакты | Процессы | ||
---|---|---|---|---|
Владелец продукта | Беклог продукта | Планирование спринта | ||
Скрам-мастер | Беклог спринта | Обзор спринта | ||
Команда | Инкремент продукта | Ретроспектива | ||
|
|
Скрам-матинг | ||
|
|
Спринт |
В связи с текущей эпидемиологической обстановкой RDN Group использует комбинированную модель - работу в офисе и удаленные рабочие места.
Наши специалисты по безопасности помогают удалённым сотрудникам администрировать и правильно настраивать операционную систему с точки зрения производительности, безопасности и оптимальности рабочего процесса.
Мы применяем уникальный рабочий процесс, который допускает работу с чувствительными данными только внутри инфраструктуры RDN, что достигается с помощью создания виртуальных рабочих мест, защищаемых не только классическими средствами, но так же и системами обнаружения и предотвращения вторжений, что позволяет однозначно идентифицировать все подключения к таким рабочим местам, а также разграничить доступ к рабочим наборам данных согласно политике безопасности организации.
Виды мотивации:
В компании применяется:
В компании при работе с GIT используется подход Git Flow.
Git Flow упрощает и упорядочивает работу с ветками. Для каждого вида работы отводится определенная ветка. В проектах выделяют следующие ветки: master, develop, feature, hotfix, release и dev_test.
Стандартная схема веток:
Схема веток используемая в компании:
dev_test содержит все фичи/фиксы для их тестирования на тестовом сервере.
Рекомендуем использовать визуальный клиент для работы с GIT: SmartGit
Перед отправкой ветки, уточняются все нюансы у ведущего разработчика на проекте. Для отправки ветки на тест / прод мержится ветка в dev_test / master (см. далее). После чего осуществляется вход на сервер и выполнение команды “git pull”. Компания так же использует Bitbucket Pipelines. Если pipelines настроен на проекте, то после отправки ветки, сервер автоматически заберет все изменения.
После добавления Git репозитория, настраивается Git Flow. При необходимости (или на проекте используются другие настройки) настроииваются поля под проект).
Первым делом необходимо убедиться, что ветка dev_test актуальная. Выполняется команда pull при необходимости. Если видно, что в ветке имеются коммиты для отправки, и коммиты для скачивания, рекомендуем удаляется ветка локально, и с заново скачивается. Далее осуществляется переход на ветку dev_test, осуществляется выбор ветки, которой необходимо отправить на тест, Если произошел конфликт при слиянии, осуществляется переход в IDE (прим. PHPStorm) и исправляются все конфликты. После отправляется коммит на тест.
Завершение фичи:
Выбираются необходимые настройки (обязательно указывать опцию suqash) и завершить ветку. Ветка попадет в ветку develop. После чего необходимо выпустить релиз. Ветка с фичей должна быть удалена после ее завершения. Создается релиз из develop, и он завершается.
Завершение фикса:
В ветке, которую необходимо завершить, выбирается Finish hotfix., выполняются настройки в появившемся окне и нажать Finish. Ветка попадет в develop и master.
Решения
Монолит, микросервисы, системные утилиты
Базы данных
PostgreSQL, MySQL, MS SQL Server, SQLite, Redis, OOP, Design Patterns, микросервисы, высоконагруженные системы, CQRS
Контейнеры
Docker, Docker Compose
Dev-окружение
GitHub, Gitlab, BitBucket
Базы данных
SQL, PostgreSQL, MySQL, MS SQL Server, SQLite, MariaDB, Redis, Consul, MongoDB, Oracle, Tarantool, Neo4j, Amazon Redshift, Cassandra, DB2, HBase, NoSQL, Liquibase, FlyWay, HazelCast, Caffeine, Elastic, Sphinx
Контейнеры
Docker, Docker Compose
Языки программирования
Java, Kotlin, Groovy, Scala
Фреймворки
Spring (Core, MVC, Security, Data, Batch, Boot, AOP, Integration, Cloud), Hibernate
Десктоп
JavaFX, Swing
Frontend (fullstack)
HTML/CSS, Bootstrap, AJAX, JSP, JavaScript, jQuery, Apache Tiles, JSTL, Thymeleaf
DataBase
mySQL, postgreSQL, Redis, MongoDB, Oracle
Frameworks
Symfony, Laravel, Yii, Phalcon, CakePHP, Zend, Codeigniter, FuelPHP, PHPixie, Aure, Flight, Siler, Medoo, Slim, Lumen, Silex, Fat-Free, Flight
CMS&Platforms
Bitrix, OpenCart, WooCommerce (WordPress), Drupal Commerce, Modx, OROPlatform, Vanilo
Платформы
.NET Framework, .NET Core
Веб, backend
ASP.NET MVC, ASP.NET WebAPI, ASP.NET Core
Десктоп
WinForms, WPF, UWP, Avalonia
Управление данными
ADO.NET, Entity Framework, Entity Framework Core, Dapper, NHibernate
DataBase
PostgreSQL, MySQL, MongoDB, Redis, Tarantool, Neo4j, Amazon Redshift, Cassandra, DB2, HBase, NoSQL
Frameworks
Django, Flask, Scrapy, Tornado, AioHTTP, web2py, Bottle, CherryPy, Pandas, TensorFlow, Keras, Celery, Pygame, Sanic
Platforms
Ikaaro, Mezzanine, Kotti, Merengue, Kpax, Mediacore video CMS, Wagtail, MoinMoin, Quokka, Plone, Nive CMS, Pyplate, Pinax, Skeletonz
Базы данных
PostgreSQL, MySQL, MS SQL Server, SQLite, Redis
Решения
Управление оборудованием, системные утилиты, низкоуровневая разработка, монолит, микросервисы, desktop-приложения
Стандарт
С++98, С++ 11, С++ 14
Service Discovery
Consul
Контейнеры
Docker, Docker Compose
Очереди
Kafka, RabbitMQ, NATS 2.0 (nats-streaming)
Data Base
PostgreSQL, MySQL, MariaDB, Redis, Consul, MongoDB
Библиотеки
Go-micro, gorilla web toolkit, chi, goconvey, mockery, golang-migrate, sqlx, uber-go, logrus
Решения
Корпоративные сайты, CRM, ERP, Доставка, Маркетплейсы, Агрегаторы, Тендерные площадки, Краудфандинг, краудинвестинг, кредитование, страхование компании, медицина (телемедицина)
Отрасли
Ритейл, Медицина, Банки
Услуги
Проектирование архитектуры, Аудит, Разработка, Консалтинг
Технологии
JavaScript, TypeScript, HTML 5, CSS 3, LESS/SASS/SCSS
Библиотеки/фреймворки
Angular 5 – 9, (NgRx), React (Redux, MobX, Next.js), VueJS (Vuex, Nuxt.js), NodeJS (Express), React Native, Electron, GraphQL (Apollo)
Dev-окружение
GitHub, Gitlab, BitBucket, npm, yarn, webpack, gulp, Sketch, Figma, Zeplin, Avocode
Android
Kotlin, Java, Rx, Coroutines
iOS
Swift, Objective-C, Rx
Multiplatform
Flutter, ReactNative, Xamarin
Device
SmartWatch, SmartTV, ОнлайнКасса, Phone, Tablet
Web Front
Selenium, Java — JUnit, TestNG, Selenide, Selenoid, Python — RobotFramework, Pytest, Behave, JS — Jasmine, Protractor, C# – Nunit
Mobile
Espresso, Appium, XCTest
Web API
Java — RestAssured, Python — Requests, RobotFramework Desktop Ranorex, TestComplete, Winium
Выявление и анализ требований
Применение различных методик выявления требований (интервью, анкетирование, анализ документации, конкурентный анализ, “работа в полях”). Разработка концепции и видения продукта. Customer Development
Описание бизнес-процессов и пользовательских сценариев
UML, BPMN, IDEF0, EPC, Use Cases, User Stories
Архитектура и базы данных
Проработка логических моделей, ERD, SQL запросы (MySQL, PostgreSQL, Oracle и т.п.), нереляционные БД (MongoDB и т.п.)
Решения
Проектирование пользовательских интерфейсов (mobile iOS, Android, Web), создание интерактивных прототипов, изучение и проработка сценариев поведения пользователей. Проведение исследований для получения аналитических данных, выявление и решение проблем. Проверка, обоснование и защита гипотез. 3D-моделирование и motion-дизайн. Контроль качества на этапе разработки.
Технологии
Sketch, Figma, Adobe (Photoshop, Illustrator, After Effects), Principle, Cinema 4D, inVision, Marvel, Avocode, Zeplin
Инфраструктура
Bare metal, AWS, Azure, DO, Proxmox, VmWare
Конфигурация
Ansible, Terraform, Vagrant
CI/CD
Gitlab, Jenkins, Teamcity
Docker
Kubernetes
Базы данных
PostgreSQL, MySQL, MongoDB, Redis
Решения
Проведение комплексного тестирования web-, desktop- и mobile-приложений. Проведение end-to-end тестирования, API-тестирования, интеграционного тестирования. Составление тестовой документации (чек-листы, тест-кейсы, тест-планы) с применением техник тест-дизайна. Проведение аудита качества приложения и аудита процессов. Контроль качества на всех этапах разработки приложения.
Работа с базами данных
MSSQL, MySQL, PostgreSQL, Oracle DB
Направления
Предиктивная аналитика, обработка текстов (NLP), компьютерное зрение (Computer vision, CV) и обработка изображений, обнаружение аномалий.
Инструменты построения моделей и алгоритмов
PyTorch, TensorFlow, Keras, MxNet, Scikit-Learn, OpenCV, OpenVINO, DialogFlow
Инструменты подготовки данных
SQL, Spark, Pandas
Инструменты инфраструктуры
AWS (SNS, SQS, Kafka, Lambda, EC2, EMR, ELB, ASG, Kinesis, CloudWatch, S3, RDS, CloudFormation, etc), Terraform, Chef, HopsWorks, ELK, Grafana, Sumologic, New Relic