Содержание
- Частоты LTE Band 1 / 3 / 7 / 8 / 20 / 40. Бэнды LTE в мире
- Что такое бэнд в сотовых сетях?
- Таблица всех бэндов LTE/4G
- Кратко о методологиях разработки ПО: Waterfall, Lean и Feature Driven Development
- Waterfall
- дуплекс, полудуплекс, симплекс
- Как подключить Floppy дисковод к компьютеру
- Lean
- Как работали флоппи дисководы
- Feature Driven Development
- Разработка общей модели (Develop an Overall Model)
- Создание списка свойств (Build a Feature List)
- Планирование по свойствам (Plan by Feature)
- Технический дизайн свойства (Design by Feature)
- Реализация свойства (Build by Feature)

Однако есть и недостатки. Клиенты часто не знают, чего они действительно хотят, пока не взглянут на прототип. А по Waterfall нужно определять все требования заранее, поэтому есть риск что-то упустить. Исследование процесса разработки сайта компании Ericsson AB показало, что каскадная модель привела к путанице, и 26% изначальных требований оказались бесполезными.
Частоты LTE Band 1 / 3 / 7 / 8 / 20 / 40. Бэнды LTE в мире
Сотовые операторы используют различные диапазоны частот для «вещания» мобильного сигнала. Поскольку радиочастоты — это ограниченный ресурс, их распределением среди телекоммуникационных компаний занимаются государственные органы.
Исторически сложилось, что в разных странах и регионах мира для сотовой связи используются разные частотные диапазоны. При этом мобильные устройства вовсе не являются «всеядными»: необходимо, чтобы ваш модем или смартфон поддерживал частоты, используемые оператором.
Консорциум 3GPP, разрабатывающий стандарты мобильных коммуникаций, выпускает спецификации, в которых в том числе описаны все допустимые диапазоны частот. Другими словами, если оператор решит самопроизвольно использовать диапазон, не описанный в стандартах 3GPP, то ни один 4G-модем в мире не сможет подключиться к его мобильной сети!
Что такое бэнд в сотовых сетях?
Каждый допустимый для использования диапазон называется «бэндом» (от англ. band). Однако понятие бэнда несколько шире, чем просто набор разрешенных частот. Фактически каждый бэнд является стандартом, который определяет набор параметров:
- Номер бэнда. Спецификации сотовых сетей UMTS и LTE определяют порядковые номера бэндов. Во времена GSM-сетей порядковой нумерации не существовало, поэтому для них обычно указываются эквивалентные номера бэндов LTE;
- Диапазон частот. В распоряжении операторов имеются определенные участки спектра, которые применяются для работы мобильных сетей. Диапазон частот — это основная характеристика бэнда;
- Тип дуплекса. Все сотовые сети разделяются на два типа: с частотным разделением каналов (Frequency Division Duplex — FDD) и с временным разделением (Time Division Duplex — TDD). Стандарты FDD используют разные диапазоны частот для отправки и приема данных, в то время как сотовые сети TDD используют один и тот же диапазон, однако осуществляют прием и передачу поочередно. Некоторые бэнды выделены для использования в качестве дополнительных нисходящих каналов в режиме агрегации частот (SDL — Supplemental Downlink);
- Радиочастотный разнос. Разница между частотой приема и передачи (актуально только для бэндов FDD);
- Ширина каналов. Допустимая ширина каналов для каждого бэнда. В распоряжении одного оператора может быть один или несколько каналов, выделенных государством.
Таблица всех бэндов LTE/4G
Ниже приведена таблица всех бэндов LTE, определяемых текущими спецификациями консорциума 3GPP. Зеленым выделены бэнды, используемые в России. Узнать подробнее об отечественных сотовых сетях можно в нашей отдельной статье: Что такое LTE Band 3, Band 7, Band 20? Бэнды LTE в России.
Кратко о методологиях разработки ПО: Waterfall, Lean и Feature Driven Development
В нашем прошлом материале мы писали о методологиях разработки программного обеспечения, которые помогают оптимизировать рабочие процессы. Тогда речь шла о Scrum, канбан и экстремальном программировании. Сегодня мы расскажем о Waterfall, FDD и Lean — оценим плюсы и минусы подходов и взглянем на опыт организаций, которые их используют, чтобы помочь вашим компаниям оптимизировать процессы.

