Дом развитие Моделирование данных в гибкой среде

Моделирование данных в гибкой среде

Anonim

Сотрудники Techopedia, 16 ноября 2016 г.

Вывод: ведущий Эрик Кавана обсуждает важность моделирования данных в гибкой разработке с Робином Блором, Дезом Бланчфилдом и Роном Хуйзенгой из IDERA.

Вы не вошли в систему. Пожалуйста, войдите или зарегистрируйтесь, чтобы увидеть видео.

Эрик Кавана: Хорошо, дамы и господа. Добро пожаловать еще раз. Это среда в 4:00 EST. Это означает, что пришло время для Горячих Технологий. Да, в самом деле. Меня зовут Эрик Кавана, я буду вашим хозяином.

Для сегодняшней темы, это старое, но вкусное. Он становится лучше с каждым днем, потому что он формирует наш мир управления данными, «Моделирование данных в гибкой среде». По-настоящему о вас есть слайд, поразивший меня в Twitter @eric_kavanagh. Мы действительно должны поместить это в этот слайд. Я должен получить на это.

Итак, год жаркий. Моделирование данных существует всегда. Это действительно было сердцем и душой бизнеса по управлению информацией, разрабатывая модели данных, пытаясь понять бизнес-модели и привести их в соответствие с вашими моделями данных. Это действительно то, что вы пытаетесь сделать, верно?

Модель данных представляет бизнес в фундаментальном смысле, так как все эти новые источники данных меняют игру? Мы собираемся узнать об этом. Мы собираемся выяснить, как вы можете быть в курсе всех событий гибким способом. И, конечно же, это слово года.

Робин Блур с нами, наш главный аналитик, Дез Бланчфилд звонит из Сиднея, Австралия, и Рон Хуизенга, старший менеджер по продукту из IDERA - мой давний друг, отличный оратор в этой области, знает свое дело, так что не стесняйтесь, спросите ему сложные вопросы, ребята, сложные. С этим я собираюсь сделать Робина ведущим и забрать его.

Доктор Робин Блур: Хорошо. Ну, спасибо тебе за это, Эрик. Я должен сказать о моделировании, которое, я думаю, я был на самом деле в мире ИТ до того, как он существовал, в том смысле, который я помню в страховой компании, в которой я работал, что у нас был парень, который давал нам всем семинара о том, как моделировать данные. Итак, мы смотрим около 30 лет, это 30 лет? Может быть, даже дольше, может быть, 35 лет назад. Долгое и долгое время моделирование было частью индустрии, и, конечно, оно не имеет ничего общего с женщинами на подиумах.

То, что я хотел сказать, потому что то, что мы обычно делаем, это то, что я и Дез говорим о разных вещах, и я просто подумал, что дам общий обзор моделированию, но в этом есть реальность, которая теперь становится очевидной.

У нас есть, вы знаете, реальность больших данных, у нас есть больше данных, больше источников данных, у нас есть потоки данных, которые вошли в уравнение за последние три или четыре года и начинают получать большую его часть, и существует большая потребность в понимании данных и увеличении скорости изменения, которое заключается в добавлении большего количества данных и использовании большего числа структур данных.

Это сложный мир. Вот его изображение, которое мы на самом деле нарисовали три года назад, но, по сути, как только вы включите потоковую передачу в микшер и получите представление об обработке данных, концентраторе данных, канале передачи данных или о чем-то другом, вы увидите, что есть данные, которые по-настоящему в состоянии покоя, в том смысле, что он не слишком много двигается. Кроме того, есть данные, потоки, и у вас есть все транзакционное приложение, плюс в настоящее время у вас есть события, потоки данных о событиях, которые происходят в приложениях, и может понадобиться, и в настоящее время с лямбда-архитектурами, о которых все говорят, действительно оказывает влияние только на все поле данных.

И в наши дни мы думаем, что существует слой данных. Уровень данных существует своего рода виртуальным способом, в том смысле, что значительная его часть может находиться в облаке и может распространяться по центрам обработки данных, она может существовать на рабочих станциях. Уровень данных, в некоторой степени, повсюду, и в этом смысле повсюду существуют процессы, которые так или иначе пытаются обрабатывать данные и перемещать данные. Но также важно знать, что это такое, когда вы это делаете.

Если мы посмотрим на моделирование данных в самом общем смысле, в нижней части этого стека у вас есть файлы и базы данных. У вас есть элементы данных, которые имеют ключи, определения элементов, псевдонимы, синонимы, конкретные физические форматы, а затем у нас есть этот слой метаданных.

Интересная вещь о метаданных заключается в том, что метаданные полностью определяют, как данные приобретают смысл. Если у вас на самом деле нет метаданных, то в лучшем случае вы сможете угадать значение данных, но у вас будет очень много трудностей. Метаданные должны быть там, но смысл имеет структуру. Я не хочу углубляться в философию смысла, но даже в том, как мы работаем с данными, в человеческом мышлении и человеческом языке есть много изощренности, которая нелегко выражается в данных. Но даже с точки зрения данных, которые мы на самом деле обрабатываем в мире, метаданные имеют значение и структуру метаданных - один фрагмент данных по отношению к другому, и что это значит, когда они собираются вместе, и что это значит, когда они ' объединяется с другими данными, требует, чтобы мы их смоделировали. Недостаточно просто записывать метки метаданных на вещи, на самом деле нужно записывать значения для структур и отношений между структурами.

Затем мы имеем на верхнем уровне бизнес-определения, которые обычно представляют собой слой, который пытается передать смысл между метаданными, который представляет собой форму определения данных, которая учитывает способ организации данных на компьютере и человеческий смысл. Таким образом, у вас есть бизнес-термины, определения, отношения, концепции уровня объекта, которые существуют на этом уровне. И если мы собираемся иметь несогласованность между этими слоями, то мы должны иметь моделирование данных. Это не совсем необязательно. Чем больше вы можете сделать это с точки зрения автоматизации, тем лучше. Но поскольку это связано со смыслом, его действительно сложно чередовать. Достаточно легко поймать метаданные в записи и получить ее из ряда значений, но она не говорит вам о структуре записей или о том, что означают записи, или о контексте записи.

Итак, это то, что представляет собой моделирование данных, на мой взгляд. Обратите внимание: чем сложнее становится юниверс данных, тем больше вам нужно его моделировать. Другими словами, это немного похоже на то, что мы добавляем в мир не просто больше экземпляров вещей, которые бы соответствовали записям данных, но мы фактически добавляем в мир больше смысла, собирая данные о большем и большем количестве вещей. Это становится все более и более сложным чувством, которое мы должны понять.

Теоретически существует вселенная данных, и нам нужно ее рассмотреть. На практике фактические метаданные являются частью вселенной данных. Так что это не простая ситуация. Начало моделирования сверху вниз и снизу вверх. Вы должны строить в обоих направлениях, и причина в том, что данные имеют значение для компьютера и процесса, которые должны его обрабатывать, но имеют значение сами по себе. Итак, вам нужно значение снизу вверх, которое удовлетворяет программному обеспечению, необходимому для доступа к данным, и вам нужно значение сверху вниз, чтобы люди могли его понять. Построение моделей метаданных не является и никогда не может быть проектом; это постоянная деятельность - должна быть постоянной деятельностью в любой среде, в которой они существуют. К счастью, есть много сред, где это на самом деле не так, и вещи выходят из-под контроля соответственно.

В дальнейшем моделирование возрастает с ростом важности технологий. Это мое мнение. Но если вы посмотрите на IoT, мы можем понять мобильную связь больше, чем раньше, хотя в ней появились новые измерения: измерение местоположения с помощью мобильного телефона. Как только вы доберетесь до IoT, мы рассмотрим экстраординарные проблемы с данными, которые нам никогда прежде не приходилось делать, и нам нужно, так или иначе, правильно понять, что у нас есть, как именно мы можем его агрегировать, что мы можем сделать с точки зрения получения значения от агрегации и, конечно, что мы можем сделать с ним, когда мы обработали это.

Я думаю, что я сказал достаточно. Я собираюсь передать Дезу Бланчфилду, который скажет что-то еще полностью.

Дез Бланчфилд: Спасибо. Всегда трудный шаг для подражания, но это тема, о которой мы договорились и кратко говорили об этом в шутке перед шоу, и если вы наберете номер раньше, вы, вероятно, поймали целую кучу замечательных драгоценных камней. Один из приемов пищи, и я не хочу красть гром этого конкретного, но один из приемов нашего шутки перед шоу, которым я хочу поделиться, в случае, если вы не уловили это, был только вокруг темы путь данных, и мне поразительно было записать его, думая о путешествии, которое данные совершают в другом контексте в течение жизни поколения - года, месяца, недели, дня, часа, минуты, секунды - и контекст вокруг данных позиционируется в этом контексте. Являюсь ли я разработчиком кода, или специалистом по данным, и я думаю о структуре, формате и метаданных вокруг каждого из элементов, или о том, как системы и бизнес взаимодействуют с ним.

Это просто небольшая заметка, но в любом случае, позвольте мне углубиться. В частности, дизайн данных - это фраза, которую я использую, чтобы говорить обо всех вещах данных и, в частности, о разработке приложений или инфраструктуры баз данных. Я думаю, что дизайн данных - это термин, который просто очень хорошо отражает все мои мысли. В наши дни, когда мы говорим о проектировании данных, мы говорим о современном гибком проектировании данных, и я считаю, что это было не так давно, что разработчики и эксперты по данным работали в одиночку; они были в своих собственных бункерах, и образцы дизайна переходили из одного бункера в другой. Но сегодня я очень придерживаюсь мнения, что дело не только в том, что изменилось, но и в том, чтобы измениться; это своего рода необходимость, и именно это приложение - разработчики и все, что связано с разработкой, связанной с данными, разработчики, которые выполняют соответствующие элементы дизайна схем и полей и записей, а также систем и инфраструктур баз данных, моделирования и всего управления вызов вокруг этого. Сейчас это командный вид спорта, и поэтому я представляю, как группа людей выпрыгивает из самолета, действуя как команда, чтобы разыграть этот визуально интересный образ людей, падающих в небо.

В-третьих, что случилось, чтобы это произошло? Что ж, есть статья 1986 года, написанная парой джентльменов, имена которых я отчаянно пытался отдать должное, Хиротака Такеучи и Икудзиро Нонака, я думаю, это произнесено, подготовила статью, которую они назвали «Перемещение Scrum Downfield». Они представили эта идея методологии выигрыша в регби, основанная на этой схватке, когда все перемещаются в одном месте, и две команды по сути блокируют головы в чем-то, называемом схваткой, чтобы попытаться получить контроль над мячом и разыграть его на поле, чтобы доберитесь до линии попытки и коснитесь земли мячом и получите точку, называемую трином, и вы повторите этот процесс, и вы получите больше очков для команды.

Эта статья была опубликована в 1986 году в Harvard Business Review, и, что любопытно, на самом деле она привлекла большое внимание. Он привлек много внимания, потому что он представил удивительные новые концепции, и вот скриншот передней части. Таким образом, они взяли эту концепцию схватки из игры в регби и принесли ее в бизнес, особенно в игру дизайна и доставки проектов, в частности, доставки проектов.

То, что сделали скрам, дало нам новую методологию по сравнению с подобными PRINCE2 или PMBOK, которые мы ранее использовали в том, что мы называли методологией водопада, вы знаете, делайте эту вещь и эту вещь и эту вещь и следуйте им последовательно и соединяйте все точки вокруг, которые зависят от того, что у вас было, или не делайте вторую часть, пока вы не выполнили первую часть, потому что это зависело от первой части. То, что она дала нам, - это новая методология, которая должна быть немного более гибкой, - вот откуда взялся этот термин, о том, как мы поставляем вещи, и, в частности, о проектировании и разработке массовых проектов.

Некоторые из ключевых арендаторов - просто чтобы я продолжил в этом - вокруг ключевых арендаторов разборки. Он ввел идею построения нестабильности, которая заключается в том, что, если вы подумаете о страхе перед хаосом, мир существует в состоянии хаоса, но сформировалась планета, которая интересна, поэтому создание нестабильности, способность немного подпрыгивать и все еще фактически заставляют вещи работать, самоорганизующиеся проектные команды, пересекающиеся льготы через очень ответственное развитие, различные типы обучения и контроля в ходе выполнения проекта, организационной передачи обучения. Итак, как мы берем информацию из одной части бизнеса и передаем ее в другую от людей, у которых есть идея, но которые не разрабатывают код или не разрабатывают базы данных и инфраструктуры, а только данные для этих людей? И в частности, точечные результаты. Другими словами, давайте сделаем это в течение определенного периода времени, либо дня, например, 24 часа, либо недели, либо пары недель, и посмотрим, что мы можем сделать, а затем отступим и посмотрим на это.

И так, если вы простите за каламбур, это действительно новая игра в реализации проекта и три основных компонента к ней, которые будут иметь смысл, когда мы продвинемся немного дальше - есть продукт: у всех этих людей есть идея и есть необходимость что-то сделать и история, которая их окружает. Разработчики, работающие в гибкой модели получения своих историй и ежедневных заездов, используют методологию scrum, чтобы обсудить это и понять, что им нужно делать, а затем просто идут дальше и делают это. Тогда люди, мы слышали о мастерах схваток, которые наблюдают за всем этим и достаточно хорошо понимают методологию, чтобы управлять ею. Мы все видели эти изображения, которые я получил на правой стороне стен и досок, полных записей Post-It, и они служили стенами Канбан. Если вы не знаете, кто такой Канбан, я приглашаю вас в Google тем, кем был мистер Канбан, и почему это изменило то, как мы перемещаем вещи с одной стороны на другую в стене буквально, но в проекте.

На первый взгляд, рабочий процесс Scrum делает это: он берет список вещей, которые организация хочет сделать, прогоняет их через ряд вещей, которые мы называем спринтами, которые разбиты на 24-часовые периоды, месячные периоды, и мы получить эту последовательную серию выходов. Это значительное изменение в способах доставки проектов, которые были доведены до этого этапа, потому что часть этого течет, как американская армия, которая в значительной степени разработала что-то под названием PMBOK, как идея, которая не выводит танк в поле. пока вы не положите пули в вещь, потому что если в поле у ​​танка нет пуль, это бесполезно. Таким образом, первая часть помещает пули в резервуар, а вторая часть помещает резервуар в поле. К сожалению, однако, то, что случилось с разработчиками в мире разработки, каким-то образом овладело этой гибкой методологией, и, если вы простите за каламбур, в спринте, она не выдержала.

Неизменно то, что произошло, когда мы думаем о гибкой, мы обычно думаем о разработчиках, а не о базах данных и о чем-то, что связано с миром баз данных. Это был неудачный результат, потому что реальность такова, что гибкость не ограничивается разработчиками. На самом деле термин agile, на мой взгляд, часто ошибочно ассоциируется исключительно с разработчиками программного обеспечения, а не с разработчиками и архитекторами баз данных. Неизменно с теми же проблемами, с которыми вы сталкиваетесь при разработке программного обеспечения и приложений, сталкиваются все, что связано с проектированием, разработкой, эксплуатацией и обслуживанием, а следовательно, с инфраструктурой данных и, в частности, с базами данных. Актеры в этом конкретном наборе данных включают в себя таких, как архитекторы данных, разработчики форм, администраторы, администраторы инфраструктур баз данных и сами фактические базы данных вплоть до бизнес-аналитиков и системных аналитиков и архитекторов, людей, которые сидят и думают о том, как системы и бизнес работают и как мы получили поток данных через них.

Это тема, которую я регулярно поднимаю, потому что меня постоянно огорчает то, что я очень согласен с тем, что специалисты по данным должны, а не должны, теперь тесно участвовать в каждом компоненте реализации проекта, особенно в разработке. Для нас нет, тогда мы действительно не даем себе наилучших шансов на хороший результат. Нам часто приходится возвращаться и думать об этих вещах, потому что существует сценарий, мы подходим к созданию приложения и обнаруживаем, что разработчики не всегда являются экспертами по данным. Работа с базами данных требует очень специализированных навыков, особенно в области данных, и накопления опыта. Вы не просто мгновенно становитесь гуру базы данных или экспертом по знаниям в одночасье; это часто происходит из-за опыта всей жизни и, конечно, с такими, как доктор Робин Блур в «Коде сегодня», который довольно богато написал книгу.

Во многих случаях - и это прискорбно, но это реальность - что есть две части этой медали, то есть разработчики программного обеспечения полностью отключились от специалиста по базам данных и приобрели навыки, необходимые для моделирования проектирования баз данных, а разработка моделей - это просто основополагающий для гуру проектирования того, как поступают данные и как организовывается путешествие, и как они должны или не должны выглядеть, или, несомненно, для того, чтобы принять и понять, что они обычно получают в наборе навыков для разработчиков программного обеспечения. И некоторые из общих проблем, с которыми мы сталкиваемся, просто для того, чтобы выразить это в контексте, включают такие, как простое создание, обслуживание и управление самой структурой базы данных, документирование данных и инфраструктуры базы данных, а затем повторное использование этих активов данных, проекты схем, генерация схем, администрирование и обслуживание схем и их использование, обмен знаниями о том, почему эта схема разработана особым образом, а также сильные и слабые стороны, которые со временем приводят к изменениям данных, моделированию данных и типам моделей, которые мы применяем к системам, и данные, которые мы передаем через них. Генерация кода базы данных и его интеграция, а затем моделирование данных вокруг них, а затем более быстрый доступ к управлению безопасностью данных, целостность данных, мы перемещаем данные, сохраняя их целостность, достаточно ли метаданных вокруг Так, должны ли продавцы видеть все записи в таблице или они должны видеть только адрес, имя, фамилию, которая отправляет вам сообщения в сообщении? И, конечно же, самая большая проблема из всех - это моделирование платформ баз данных, что само по себе является совершенно другим разговором.