/ Flickr / Hamza Butt / CC
Waterfall
Waterfall, или каскадная модель, — традиционная методология, которая существует с 1970 года. В ней разработку проекта разбивают на этапы: от анализа системных требований до выпуска продукта.
дуплекс, полудуплекс, симплекс
Каждый шаг — отдельная фаза разработки ПО, и команда должна завершить одну фазу, прежде чем переходить к следующей. В «чистой» реализации Waterfall возвращаться на предыдущий этап запрещено — можно «плыть только по течению», чтобы пройти полный цикл разработки. Пользователи Quora сравнивают эту модель с поездом, который движется от станции к станции и не может повернуть назад.
Изначально автор Waterfall Винстон Ройс (Winston Royce) привел каскадную модель как пример неэффективного способа разработки программного обеспечения, который ведет к ошибкам и выпуску некачественных продуктов. Однако потом в своей статье он довел методологию «до ума», отметив обратные связи и переходы от тестирования к написанию кода и др.
По данным исследования PMI, 12% компаний используют методологию Waterfall на постоянной основе, а 40% респондентов утверждают, что часто к ней обращаются. А по данным LiquidPlanner, каскадную модель используют 25% организаций.
Количество этапов в Waterfall варьируется от компании к компании, но общий подход выглядит следующим образом:
- Создание концепции. Первая фаза жизненного цикла разработки ПО (SDLC) включает в себя анализ затрат и результатов и оценку масштабов проекта.
- Подготовка. Набор команды, определение целей и задач.
- Анализ. Изучение объема работ и требований.
- Дизайн. Создание прототипа и согласование его с заказчиком.
- Разработка/написание кода. Создание ПО на основе утвержденного прототипа.
- Тестирование. Готовый продукт тестируют.
- Реализация. Продукт выходит на рынок.
- Техническое обслуживание. Устранение выявленных недочетов и поддержка.
Кроме того, модель подразумевает документирование каждого этапа. Это помогает создавать базу для последующих проектов. Также большое количество отчетности позволяет в любой момент показать заказчику или руководству, на какой стадии находится продукт.
Однако есть и недостатки. Клиенты часто не знают, чего они действительно хотят, пока не взглянут на прототип. А по Waterfall нужно определять все требования заранее, поэтому есть риск что-то упустить. Исследование процесса разработки сайта компании Ericsson AB показало, что каскадная модель привела к путанице, и 26% изначальных требований оказались бесполезными.
Однако главный недостаток Waterfall — внесение изменений. Продукт тестируют в конце жизненного цикла, и может быть слишком поздно, чтобы что-то править. Именно стоимость внесения изменений побудила компанию Toyota задуматься о переходе на другую методологию разработки.
Как подключить Floppy дисковод к компьютеру
По словам Сатоси Исии (Satoshi Ishii), главного руководителя проектов компании, исправление дефектов, обнаруженных после производства, обходится в 1000–10000 раз дороже. Поэтому в Toyota решили отказаться от Waterfall и перейти к Lean, который мы рассмотрим далее.
Lean
Термин означает «бережливая разработка». Его корни уходят глубоко в историю компании Toyota и её подходов к решению задач. В компании вносят только те изменения, которые приносят пользу, требуют минимум затрат и отнимают не более 30% запланированного времени. Это помогло японской компании научиться переключать конвейеры на производство другой модели за считаные часы, в то время как другим автопроизводителям требовались недели.
Применили методологию Lean для разработки Мэри (Mary Poppendieck) и Том Поппендик (Tom Poppendieck). Они написали книгу «Lean Software Development». Дополнительную информацию также можно найти на их сайте, посвящённом Lean.
По данным исследования PMI, 8% компаний постоянно используют принципы Lean, а 26% часто к ним обращаются. Принципы Lean:
- Устранение лишнего: того, что не приносит пользы.
- Упор на обучение: цикличная разработка, обратная связь с клиентом.
- Решения принимаются на основе фактов, а не прогнозов.
- Целостность во всем: от информирования заказчика до рефакторинга.
- Полномасштабное видение: важно оценивать проект как целое, а не по частям.
Как работали флоппи дисководы
При этом, когда команда следует принципам бережливой разработки, она не просто выполняет задачи, а стремится сделать продукт с наименьшим количеством ошибок. В своём исследовании компания ВВС обнаружила, Lean повышает скорость разработки ПО на 37% и снижает количество багов на 24%.
Также, согласно исследованию Lean Business Report, в числе десяти преимуществ подхода указано снижение стоимости проектов — 27% IT-компаний уменьшили затраты за счет внедрения принципов Lean.
Однако они подходят не всем. Команда GlobalLuxSoft отмечает, что бережливую разработку стоит применять, только если к проекту подключены опытные разработчики, так как обучение на ходу оказывается невозможным и ставит создание продукта под угрозу.
Все принимаемые решения должны подкрепляться аналитическими данными и результатами мониторинга процессов, иначе команда рискует погрузиться в слишком большое количество изменений и забыть о главной цели проекта. Здесь можно обратиться к опыту Toyota: жесткий контроль со стороны не позволяет разработчикам отклоняться от приоритетных задач.