Я очень полагаю, что, учитывая все это, чтобы сделать возможной эту нирвану, абсолютно необходимо, чтобы и специалисты по данным, и разработчики имели соответствующие инструменты и чтобы эти инструменты были способны к реализации проектов, ориентированных на команду, проектирование, разработка и текущее эксплуатационное обслуживание. Вы знаете, такие вещи, как сотрудничество между проектами между экспертами данных и разработчиками программного обеспечения, единая точка правды или единый источник правды для всего, что касается документации самих баз данных, данных, схем, откуда поступают записи, владельцев этих записей, Я думаю, что в наше время это абсолютно важно, мы собираемся получить эту нирвану данных, чтобы быть королем, что должны быть в наличии правильные инструменты, потому что задача сейчас слишком велика для нас, чтобы сделать это вручную, и если люди входя и выходя из одной организации, для нас слишком легко не следовать тому же процессу или методологии, которые мог бы установить один человек, которые хороши и не обязательно передают эти навыки и способности в будущем.

Имея это в виду, я собираюсь обратиться к нашему хорошему другу в IDERA и услышать об этом инструменте и о том, как он предназначен именно для этих вещей.

Рон Хуэйзенга: Большое спасибо и спасибо Робину и Дезу за то, что они действительно хорошо подготовили сцену, и вы увидите небольшое совпадение в нескольких вещах, о которых я говорил. Но они действительно заложили очень прочную основу для некоторых концепций, о которых я собираюсь поговорить с точки зрения моделирования данных. И многое из того, что они сказали, перекликается с моим собственным опытом, когда я был консультантом, работающим в области моделирования данных и архитектуры данных, вместе с командами - как в начале, так и в виде более современных продуктов с проектами, в которых мы использовали Agile. методологии для предоставления решений.

Поэтому то, о чем я собираюсь поговорить сегодня, основано на этом опыте, а также на взгляде на инструменты и некоторые возможности инструментов, которые мы используем, чтобы помочь нам в этом путешествии. Я очень кратко расскажу о том, что я не буду вдаваться в подробности; у нас просто был хороший обзор того, что это такое. Я собираюсь поговорить об этом с точки зрения, что такое модель данных и что это для нас действительно значит? И как мы реализуем концепцию гибкого моделировщика данных в наших организациях, с точки зрения того, как мы привлекаем разработчиков моделей данных, в чем участвуют разработчики моделей и архитекторы во время спринта, в каких видах деятельности они должны участвовать И, в связи с этим, каковы некоторые из важных возможностей инструмента моделирования, которые мы используем, чтобы действительно облегчить эту работу? Затем я немного подведу итоги и просто немного расскажу о некоторых бизнес-ценностях и преимуществах участия разработчика моделей данных или о том, как на самом деле я собираюсь рассказать историю, проблемы, связанные с тем, что разработчик моделей данных не был полностью вовлечен в проекты, и я покажу вам это, основываясь на опыте и диаграмме дефектов изображения до и после реального проекта, с которым я работал много лет назад. А затем мы суммируем еще несколько пунктов, а затем у нас будут вопросы и ответы в дополнение к этому.

Вкратце, ER Studio - это очень мощный пакет, в котором много разных компонентов. Data Architect, где разработчики и архитекторы данных проводят большую часть своего времени, занимаясь моделированием данных. Есть и другие компоненты, о которых мы сегодня даже не будем говорить, например, Business Architect, где мы выполняем моделирование процессов и Software Architect, для некоторых моделей UML. Кроме того, есть репозиторий, где мы регистрируемся и обмениваемся моделями, и мы разрешаем группам совместно работать над ними и публиковать их на командном сервере, чтобы многочисленные заинтересованные аудитории, участвующие в проекте, могли реально увидеть артефакты, которые мы " повторное создание с точки зрения данных, а также других вещей, которые мы делаем в процессе доставки проекта.

Сегодня я собираюсь сосредоточиться на нескольких вещах, которые мы увидим в Data Architect, и потому что очень важно, чтобы у нас была совместная работа с аспектами, основанными на репозитории. Особенно, когда мы начинаем говорить о таких понятиях, как управление изменениями, которые необходимы не только для проектов гибкой разработки, но и для любого типа развития в будущем.

Итак, давайте немного поговорим о Agile Data Modeler. Как мы уже упоминали в своей презентации, мы должны, чтобы моделировщики данных и / или архитекторы были полностью вовлечены в процессы гибкой разработки. Исторически сложилось так: да, мы действительно думали о гибкости с точки зрения развития, и произошли некоторые события, которые действительно привели к этому. Частично это было связано с тем, как развивалось само развитие. Когда началась гибкая разработка, и мы начали с этой концепции самоорганизующихся команд, если вы выпили Kool-Aid немного чересчур чисто, и вы были на крайнем уровне программирования, была очень буквальная интерпретация таких вещей, как самоорганизующиеся команды, которые многие понимают как «все, что нам нужно», - это группа разработчиков, которая может создать полное решение. Будь то разработка кода, баз данных или хранилищ данных за ним, и все было передано разработчикам. Но с этим вы теряете особые способности, которыми обладают люди. Я обнаружил, что самые сильные команды - это те, которые состоят из людей разного происхождения. Например, объединение сильных разработчиков программного обеспечения, архитекторов данных, разработчиков моделей данных, бизнес-аналитиков и заинтересованных сторон в бизнесе, которые совместно работают над созданием конечного решения.

Сегодня я также говорю о том, что я собираюсь сделать это в контексте проекта разработки, где мы разрабатываем приложение, которое, очевидно, также будет иметь связанный с ним компонент данных. Нам нужно сделать шаг назад, прежде чем мы это сделаем, потому что мы должны понимать, что существует очень мало проектов разработки Greenfield, где мы полностью сосредоточены на создании и использовании данных, которые ограничены только в рамках самого проекта разработки., Нам нужно сделать шаг назад и взглянуть на общую организационную точку зрения с точки зрения данных и процесса. Потому что мы обнаруживаем, что информация, которую мы используем, может уже существовать где-то в организациях. Как разработчики моделей и архитекторы, мы раскрываем это, чтобы знать, откуда взять эту информацию в самих проектах. Мы также знаем структуры данных, которые задействованы, потому что у нас есть шаблоны проектирования точно так же, как разработчики имеют шаблоны проектирования для своего кода. И мы также должны принять эту общую организационную перспективу. Мы не можем просто смотреть на данные в контексте приложения, которое мы создаем. Нам нужно смоделировать данные и удостовериться, что мы их документируем, потому что они живут дольше, чем сами приложения. Эти приложения приходят и уходят, но нам необходимо иметь возможность просматривать данные и обеспечивать их надежную и структурированную не только для приложений, но и для решений, которые сообщают о действиях, отчетах BI и интеграции с другими приложениями, внутренними и внешние по отношению к нашим организациям. Таким образом, нам нужно взглянуть на всю эту общую картину данных и на то, каков жизненный цикл этих данных, и понять путь передачи фрагментов информации по всей организации от колыбели до могилы.

Теперь вернемся к самим командам и к тому, как нам на самом деле нужно работать, методология водопада была воспринята как слишком медленная для достижения результатов. Потому что, как указывалось в примере с танком, это был один шаг за другим, и часто для достижения работоспособного конечного результата требовалось слишком много времени. Теперь нам нужно иметь итеративный стиль работы, в котором мы постепенно разрабатываем его компоненты и разрабатываем его в течение времени, когда мы создаем пригодный для использования код или пригодные для использования артефакты, я скажу, для каждого спринта. Важным моментом является сотрудничество между техническими заинтересованными сторонами в команде и деловыми заинтересованными сторонами, поскольку мы сотрудничаем, чтобы превратить эти пользовательские истории в реализуемое видение кода и данных, которые также поддерживают этот код. А сам Agile Data Modeler часто обнаруживает, что в организациях недостаточно разработчиков моделей, поэтому один разработчик моделей или архитектор может одновременно поддерживать несколько групп.

И еще один аспект этого, даже если у нас есть несколько разработчиков моделей, мы должны убедиться, что у нас есть набор инструментов, который мы используем, который позволяет совместную работу нескольких проектов, которые находятся в процессе одновременно, и совместное использование этих проектов. артефакты данных и возможности регистрации и отъезда. Я собираюсь пройти через это очень быстро, потому что мы уже рассмотрели это в предыдущем разделе. Настоящая предпосылка Agile заключается в том, что вы основываете вещи на невыполненных работах, историях или требованиях. В рамках итераций мы сотрудничаем как группа. Обычно двухнедельный или месячный спринт, в зависимости от организации, очень распространен. А также ежедневные обзоры и регулярные встречи, чтобы мы устраняли блокирующие факторы и следили за тем, чтобы мы продвигали все аспекты вперед, не останавливаясь в разных областях по мере прохождения. И в этих спринтах мы хотим убедиться, что мы производим полезные результаты как часть каждого спринта.

Просто немного по-другому, расширяя его, scrum - это методология, о которой я собираюсь поговорить здесь более конкретно, и мы просто в основном дополнили предыдущую картину несколькими другими аспектами. Обычно существует отставание по продукту, а затем отставание по спринту. Таким образом, у нас есть общее отставание, которое в начале каждого повторения спринта мы сокращаем, чтобы сказать: «Что мы собираемся построить этот спринт?», И это было сделано на совещании по планированию спринта. Затем мы разбиваем задачи, связанные с этим, и выполняем эти спринты продолжительностью от одной до четырех недель с этими ежедневными обзорами. По мере того, как мы делаем это, мы отслеживаем наш прогресс с помощью диаграмм сгорания и диаграмм сгорания, чтобы отслеживать в основном то, что осталось построить, а не то, что мы строим, чтобы установить такие вещи, как скорость нашего развития, мы собираемся график, все эти типы вещей. Все это дорабатывается непрерывно во время спринта, а не на несколько месяцев вперед, и вы узнаете, что у вас не получится, и вам нужно продлить график проекта. И очень важно, как часть всей команды, есть обзор спринта в конце и ретроспектива спринта, поэтому, прежде чем вы начнете следующую итерацию, вы просматриваете то, что вы сделали, и вы ищете способы, которыми вы можете улучшить в следующий раз.

С точки зрения результатов, это в основном слайд, который суммирует типичные типы вещей, которые происходят в спринтах. И это очень ориентировано на разработку, поэтому многие вещи, которые мы здесь видим, такие как функциональный дизайн и варианты использования, выполнение тестов кода проектирования, когда мы рассмотрим эти блоки здесь, и я не собираюсь проходить их на любом уровне детализации, они очень ориентированы на развитие. И здесь скрыт тот факт, что нам также необходимо иметь такие данные, которые идут рука об руку с этим, чтобы поддержать эти усилия. Таким образом, каждый раз, когда мы видим такие вещи, как бэклоги, требования и истории пользователей, по мере того, как мы проходим, нам нужно посмотреть, какие части разработки нам нужно сделать, какие части анализа нам нужно сделать, как насчет Дизайн данных или модель данных, как насчет таких вещей, как бизнес-глоссарии, чтобы мы могли связать бизнес-значение со всеми артефактами, которые мы производим? Потому что мы должны производить эти полезные результаты в каждом спринте.

Некоторые люди скажут, что нам нужно создавать полезный код в конце каждого спринта. Это не обязательно так, то есть это в самой чистой перспективе развития, но довольно часто - особенно в начале - у нас может быть что-то вроде спринтерского нуля, где мы сосредоточены исключительно на том, чтобы встать на ноги, сделать такие вещи, как получить наши тестовые стратегии в место. Проект высокого уровня, чтобы начать его до того, как мы начнем заполнять детали и удостовериться, что у нас есть чистый набор начальных историй или требований, прежде чем мы начнем привлекать другую аудиторию, а затем развиваться как команда по мере продвижения вперед. Всегда есть немного времени на подготовку, поэтому довольно часто у нас будет спринт ноль или даже спринт ноль и один. Может быть, это небольшая фаза стартапа, прежде чем мы начнем разработку решения.

Давайте поговорим о моделях данных в этом контексте очень кратко. Когда люди думают о моделях данных, они часто думают о модели данных как о картине того, как различные части информации связаны друг с другом - это только верхушка айсберга. Чтобы полностью воплотить дух того, как вы действительно хотите подходить к моделированию данных - будь то гибкая разработка и другие вещи, - вам нужно осознать, что модель данных, если все сделано правильно, становится вашей полной спецификацией того, что эти данные означают в организации, и как это развернуто в серверных базах данных. Когда я говорю «базы данных», я имею в виду не только реляционные базы данных, которые мы можем использовать, но и в современных архитектурах, где у нас есть большие данные или платформы NoSQL, как я их называю. Кроме того, эти большие хранилища данных, потому что мы можем объединять множество различных хранилищ данных с точки зрения потребления информации и ее использования в наших решениях, а также того, как мы сохраняем или сохраняем эту информацию из наших решений.

Мы можем работать с несколькими базами данных или источниками данных одновременно в контексте данного приложения. Что очень важно, так это то, что мы хотим иметь полную спецификацию, то есть логическую спецификацию того, что это означает для организационной перспективы спринта, каковы физические конструкции с точки зрения того, как мы на самом деле определяем данные, каковы отношения между ними в ваши базы данных, ваши ограничения ссылочной целостности, ограничения проверки, все те части проверки, о которых вы обычно думаете. Описательные метаданные чрезвычайно важны. Как вы знаете, как использовать данные в ваших приложениях? Если вы не можете определить его и узнать, что это значит или узнать, откуда оно появилось, чтобы убедиться, что вы используете правильные данные в этих приложениях - убедитесь, что у нас есть правильные соглашения об именах, полные определения, что означает полный словарь данных не только для таблицы, но столбцы, которые составляют эти таблицы - и подробные примечания по развертыванию о том, как мы используем это, потому что нам нужно создать эту базу знаний, потому что, даже когда это приложение будет сделано, эта информация будет использоваться для других инициатив, поэтому мы должны убедиться, что что у нас есть все, что задокументировано для будущих реализаций.

Опять же, мы переходим к таким вещам, как типы данных, ключи, индексы, сама модель данных воплощает множество бизнес-правил, которые вступают в игру. Отношения - это не просто ограничения между различными таблицами; они часто помогают нам описать истинные бизнес-правила в отношении того, как эти данные ведут себя и как они работают вместе как единое целое. И, конечно, ценностные ограничения очень важны. Теперь, конечно, одной из вещей, с которой мы постоянно имеем дело, и она становится все более и более распространенной, являются такие вещи, как управление данными. Итак, с точки зрения управления данными, мы также должны посмотреть, что мы здесь определяем? Мы хотим определить такие вещи, как классификации безопасности. С какими типами данных мы имеем дело? Что будет считаться управлением основными данными? Какие транзакционные магазины мы создаем? Какие справочные данные мы используем в этих приложениях? Мы должны убедиться, что это правильно отражено в наших моделях. А также вопросы качества данных, есть определенные фрагменты информации, которые являются более важными для организации, чем другие.

Я принимал участие в проектах, в которых мы заменяли более десятка устаревших систем новыми бизнес-процессами и разрабатывали новые приложения и хранилища данных для их замены. Нам нужно было знать, откуда информация. Что касается наиболее важных частей информации, с точки зрения бизнеса, если вы посмотрите на этот конкретный слайд модели данных, который у меня здесь, вы увидите, что нижние блоки в этих конкретных объектах, которые являются лишь небольшим подмножеством, я на самом деле удалось захватить ценность для бизнеса. Высокие, средние или низкие для этих типов вещей для этих различных конструкций внутри организации. И я также захватил такие вещи, как классы основных данных, являются ли они основными таблицами, являются ли они ссылочными, если они были транзакционными. Таким образом, мы можем расширить наши метаданные в наших моделях, чтобы дать нам множество других характеристик за пределами самих данных, что действительно помогло нам с другими инициативами за пределами первоначальных проектов и их продвижением. Теперь это было много на одном слайде, я собираюсь пройти через все это довольно быстро.

Теперь я собираюсь очень быстро поговорить о том, что делает разработчик моделей данных, когда мы проходим через эти разные спринты. Прежде всего, полноправный участник сеансов планирования спринта, где мы берем пользовательские истории, посвящаем себя тому, что мы собираемся предоставить в этом спринте, и выясняем, как мы собираемся его структурировать и доставить. Как модельер данных я также занимаюсь тем, что знаю, что буду работать в разных областях с разными разработчиками или с разными людьми. Итак, одна из важных характеристик, которые мы можем иметь, - когда мы создаем модель данных, мы можем разделить эту модель данных на различные представления, называете ли вы их предметными областями или подмоделями, - это наша терминология. Поэтому, когда мы создаем модель, мы также показываем ее в этих различных аспектах подмоделей, поэтому разные аудитории видят только то, что им важно, чтобы они могли сосредоточиться на том, что они развивают и выдвигают. Таким образом, у меня может быть кто-то, работающий над частью планирования приложения, у меня может быть кто-то еще, работающий над записью заказа, где мы делаем все эти вещи в одном спринте, но я могу дать им точки зрения через те подмодели, которые только применить к области, над которой они работают. А затем они сводятся к общей модели и всей структуре подмоделей, чтобы дать различным зрительским взглядам то, что им нужно увидеть.

Основы с точки зрения моделирования данных, которые мы хотим иметь, всегда имеют базовую линию, к которой мы можем вернуться, потому что одна из вещей, которую мы должны быть в состоянии сделать, это, будь то в конце спринта или в конце из нескольких спринтов мы хотим знать, с чего мы начали, и всегда иметь базовую линию, чтобы знать, что было дельтой или разницей того, что мы произвели в данном спринте. Мы также должны быть уверены, что сможем сделать быстрый оборот. Если вы придете к этому как модельер данных, но в роли традиционного привратника: «Нет, нет, вы не можете этого сделать, мы должны сначала сделать все это», вы будете исключены из команды, когда вам действительно нужно быть активным участником всех этих гибких команд разработчиков. Это означает, что некоторые вещи падают с повозки, выполняя заданный спринт, и вы поднимаете их в последующих спринтах.