/ Flickr / Sebastian Sikora / CC
Feature Driven Development
Feature driven development (FDD) — методология, которая объединяет лучшие практики и сосредотачивает внимание разработчиков на функциональных элементах (features), полезных с точки зрения клиента. По этой ссылке можно найти примерную схему алгоритма разработки по FDD. Согласно исследованиям, 11% компаний постоянно используют Feature Driven Development, а 31% прибегает к использованию этой методологии время от времени.
Создатель FDD — Джефф де Лука (Jeff De Luca), впервые предложил методологию в 1997 году, когда искал оптимальное решение по разработке программного обеспечения для банка в Сингапуре. Тогда он предоставил комбинацию из 5 процессов:
- Разработка общей модели. Команда разработчиков делится на группы создаёт модели для отдельных задач. Затем выбирается одна из предложенных моделей или их сочетание.
- Создание списка функций. Когда команда разработала общую модель, она определяет полезные для клиента функции.
- Планирование. Здесь важно учитывать нагрузку на группу, риски и другие аспекты, чтобы предотвратить возникновение критических проблем.
- Дизайн и разработка. На основе данных первого процесса, менеджер проекта выбирает группу функций, которые команда должна реализовать за определённый срок.
- Реализация. После того как команда разработала и протестировала код и модули, она приступает к созданию ПО. На этот и предыдущий этап уходит 75% усилий команды разработчиков.
Однако есть и плюсы. Постоянное составление отчетов о проделанной работе на всех уровнях помогает отслеживать прогресс и результаты. Это позволяет регулярно обновлять проект, выявлять ошибки и предоставлять клиенту информацию в любое время. А один из резидентов Stack Overflow утверждает, что главный плюс FDD — возможность в любой момент оценить отстаёт ли проект от графика или продвигается быстрее.
Как уже было отмечено, FDD используется в масштабных проектах, поскольку на первом этапе ведётся разработка общей модели, позволяющей разобраться в продукте. Это же свойство помогает привлекать к работе новых разработчиков. При этом более глубокое понимание проектных требований и ожиданий клиента снижает риск нежелательных «сюрпризов».
P.S. О чем еще мы пишем в нашем корпоративном блоге:
- Управление ИТ-проектами – 5 вызовов и их преодоление
- Управление изменениями – о целях процесса и его внедренииТоп-10 самых популярных вопросов при внедрении ServiceNow
- Как создать и начать использовать каталог услуг (Service Catalog)
- Как сделать ITIL более клиентоориентированной
Разработка общей модели (Develop an Overall Model)
Как выразился автор методологии Джеф Делюка (Jeff Deluca — http://www.jeffdeluca.com), общая модель – больше набросок или очертание, нежели детальное содержание. Однако чтобы получить эту модель, недостаточно просто требований к проекту. Модель – это видение проекта, основанное на результатах предварительных исследований. Спасибо Луису Розенфельду (Louis Rosenfeld — http://louisrosenfeld.com) – мы знаем, насколько важна роль информационной архитектуры при веб-разработке. На этапе общей модели у нас должны быть – анализ целевой аудитории, анализ контента и контекста его использования, структура контента, включая метаданные и тезаурус. Должен быть документ, описывающий принципы пользовательского интерфейса, список используемых UX-компонентов, описание их свойств и поведения.

Рис.1. Пирамида информационной архитектуры
В данном подходе подразумевается, чтомы приступаем кразработке, имея лишь наброски системы, которыепо мере разработки обрастают деталями. Таким образом, детальные каркасы (wireframes) будут разработаны входе создания соответствующих свойств (features) или, другими словами, частей проекта. Однако на стадии общей модели таки потребуются «сырые» каркасы основных интерфейсов и предварительная карта сайта.
Все выше описанное –сопутствующие документы. Основной результат этапа–модель домена (Domain model). Это статическая UML диаграмма, включающая все определенные к данному моменту логические объекты проекта и их взаимодействие (объект является частью другого объекта, объект расширяет другой объект и т.д.).
Создание списка свойств (Build a Feature List)
Не думаю, что здесь мне стоит вдаваться вподробности. Большинствоиз вас использует методику SCRUM, а список свойств в FDD – то же самое, что и product backlog в SCRUM. Разве что стоит еще раз напомнить: при создании списка следует оперировать именно целями и подцелями, но не задачами.
Планирование по свойствам (Plan by Feature)
Все бы хорошо, но как же оценить время разработки свойств проекта, когда детали туманны. Связанные задачи для разработчиков будут предельно ясны только тогда, когда будут выполнены все предварительные работы по данному свойству. Как же планировать? И тут на помощь приходит Story Point Estimation. Мы оцениваем свойства не в человеко-днях, а в абстрактных баллах по мере сложности свойства. Из всего списка предлагается выбрать свойство минимальной сложности и присвоить ему 2 балла сложности. Рекомендуется использовать экспоненциальную шкалу, например: 1, 2, 3, 5, 8. Тогда спрашивается, почему мы не назначили 1 самому пустяковому свойству. На всякий случай. Список свойств огромный и с первого взгляда маловероятно, что вы будете максимально точны в оценке.
В оценке принимают участие все члены команды. Т.е., каждое свойство обсуждается с позиций всех этапов разработки до тех пор, пока команда не приходит к единой оценке сложности. Достаточно утомительно, я вам скажу, но – продуктивно.
Технический дизайн свойства (Design by Feature)
Итак, приоритеты определены, выбрано свойство для реализации. Самое время описать требования. Для этого создается модель прецедентов (Use Cases) относительно выбранного свойства. Данный документ хорошо бы снабдить диаграммой активности (Activity Diagram) для визуализации логики сопряженных сценариев использования. Сами прецеденты можно отразить в соответствующей UML диаграмме (Use Case diagram). В ходе обзора (review) документа, опять же, принимают участие все члены команды.

Рис.2. Модель прецедентов привносит детали в документы общей модели
Далее работы могут вестись параллельно: часть группы занимается техническим дизайном, часть работает над каркасами (или же над детализацией каркасов, если они уже были подготовлены на стадии общей модели).
Технический дизайн предполагает UML-диаграмму с сущностями модели домена, список и диаграмму классов (где это уместно), сопряженных со свойством моделей, DAO, контроллеров, сервисов, декораторов (возможно хелперов). Там же представлена архитектура БД, покрывающая свойство в виде модели «сущность-связь» (ER Diagram). Если свойство затрагивает какие-либо внешние системы (например, профайлер пользовательских предпочтений), это должно быть также отражено в техническом дизайне, скажем, в виде диаграммы последовательностей (Sequence diagram).
Помимо прочего следует подготовить варианты тестирования (Test Cases), что позволит QA-специалистам полноценно оценить качество реализации свойства.
Когда диаграмма сущностей модели домена для выбранного свойства закончена, проявляются детали, неучтенные в общей модели. Так и должно быть: вы просто отражаете новые детали на общей модели по мере их появления.
По окончанию этапа вся команда разработчиков принимает участие в обзоре технического дизайна. Помимо «полировки» всех аспектов документа, это обеспечивает глубокое проникновение в идеи архитектуры всех разработчиков проекта.
Реализация свойства (Build by Feature)
В то время как визуальный дизайнер будет трудиться над пользовательским интерфейсом, программисты могут создать описанные в техническом дизайне компоненты в виде прототипа. Таким образом, после обзора визуального дизайна и прототипа свойства, производится xHTML-верстка и модификация декораторов (views). Наверняка творческий гений визуального дизайнера потребует от вас также дополнительного программирования на клиентской стороне (JS). Когда свойство готово, оно передается в QA-отдел для тестирования.
После того, как свойство протестировано и ушло в продукт, берем следующее по приоритетам свойство, повторяем цикл дизайна/реализации.