Например, вы можете сосредоточиться на структурах данных просто для того, чтобы начать разработку, скажем, той части заказа, о которой я говорил. В более позднем спринте вы можете вернуться и заполнить данные, как некоторые из документации для словаря данных, вокруг некоторых из тех артефактов, которые вы создали. Вы не собираетесь завершить это определение в одном спринте; вы будете постепенно увеличивать свои результаты, потому что будут времена, когда вы сможете заполнить эту информацию, работая с бизнес-аналитиками, когда разработчики будут заняты созданием приложений и постоянством работы с этими хранилищами данных. Вы хотите облегчить и не быть узким местом. Есть разные способы работы с разработчиками. Для некоторых вещей у нас есть шаблоны проектирования, поэтому мы являемся полноправным участником, поэтому у нас может быть шаблон проектирования, в котором мы скажем, что мы поместим его в модель, мы вытолкнем его в базы данных разработчика, а затем они смогут начать работать с ним и запросить изменения в этом.

Могут быть и другие области, над которыми работают разработчики, у них есть кое-что, над чем они работают, и они прототипируют некоторые вещи, поэтому они пробуют некоторые вещи в своей собственной среде разработки. Мы берем ту базу данных, с которой они работали, переносим ее в наш инструмент моделирования, сравниваем с имеющимися у нас моделями, а затем решаем и выталкиваем изменения обратно в них, чтобы они могли реорганизовать свои коды, чтобы они следовали правильной структуре данных что нам нужно. Потому что они, возможно, создали некоторые вещи, которые мы уже имели в других местах, поэтому мы уверены, что они работают с правильными источниками данных. Мы просто продолжаем итерировать весь этот путь до нашего спринта, чтобы получить полные данные, полную документацию и определение всех тех структур данных, которые мы производим.

Наиболее успешные гибкие проекты, в которых я участвовал с точки зрения очень хороших поставок, - это то, что у нас была философия, моделирующая все изменения в полной физической спецификации базы данных. По сути, модель данных становится развернутыми базами данных, с которыми вы работаете, для всего нового, что мы создаем, и содержит полные ссылки на другие хранилища данных, если мы потребляем их из других внешних баз данных. В рамках этого мы производим инкрементные сценарии, а не выполняем полное поколение каждый раз. И мы используем наши шаблоны проектирования, чтобы ускорить процесс взаимодействия с различными командами разработчиков, с которыми мы работаем.

Кроме того, в спринтерской деятельности опять-таки это базовая линия для сравнения / слияния, поэтому давайте возьмем идею моделирования каждого изменения. Каждый раз, когда мы вносим изменение, мы хотим смоделировать изменение, и что очень важно, чего не хватало в моделировании данных до недавнего времени, на самом деле, до тех пор, пока мы не вводим его заново, это способность связывать моделирование задачи и ваши результаты с пользовательскими историями и задачами, которые фактически вызывают эти изменения. Мы хотим иметь возможность проверять изменения нашей модели так же, как разработчики проверяют свои коды, ссылаясь на те пользовательские истории, которые у нас есть, чтобы мы знали, почему мы в первую очередь внесли изменения, и это то, что мы делаем. Когда мы делаем это, мы генерируем наши инкрементные сценарии DDL и публикуем их, чтобы их можно было взять с другими результатами разработки и проверить в нашем решении для сборки. Опять же, мы можем иметь одну модель или работать с несколькими командами. И, как я уже говорил, некоторые вещи создаются разработчиком моделей данных, другие - разработчиками, и мы встречаемся в середине, чтобы придумать общий лучший дизайн и подтолкнуть его вперед и убедиться, что он правильно спроектирован в нашем общие структуры данных. Мы должны поддерживать дисциплину обеспечения того, чтобы у нас были все надлежащие конструкции в нашей модели данных по мере продвижения вперед, включая такие вещи, как нулевые и не нулевые значения, ссылочные ограничения, в основном проверочные ограничения, все те вещи, о которых мы обычно думаем,

Давайте поговорим сейчас о нескольких скриншотах некоторых инструментов, которые помогают нам сделать это. Я думаю, что важно иметь этот совместный репозиторий, поэтому то, что мы можем сделать как разработчики моделей данных - и это фрагмент части модели данных в фоновом режиме - это когда мы работаем над вещами, которые мы хотим убедиться, что мы можем работать только с объектами, которые мы должны иметь возможность изменять, вносить изменения, генерировать наши сценарии DDL для изменений, которые мы внесли, когда мы возвращаемся обратно. Так что мы можем сделать, например, в ER Studio мы можем проверять объекты или группы объектов для работы, нам не нужно проверять целую модель или подмодель, мы можем проверять только те вещи, которые представляют для нас интерес. После этого мы хотим сделать это либо во время выезда, либо во время регистрации - мы делаем это обоими способами, потому что разные команды разработчиков работают по-разному. Мы хотим убедиться, что мы связываем это с пользовательской историей или задачей, которая определяет требования для этого, и это будет та же пользовательская история или задача, для которой разработчики будут разрабатывать и проверять свой код.

Итак, вот очень быстрый фрагмент из нескольких экранов одного из наших центров управления изменениями. Что это делает, я не буду здесь подробно рассказывать, но то, что вы видите, это пользовательская история или задача с отступом под каждым из тех, что вы видите в реальных записях изменений - мы создали автоматическую запись изменений, когда мы выполняем регистрацию заезда и отъезда, и мы можем добавить более подробное описание в эту запись изменений. Это связано с задачей, мы можем иметь несколько изменений для каждой задачи, как вы ожидаете. И когда мы входим в эту запись изменений, мы можем посмотреть на нее и, что более важно, увидеть, что мы на самом деле изменили? Для этой конкретной, выделенной истории у меня был один тип изменений, который был сделан, и когда я посмотрел на саму фактическую запись изменений, он определил отдельные части в измененной модели. Я изменил несколько атрибутов здесь, заново упорядочил их, и это привело к поездке, которые также должны были быть изменены, которые должны были быть изменены в инкрементной DLL. Это не только моделирование на базовых объектах, но и мощный инструмент моделирования, подобный этому, также обнаруживает изменения, которые должны быть отражены в зависимых объектах в базе данных или модели данных.

Если мы работаем с разработчиками, и мы делаем это в нескольких разных вещах, то есть что-то делаем в их песочнице, и мы хотим сравнить и посмотреть, где есть различия, мы используем возможности сравнения / слияния, где справа и слева боковая сторона. Мы можем сказать: «Вот наша модель с левой стороны, вот их база данных с правой стороны, покажите мне различия». Затем мы можем выбрать, как нам разрешить эти различия, независимо от того, добавляем ли мы данные в базу данных или, если в базе данных есть некоторые вещи, которые мы возвращаем в модель. Мы можем пойти двунаправленно, чтобы мы могли идти в обоих направлениях одновременно, обновляя и источник, и цель, а затем создавать инкрементные сценарии DDL для развертывания этих изменений в самой среде базы данных, что чрезвычайно важно. Что мы можем сделать, так это то, что мы можем также использовать эту возможность сравнения и слияния в любой момент времени. Если мы делаем моментальные снимки по пути, мы всегда можем сравнить начало одного спринта с началом или концом другого спринта, чтобы мы могли видеть полное постепенное изменение того, что было сделано в данном спринте разработки или в серии спринтов.

Это очень быстрый пример сценария изменения, любой из вас, кто работал с базами данных, видел подобные вещи, это то, что мы можем вытолкнуть из кода как сценарий изменения, чтобы мы убедились, что мы сохранить вещи здесь. То, что я вытащил отсюда, просто чтобы уменьшить беспорядок, - это то, что мы также делаем с этими скриптами изменения, мы предполагаем, что в этих таблицах тоже есть данные, поэтому мы также сгенерируем DML, который будет извлекать информацию из временных таблиц и подтолкнуть его обратно к новым структурам данных, чтобы мы смотрели не только на структуры, но и на данные, которые мы, возможно, уже содержали в этих структурах.

Будем очень быстро говорить об автоматизированных системах сборки, потому что, когда мы часто выполняем гибкий проект, мы работаем с автоматизированными системами сборки, где нам необходимо проверить различные результаты вместе, чтобы убедиться, что мы не нарушаем наши сборки. Это означает, что мы синхронизируем результаты, те сценарии изменений, о которых я говорил, со сценарием DDL, должны быть проверены, соответствующий код приложения должен быть проверен в одно и то же время, и развитие многих разработчиков сейчас, конечно, не делается с прямым SQL против баз данных и тому подобное. Довольно часто мы используем постоянные среды или строим службы данных. Мы должны убедиться, что изменения для этих платформ или сервисов регистрируются в одно и то же время. Они внедряются в автоматизированную систему сборки в некоторых организациях, и, если сборка прерывается, в гибкой методологии, все дело в том, чтобы исправить сборку, прежде чем мы двинемся вперед, чтобы мы знали, что у нас есть рабочее решение, прежде чем мы пойдем дальше. И в одном из проектов, в которых я участвовал, мы довели это до крайности - если сборка сломалась, мы фактически подключили несколько компьютеров в нашем районе, где мы были расположены вместе с бизнес-пользователями, у нас были только красные мигающие огни как верх полицейских машин. И если сборка сломалась, эти красные мигающие огни начали гаснуть, и мы знали, что это все руки на палубе: починить сборку и затем продолжить то, что мы делали.

Я хочу поговорить о других вещах, и это уникальная возможность для ER Studio, она действительно помогает, когда мы пытаемся создать эти артефакты как разработчики для этих постоянных границ, у нас есть концепция, называемая объектами бизнес-данных, и что это позволяет нам Если вы посмотрите на эту очень упрощенную модель данных в качестве примера, она позволяет нам инкапсулировать сущности или группы сущностей, для которых существуют границы постоянства. Когда мы, разработчики моделей данных, можем думать о чем-то вроде заголовка заказа на покупку и выравнивания заказа, а также других подробных таблиц, которые могут быть связаны с этим при его создании, и разработчикам наших служб данных необходимо знать, как обстоят дела с этими различными данными. структур. Наши разработчики думают о таких вещах, как заказ на покупку как об объекте в целом, и каков их контракт с тем, как они создают эти конкретные объекты. Мы можем раскрыть эту техническую деталь, чтобы люди, создающие серверы данных, могли видеть, что находится под ним, и мы могли оградить другие аудитории от сложностей, чтобы они просто видели различные объекты более высокого уровня, что также очень хорошо работает для общения с бизнесом. аналитики и заинтересованные стороны, когда речь идет о взаимодействии различных бизнес-концепций.

Хорошая вещь в этом также заключается в том, что мы конструктивно разворачиваем и сворачиваем их, чтобы мы могли поддерживать отношения между объектами высшего порядка, даже если они происходят из конструкций, которые содержатся в самих объектах бизнес-данных. Теперь, как разработчик модели, добираюсь до конца спринта, в конце подведения итогов спринта, у меня есть много вещей, которые мне нужно сделать, которые я называю своей уборкой для следующего спринта. Каждый спринт, который я создаю, называется «Именованный релиз» - это дает мне базовые данные о том, что у меня сейчас есть в конце релиза. Таким образом, это означает, что моя базовая линия продвигается вперед, все эти базовые показатели или именованные выпуски, которые я создаю и сохраняю в своем хранилище, я могу использовать для сравнения / слияния, чтобы я всегда мог сравнить любой заданный конец спринта из любого другого спринта, который Очень важно знать, какие изменения были внесены в вашу модель данных на пути к ее путешествию.

Я также создаю дельта-сценарий DDL, используя сравнение / объединение снова от начала до конца спринта. Возможно, я проверил целую кучу инкрементных сценариев, но если мне это нужно, у меня теперь есть сценарий, который я могу развернуть для поддержки других песочниц, так что я могу просто сказать, что это было в начале одного спринта, нажать после этого, создайте базу данных в виде песочницы, чтобы начать со следующего спринта, и мы также можем использовать эти вещи для выполнения таких задач, как резервные экземпляры QA, и, в конечном счете, мы, конечно же, хотим внедрить наши изменения в производство, чтобы у нас было несколько дел в то же время. Опять же, мы в полной мере участвуем в планировании спринта и ретроспективах, ретроспективы - это действительно извлеченные уроки, и это чрезвычайно важно, потому что вы можете очень быстро начать действовать, вам нужно останавливаться и праздновать успехи, как сейчас. Выясните, что не так, сделайте это лучше в следующий раз, но также отметьте, что все пошло правильно, и опирайтесь на них, когда вы продолжаете двигаться вперед в следующих спринтах.

Сейчас я собираюсь очень быстро поговорить о стоимости бизнеса. Был проект, к которому я присоединился много лет назад, который начинался как проворный проект, и это был экстремальный проект, так что это была чисто самоорганизующаяся команда, где все делали только разработчики. Короче говоря, этот проект застопорился, и они обнаружили, что тратят все больше и больше времени на исправление и исправление выявленных дефектов, чем на продвижение большей функциональности и, фактически, когда они смотрят на него на основе на графиках выгорания им предстояло продлить проект на шесть месяцев с огромными затратами. И когда мы взглянули на это, то для решения этой проблемы было использовать подходящий инструмент моделирования данных с опытным специалистом по моделированию данных, вовлеченным в сам проект.

Если вы посмотрите на эту вертикальную полосу на этом конкретном графике, это показывает совокупные дефекты по сравнению с совокупными объектами, и я говорю об объектах данных или конструкциях, которые были созданы, таких как таблицы с ограничениями и тому подобное, если вы смотрели на еще до того, как был введен разработчик моделей данных, число дефектов фактически превышало и начинало образовывать некоторый разрыв по фактическому количеству объектов, которые были созданы до этого момента времени. После 21 недели, когда пришел разработчик моделей данных, провела рефакторинг модели данных на основе того, что нужно было исправить, а затем приступила к моделированию в рамках работы проектной команды, изменения по мере продвижения проекта, И вы увидели очень быстрое изменение: примерно за полтора спринта мы увидели огромный скачок в количестве объектов и конструкций данных, которые создавались и создавались, потому что мы генерировали из инструмента моделирования данных, а не из застройщика. построение их в среде, и они были правильными, потому что у них была надлежащая ссылочная целостность и другие конструкции, которые она должна иметь. Уровень дефектов по отношению к ним практически ровный. Предприняв это соответствующее действие и убедившись, что моделирование данных было полностью задействовано, проект был реализован в срок с гораздо более высоким уровнем качества, и фактически он не был бы реализован вообще, если бы эти шаги не были выполнены. Есть много провальных неудач, есть также много проворных успехов, если вы вовлекаете нужных людей в правильные роли. Я большой сторонник гибкой как оперативной дисциплины, но вы должны убедиться, что у вас есть навыки всех правильных групп, участвующих в качестве проектных команд, когда вы продвигаетесь вперед в стремительном типе усилий.

Подводя итог, архитекторы данных и разработчики моделей должны быть вовлечены во все проекты разработки; они действительно являются связующим звеном, объединяющим все вместе, потому что как разработчики моделей и архитекторы данных мы понимаем не только структуры данных данного проекта разработки, но также и то, где данные существуют в организации и откуда мы можем получать эти данные, а также как их использовать. будет использоваться и использоваться вне конкретного приложения, над которым мы работаем. Мы понимаем сложные взаимосвязи данных, и крайне важно иметь возможность двигаться вперед, а также с точки зрения управления, чтобы отобразить документ и понять, как выглядит ваш полный ландшафт данных.

Это как производство; Я пришел из производства. Вы не можете проверять качество во что-то в конце - вам нужно встроить качество в свой проект на начальном этапе и на пути к нему, а моделирование данных - это способ встроить это качество в проект эффективным и рентабельным способом на протяжении всего процесса., И снова, кое-что нужно помнить - и это не должно быть банальным, но это правда - приложения приходят и уходят, данные являются жизненно важным корпоративным активом, и они выходят за все эти границы приложений. Каждый раз, когда вы вводите приложение, вас, вероятно, просят сохранить данные из других приложений, которые были ранее, поэтому нам просто нужно помнить, что это жизненно важный корпоративный актив, который мы продолжаем поддерживать с течением времени.

Вот и все! Отсюда мы будем принимать больше вопросов.

Эрик Кавана: Хорошо, хорошо, позвольте мне сначала передать это Робину. А потом, Дез, я уверен, что у тебя есть пара вопросов. Убери это, Робин.

Доктор Робин Блур: Хорошо. Если честно, у меня никогда не было проблем с методами гибкой разработки, и мне кажется, что то, что вы здесь делаете, имеет большой смысл. Я помню, как смотрел на что-то в 1980-х годах, что на самом деле указывало на то, что проблема, с которой вы фактически сталкиваетесь в плане выхода проекта из-под контроля, обычно заключается в том, что вы позволяете ошибке сохраняться за пределами определенной стадии. Просто становится все труднее исправить, если вы не понимаете эту сцену правильно, поэтому одна из вещей, которую вы делаете здесь - и я думаю, что это слайд - но одна из вещей, которую вы делаете здесь в спринте ноль, на мой взгляд, абсолютно важно, потому что вы действительно пытаетесь закрепить результаты. И если вы не получите закрепленные результаты, то результаты изменят свою форму.

Это своего рода мое мнение. Это также мое мнение - у меня действительно нет никаких споров с идеей, что вам нужно довести моделирование данных до определенного уровня детализации, прежде чем вы пройдете. То, что я хотел бы, чтобы вы попытались сделать, потому что я не получил полного представления об этом, просто опишите один из этих проектов с точки зрения его размера, с точки зрения того, как он протекал, с точки зрения того, кто, вы знаете, где возникли проблемы, были ли они решены? Потому что я думаю, что этот слайд в значительной степени является его сердцем, и если бы вы могли немного подробнее рассказать об этом, я был бы очень признателен.

Рон Хуйзенга: Конечно, и я буду использовать несколько примеров проектов. Тот, который, вроде как, сорвался с рельсов, который был возвращен, фактически вовлекая нужных людей и выполняя моделирование данных, и все было действительно способом убедиться, что дизайн был понят лучше, и у нас, очевидно, был лучший дизайн реализации на пути через моделирование его. Потому что, когда вы моделируете его, вы знаете, что вы можете генерировать свой DDL и все изнутри и вне инструмента, вместо того, чтобы придерживаться этого, как это обычно делают люди, переходя прямо в среду базы данных. И типичные вещи, которые будут происходить с разработчиками, это то, что они пойдут туда и скажут, ладно, мне нужны эти таблицы. Допустим, мы делаем записи заказов. Таким образом, они могут создать заголовок заказа и таблицы деталей заказа и тому подобное. Но они довольно часто забывают или пренебрегают, чтобы убедиться, что существуют ограничения для представления отношений внешнего ключа. Они могут не иметь правильные ключи. Соглашения об именах также могут быть подозрительными. Я не знаю, сколько раз я заходил в среду, например, где вы видите кучу разных таблиц с разными именами, но тогда имена столбцов в этих таблицах похожи на ID, Имя или что-то еще, поэтому они действительно потерял контекст без таблицы того, что это такое.

Таким образом, обычно, когда мы моделируем данные, мы должны убедиться, что применяем надлежащие соглашения об именах ко всем артефактам, которые также генерируются в DDL. Но если говорить более конкретно о природе самих проектов, то, вообще говоря, я говорю об довольно крупных инициативах. Одним из них был проект по трансформации бизнеса на 150 миллионов долларов, где мы заменили более десятка устаревших систем. У нас было пять разных гибких команд одновременно. У меня была полноценная команда по архитектуре данных, поэтому я включил моделировщиков данных из моей команды в каждую из других групп прикладных областей, и мы работали с группой внутренних бизнес-экспертов, которые знали предмет, которые занимались пользовательские истории для самих требований. У нас были бизнес-аналитики в каждой из тех групп, которые фактически моделировали бизнес-процессы с помощью диаграмм действий или диаграмм бизнес-процессов, помогая более детально проиллюстрировать пользовательские истории с пользователями, прежде чем они будут использованы остальной частью команды.

И затем, конечно, разработчики, которые создавали код приложения поверх этого. И мы также работали, я думаю, что это были четыре разных поставщика системной интеграции, которые также создавали различные части приложения, где одна команда строила службы данных, другая создавала логику приложения в одной области, а другая обладала опытом. в другой сфере бизнеса строилась логика применения в этой области. Таким образом, у нас было целое сотрудничество людей, которые работали над этим проектом. В частности, у нас в команде было 150 человек на берегу и еще 150 сотрудников в офшоре, которые сотрудничали в двухнедельных спринтах, чтобы продвинуть это дело. И чтобы сделать это, вам нужно убедиться, что вы стреляете по всем цилиндрам, и все хорошо синхронизированы с точки зрения их результатов, и у вас были эти частые перезагрузки, чтобы убедиться, что мы завершили наши поставки всех необходимых артефактов. в конце каждого спринта.

Доктор Робин Блур: Это впечатляет. И просто для более подробной информации об этом - вы получили полную, как я бы назвал, карту MDM всей области данных в конце этого проекта?

Рон Хуэйзенга: У нас была полная модель данных, которая была разбита в результате разложения по всем различным сферам бизнеса. Сам словарь данных с точки зрения полных определений немного не хватало. У нас было определено большинство таблиц; мы определили большинство столбцов относительно того, что именно они имели в виду. Были некоторые, которых там не было, и, что интересно, многие из них представляли собой фрагменты информации, полученной из устаревших систем, где после завершения самого объема проекта это все еще документировалось как переносимый набор Артефакты как бы вне самого проекта, потому что это было чем-то, что нужно было поддерживать организации в будущем. Таким образом, в то же время организация заняла гораздо более широкую точку зрения на важность управления данными, потому что мы увидели множество недостатков в этих унаследованных системах и тех унаследованных источниках данных, которые мы пытались использовать, поскольку они не были задокументированы. Во многих случаях у нас были только базы данных, которые мы должны были перепроектировать и попытаться выяснить, что там было и для чего эта информация.

Доктор Робин Блур: Меня это не удивляет, этот конкретный аспект. Управление данными, скажем так, очень современная проблема, и я думаю, действительно, есть много работы, которая, скажем, должна была быть сделана исторически над управлением данными. Этого никогда не было, потому что вы могли, в некотором смысле, сойти с рук, не делая этого. Но так как ресурс данных только рос и рос, в конечном итоге вы не смогли.

В любом случае, я перейду к Дезу, потому что думаю, что у меня есть отведенное мне время. Дез?

Дез Бланчфилд: Да, спасибо. Через все это я наблюдаю и думаю про себя, что мы говорим о том, чтобы увидеть, как agile используется во многих отношениях в гневе. Хотя это имеет негативные коннотации; Я имел в виду это в позитивном ключе. Не могли бы вы просто дать нам сценарий, я имею в виду, что есть два места, где я могу видеть, что это идеальный набор: одно - это новые проекты, которые просто нужно сделать с первого дня, но я думаю, что в моем опыте это неизменно В случае, когда проекты становятся достаточно большими, что необходимо во многих отношениях, возникает интересная проблема между склеиванием двух миров, верно? Можете ли вы дать нам какое-либо понимание некоторых историй успеха, которые вы видели в организации, стало ясно, что у них небольшое столкновение двух миров, и вы смогли успешно это на месте и объединить крупные проекты, где они могли бы пойти на рельсы? Я знаю, что это очень широкий вопрос, но мне просто интересно, есть ли конкретный пример, который вы можете, в некотором роде, указать на то, где вы сказали, вы знаете, мы все это на месте, и он собрал всю команду разработчиков вместе с команда по обработке данных, и мы, вроде, обратились к тому, что могло бы затопить лодку?

Рон Хуйзенга: Конечно, и фактически один проект, который оказался проектом конвейера, был тем, на который я ссылался, где я показал ту диаграмму с дефектами до и после того, как был задействован разработчик моделей данных. Довольно часто, и существуют предвзятые представления, особенно если все происходит там, где это делается с точки зрения чисто разработки, просто разработчики участвуют в этих гибких проектах по доставке приложений. Поэтому то, что произошло там, конечно, это то, что они сошли с рельсов и, в частности, с их артефактами данных или с поставляемыми ими конечными результатами, не дотянули до уровня качества и по-настоящему решали проблемы в целом. И очень часто это заблуждение заключается в том, что разработчики моделей данных будут тормозить проекты, и они будут делать это, если разработчики моделей данных не будут иметь правильного отношения. Как я уже сказал, вы должны потерять - иногда есть разработчики моделей данных, которые придерживаются традиционного подхода к привратнику, когда «мы здесь, чтобы контролировать то, как выглядят структуры данных», и этот менталитет должен исчезнуть. Любой, кто участвует в гибкой разработке, и особенно разработчики моделей данных, должны взять на себя роль посредника, чтобы действительно помочь командам двигаться вперед. И лучший способ проиллюстрировать это - очень быстро показать командам, насколько продуктивными они могут быть, сначала моделируя изменения. И опять же, именно поэтому я говорил о сотрудничестве.

Есть некоторые вещи, которые мы можем сначала смоделировать и сгенерировать DDL для разработчиков. Мы также хотим убедиться, что они не чувствуют, что их ограничивают. Итак, если есть вещи, над которыми они работают, пусть они продолжают работать в своих песочницах разработки, потому что именно здесь разработчики работают над своими собственными рабочими столами или другими базами данных, чтобы внести некоторые изменения, где они тестируют вещи. И сотрудничайте с ними и говорите: «Хорошо, работайте с этим». Мы внесем его в инструмент, решим, а затем продвинем вперед и предоставим вам сценарии, которые вы можете развернуть для обновления своего базы данных, чтобы обновить их до того уровня, который фактически будет утвержден в отношении реального производства, поскольку мы продолжаем двигаться вперед. И вы можете изменить это очень быстро. Я обнаружил, что мои дни были заполнены тем, что я просто возвращался туда-сюда, перебирая разные команды разработчиков, просматривая изменения, сравнивая, генерируя сценарии, заставляя их работать, и я смог довольно легко поддерживать себя в составе четырех групп разработчиков, как только мы достигнут импульс.

Дез Бланчфилд: Одна из вещей, которая приходит мне на ум, это то, что, вы знаете, многие разговоры, которые я веду ежедневно, касаются этого грузового поезда, приближающегося к нам, вроде как -машина и IoT. И если мы думаем, что у нас сейчас много данных о наших текущих средах на предприятии, вы знаете, если мы на мгновение отбросим единорогов, где мы узнаем, что Googles, Facebook и Ubers имеют петабайты данных, но на традиционном предприятии мы говорим о сотнях терабайт и большом количестве данных. Но этот грузовой поезд прибывает в организации, на мой взгляд, и доктор Робин Блур ранее упоминал об этом из IoT. Вы знаете, у нас много веб-трафика, у нас есть социальный трафик, у нас сейчас есть мобильность и мобильные устройства, облако взорвалось, но теперь у нас есть умная инфраструктура, умные города и есть весь этот мир данных, который просто взорвался.

Для повседневной организации средние и крупные организации, которые сидят там и видят этот мир боли, приходят к ним и не имеют в виду непосредственный план, каковы некоторые выводы, всего за пару предложений, которые вы бы поставили им о том, когда и где они должны начать разговорчиво думать о внедрении некоторых из этих методологий. Как рано им нужно начинать планировать, чтобы почти сесть, обратить внимание и сказать, что сейчас подходящее время, чтобы использовать некоторые инструменты, подготовить команду и начать разговор по этому вопросу? Как поздно в истории уже поздно или когда слишком рано? Как это выглядит для некоторых организаций, которые вы видите?

Рон Хуйзенга: Я бы сказал, что для большинства организаций, если они еще этого не сделали и адаптировали моделирование данных и архитектуру данных с помощью таких мощных инструментов, как сейчас, время, которое им нужно сделать, - вчера. Потому что интересно, что даже сегодня, когда вы смотрите на данные в организациях, у нас есть так много данных в наших организациях и, вообще говоря, на основе некоторых обследований, которые мы видели, мы эффективно используем менее пяти процентов этих данных когда мы смотрим через организации. И с IoT или даже NoSQL, большие данные - даже если это не просто IoT, а просто большие данные в целом - где мы сейчас начинаем потреблять еще больше информации, поступающей из-за пределов наших организаций, эта проблема становится все больше и больше все время. И единственный способ, которым мы можем воспользоваться, - это помочь нам понять, о чем эти данные.

Итак, вариант использования немного отличается. То, что мы делаем сами, это когда мы смотрим на эти данные, мы их собираем, нам нужно перепроектировать их, посмотреть, что в них, будь то в наших озерах данных или даже в наших собственных базах данных, синтезировать то, что данные, применять значения к нему и определения к нему, чтобы мы могли понять, что это за данные. Потому что пока мы не поймем, что это такое, мы не сможем гарантировать, что мы используем это правильно или адекватно. Поэтому нам действительно необходимо разобраться, что это за данные. И другая часть этого заключается в том, что не делайте этого, потому что вы можете, с точки зрения использования всех этих внешних данных, убедиться, что у вас есть сценарий использования, который поддерживает использование этих внешних данных. Сосредоточьтесь на том, что вам нужно, а не просто пытаясь извлечь и использовать то, что вам может понадобиться позже. Вначале сосредоточьтесь на важных вещах, и по мере того, как вы будете проходить через это, вы будете поглощать и пытаться понять другую информацию извне.

Прекрасным примером этого является то, что я знаю, что мы говорим об IoT и датчиках, но проблема такого же типа действительно была во многих организациях в течение многих лет, даже до IoT. Любой, у кого есть система управления производством, будь то трубопроводная компания, производство, какие-либо компании, основанные на процессах, у которых есть дела, где они много делают с помощью средств управления и используют потоки данных и тому подобное, имеют эти пожарные шланги данных, которые они пытаются выпить, чтобы выяснить, какие события произошли в моем производственном оборудовании, чтобы сигнализировать - что произошло и когда? И среди этого огромного потока данных есть только определенные фрагменты информации или тегов, в которых они заинтересованы, которые они должны отсеивать, синтезировать, моделировать и понимать. И они могут игнорировать остальное до тех пор, пока не придет время по-настоящему понять это, а затем они могут расширить свою сферу, чтобы втянуть все больше и больше этого в сферу, если это имеет смысл.

Дез Бланчфилд: Да, действительно. Есть один вопрос, на который я собираюсь ответить, от джентльмена по имени Эрик, и мы беседовали об этом в частном порядке. Я только что спросил его разрешение, которое он дал, чтобы спросить его у вас. Потому что это хорошо вписывается в это, просто чтобы подвести итог, потому что мы собираемся немного со временем, и я вернусь к Эрику. Но вопрос от другого Эрика состоял в том, разумно ли предполагать, что владельцы стартапа знакомы и понимают уникальные проблемы, связанные с терминологией моделирования и т. Д., Или это должно быть передано кому-то еще для интерпретации? Другими словами, должен ли стартап быть способным, готовым, желающим и способным сосредоточиться на этом? Или это то, что они, вероятно, должны делать покупки и привлекать экспертов на борту?

Рон Хуйзенга: Я думаю, что короткий ответ - это действительно зависит. Если это стартап, у которого нет кого-то, кто является архитектором данных или разработчиком моделей, который действительно понимает базу данных, то самый быстрый способ начать - это привлечь кого-то с опытом консультирования, который очень хорошо разбирается в этом пространстве и может получить они идут. Потому что то, что вы найдете - и на самом деле, я сделал это во многих заданиях, которые я выполнял до того, как перешел на темную сторону в управлении продуктами, - я бы пошел в организации в качестве консультанта, возглавил их команды по архитектуре данных, чтобы они могли, в некотором роде, переориентировать себя и обучить своих людей тому, как делать подобные вещи, чтобы они выдерживали это и выполняли миссию в будущем. А потом я перейду к следующему сражению, если это имеет смысл. Есть много людей, которые делают это, имеют очень хороший опыт работы с данными, который может помочь им в этом.

Дез Бланчфилд: Это отличный вывод, и я полностью согласен с этим, и я уверен, что доктор Робин Блур тоже согласится. В частности, в стартапе вы сосредоточены на том, чтобы быть малым и средним бизнесом с конкретной ценностью предложения, которое вы хотите создать как часть своего стартап-бизнеса, и вам, вероятно, не нужно быть экспертом во всем, поэтому хороший совет. Но большое спасибо, фантастическая презентация. Действительно отличные ответы и вопросы. Эрик, я вернусь к тебе, потому что я знаю, что прошло десять минут, и я знаю, что тебе нравится держаться ближе к нашим временным окнам.

Эрик Кавана: Это нормально. У нас есть хотя бы пара хороших вопросов. Позволь мне передать тебе одну. Я думаю, что вы ответили на некоторые из других. Но очень интересное наблюдение и вопрос от одного участника, который пишет, что иногда в гибких проектах моделировщик данных не имеет всей долгосрочной картины, и поэтому им приходится создавать что-то в спринте 1, а затем приходится перепроектировать в спринте 3 или 4. Разве это не кажется контрпродуктивным? Как вы можете избежать такого рода вещей?

Рон Хуэйзенга: Природа ловкости заключается в том, что вы не получите абсолютно все правильно в данном спринте. И это на самом деле часть духа agile: работай с ним - ты будешь делать прототипы, когда работаешь над кодом в заданном спринте, и ты будешь вносить в него уточнения. И частью этого процесса является то, что вы доставляете вещи, которые конечный пользователь видит и говорит: «Да, это близко, но мне действительно нужно, чтобы это тоже делало немного больше». Так что это не только влияет на функциональный дизайн самого кода, но довольно часто нам нужно изменить или добавить больше структуры данных под этими определенными вещами, чтобы предоставить то, что хочет пользователь. И это все честно, и именно поэтому вы действительно хотите использовать мощные инструменты, потому что вы можете очень быстро смоделировать и внести это изменение в инструмент моделирования, а затем сгенерировать DDL для базы данных, с которой затем разработчики могут работать, чтобы обеспечить это изменить еще быстрее. Вы избавляете их от необходимости выполнять ручное кодирование структур данных и позволяете им сконцентрироваться на логике программирования или приложения, в которой они наиболее искусны.

Эрик Кавана: Это имеет смысл. У нас была пара других людей, которые задавали конкретные вопросы о том, как все это связано с инструментом. I know you spent some time going through examples and you've been showing some screenshots about how you actually roll some of this stuff out. In terms of this whole sprint process, how often do you see that in play in organizations versus how often do you see more traditional processes where things just, kind of, plod along and take more time? How prevalent is the sprint-style approach from your perspective?

Ron Huizenga: I think we're seeing it more and more. I know that, I would say, probably in the last 15 years in particular, I've seen much more of an adoption of people recognizing that they really need to embrace quicker delivery. So I've seen more and more organizations jump on the agile bandwagon. Not necessarily entirely; they may start out with a couple of pilot projects to prove out that it works, but there are some that are still very traditional and they do stick with the waterfall method. Now, the good news is, of course, that the tools work very fine in those organizations as well for those type of methodologies, but we have the adaptability in the tool so that those who do jump on board have the tools in the toolbox at their fingertips. Things like the compare and merge, things like the reverse-engineering capabilities, so they can see what the existing data sources are, so they can actually compare and generate out the incremental DDL scripts very quickly. And as they start to embrace that and see that they can have the productivity, their inclination to embrace agile even more increases.

Eric Kavanagh: Well, this is great stuff, folks. I just posted a link to the slides there in the chat window, so check that out; it's a little bit of a Bitly in there for you. We do have all these webcasts for later viewing. Feel free to share them with your friends and colleagues. And Ron, thank you very much for your time today, you're always pleasant to have on the show – a real expert in the field and it's obvious that you know your stuff. So, thanks to you and thanks to IDERA and, of course, to Dez and our very own Robin Bloor.

And with that we're going to bid you farewell, folks. Еще раз спасибо за ваше время и внимание. We appreciate you sticking around for 75 minutes, that's a pretty good sign. Good show guys, we'll talk to you next time. Пока-пока.

Моделирование данных в гибкой среде