Zuhause Entwicklung Datenmodellierung in einer agilen Umgebung

Datenmodellierung in einer agilen Umgebung

Anonim

Von Techopedia Staff, 16. November 2016

Imbiss: Moderator Eric Kavanagh erläutert mit Robin Bloor, Dez Blanchfield und Ron Huizenga von IDERA die Bedeutung der Datenmodellierung für die agile Entwicklung.

Du bist derzeit nicht angemeldet. Bitte melde dich an oder registriere dich, um das Video zu sehen.

Eric Kavanagh: Okay, meine Damen und Herren. Willkommen noch einmal zurück. Es ist Mittwoch um 4:00 EST. Das heißt, es ist Zeit für Hot Technologies. Ja in der Tat. Mein Name ist Eric Kavanagh, ich werde Ihr Gastgeber sein.

Für das heutige Thema ist es ein Oldie, aber ein Goodie. Es wird von Tag zu Tag besser, denn es prägt unsere Datenverwaltungswelt „Datenmodellierung in einer agilen Umgebung“. Auf Twitter @eric_kavanagh kann ich Ihnen nur eine Folie vorstellen. Wir sollten es wirklich auf diese Folie setzen. Darauf muss ich kommen.

So ist das Jahr heiß. Datenmodellierung gibt es schon immer. Es war wirklich das Herz und die Seele des Informationsmanagements, Datenmodelle zu entwerfen, Geschäftsmodelle zu verstehen und sie an Ihren Datenmodellen auszurichten. Das ist wirklich das, was du versuchst, oder?

Das Datenmodell stellt das Geschäft auf grundlegende Weise dar. Wie verändern all diese neuen Datenquellen das Spiel? Wir werden das herausfinden. Wir werden herausfinden, wie Sie agil auf dem Laufenden bleiben können. Und das ist natürlich das Wort des Jahres.

Robin Bloor ist bei uns, unserem Chefanalysten, Dez Blanchfield, der aus Sydney, Australien, anruft, und Ron Huizenga, Senior Product Manager von IDERA - ein langjähriger Freund von mir, ausgezeichneter Redner in diesem Bereich, kennt sich aus. Seien Sie also nicht schüchtern, fragen Sie Ihm die schwierigen Fragen, Leute, die schwierigen. Damit mache ich Robin zur Moderatorin und nehme sie mit.

Dr. Robin Bloor: Okay. Vielen Dank dafür, Eric. Ich muss über das Modellieren sagen, dass ich glaube, ich war tatsächlich in der Welt der IT, bevor es sie gab, in dem Sinne, dass ich mich an die Versicherungsgesellschaft erinnere, für die ich gearbeitet habe, dass wir einen Typen reinkamen, der uns alle eine Art gab Workshop zum Modellieren von Daten. Wir sehen also etwa 30 Jahre, sind es 30 Jahre? Vielleicht noch länger, vielleicht vor 35 Jahren. Eine lange, lange Zeit war Modeling ein Teil der Branche und hat natürlich nichts mit Damen auf Laufstegen zu tun.

Das, was ich sagen wollte, weil wir normalerweise über verschiedene Dinge sprechen, und ich dachte nur, ich würde den allgemeinen Überblick über das Modellieren geben, aber es gibt eine Realität, die jetzt offensichtlich wird.

Wir haben, wissen Sie, die Big-Data-Realität, wir haben mehr Daten, mehr Datenquellen, wir haben Datenströme, die in den letzten drei oder vier Jahren in die Gleichung eingegangen sind und beginnen, einen größeren Teil davon zu bekommen, und Es besteht ein größeres Bedürfnis, die Daten zu verstehen und die Änderungsrate zu erhöhen, wenn mehr Daten hinzugefügt und auch mehr Datenstrukturen verwendet werden.

Es ist eine schwierige Welt. Hier ist ein Bild davon, das wir vor ungefähr drei Jahren gezeichnet haben. Wenn Sie jedoch das Streaming in den Mix einbeziehen und die Vorstellung von Datenraffinerie, Datenhub, Datenverbindung oder was auch immer haben, sehen Sie, dass es Daten gibt, die es gibt wirklich in Ruhe, in dem Sinne, dass es nicht viel bewegt. Und dann sind da noch die Daten, die Streams und die gesamte Transaktionsanwendung. Heutzutage gibt es Ereignisse, Ereignisdatenflüsse, die in Anwendungen auftreten und möglicherweise erforderlich sind, und heutzutage sind die Lambda-Architekturen, von denen alle sprechen, echt Auswirkungen auf das gesamte Datenfeld haben.

Und denken Sie heutzutage daran, dass es eine Datenschicht gibt. Die Datenschicht existiert auf eine Art virtuelle Art und Weise, in dem Sinne, dass ein gutes Stück davon in der Cloud sein könnte und es über Rechenzentren verteilt sein kann, es kann auf Workstations vorhanden sein. Die Datenschicht ist in gewissem Maße überall und in diesem Sinne gibt es überall Prozesse, die auf die eine oder andere Weise versuchen, die Daten zu verarbeiten und die Daten zu verschieben. Aber auch zu wissen, was es ist, wenn Sie es bewegen, ist eine große Sache.

Wenn wir die Datenmodellierung im allgemeinsten Sinne betrachten, haben Sie am Ende dieses Stapels Dateien und Datenbanken. Sie haben Datenelemente, die Schlüssel, Elementdefinitionen, Aliase, Synonyme und bestimmte physikalische Formate haben, und dann haben wir diese Metadatenschicht.

Das Interessante an Metadaten ist, dass es bei Metadaten ausschließlich darum geht, wie Daten ihre Bedeutung erhalten. Wenn Sie keine Metadaten haben, können Sie bestenfalls die Bedeutung der Daten erraten, aber Sie werden eine Menge Schwierigkeiten haben. Metadaten müssen vorhanden sein, aber Bedeutung hat Struktur. Ich möchte nicht auf die Philosophie der Bedeutung eingehen, aber selbst im Umgang mit Daten gibt es eine Menge Raffinesse im menschlichen Denken und in der menschlichen Sprache, die sich nicht leicht in Daten ausdrücken lässt. Aber auch in Bezug auf die Daten, die wir tatsächlich in der Welt verarbeiten, haben Metadaten Bedeutung und die Struktur der Metadaten - ein Datenelement im Verhältnis zum anderen und was dies bedeutet, wenn sie zusammengesetzt werden und was dies bedeutet, wenn sie Werden Daten mit anderen verknüpft, müssen sie modelliert werden. Es ist nicht gut genug, nur Metadaten-Tags für Dinge aufzuzeichnen. Sie müssen tatsächlich die Bedeutung pro Struktur und die Beziehung zwischen den Strukturen aufzeichnen.

Auf der obersten Ebene befinden sich die Geschäftsdefinitionen, bei denen es sich normalerweise um eine Ebene handelt, die versucht, Bedeutung zwischen Metadaten zu übertragen. Dies ist eine Form der Datendefinition, die die Art und Weise berücksichtigt, wie Daten auf dem Computer organisiert sind, und die menschliche Bedeutung. Sie haben also Geschäftsbegriffe, Definitionen, Beziehungen und Konzepte auf Entitätsebene, die in dieser Ebene existieren. Und wenn wir eine Inkohärenz zwischen diesen Ebenen haben wollen, müssen wir Datenmodellierung haben. Es ist nicht wirklich optional. Je mehr Sie tatsächlich automatisieren können, desto besser. Aber weil es mit Sinn zu tun hat, ist es wirklich schwierig, sich abzuwechseln. Es ist einfach genug, die Metadaten in einem Datensatz zu erfassen und sie aus einer Reihe von Bedeutungen abzurufen, aber es sagt Ihnen nicht, wie die Datensätze aufgebaut sind, was die Datensätze bedeuten oder in welchem ​​Kontext sie sich befinden.

Darum geht es meiner Meinung nach bei der Datenmodellierung. Zu beachtende Punkte: Je komplexer das Datenuniversum wird, desto mehr müssen Sie es modellieren. Mit anderen Worten, wir fügen der Welt nicht nur mehr Instanzen von Dingen hinzu, die Datensätzen entsprechen würden, sondern wir fügen der Welt tatsächlich mehr Bedeutung hinzu, indem wir Daten zu immer mehr Dingen erfassen. Es wird immer komplexer, was wir verstehen müssen.

In der Theorie gibt es ein Datenuniversum und wir brauchen eine Sicht darauf. In der Praxis sind die eigentlichen Metadaten Teil des Datenuniversums. Es ist also keine einfache Situation. Die Modellierung beginnt von oben nach unten und von unten nach oben. Sie müssen in beide Richtungen bauen, und der Grund dafür ist, dass Daten für den Computer und den Prozess, der sie verarbeiten muss, eine Bedeutung haben, aber eine eigene Bedeutung haben. Sie benötigen also eine Bottom-up-Bedeutung, die der Software entspricht, die auf die Daten zugreifen muss, und Sie benötigen die Top-down-Bedeutung, damit die Menschen sie verstehen können. Das Erstellen von Metadatenmodellen ist kein Projekt und kann es auch nie sein. es ist eine fortlaufende Aktivität - sollte eine fortlaufende Aktivität in jeder Umgebung sein, in der sie existieren. Glücklicherweise gibt es viele Umgebungen, in denen dies nicht der Fall ist und die Dinge entsprechend außer Kontrolle geraten.

In Zukunft nimmt die Modellierung mit fortschreitender Technologie an Bedeutung zu. Das ist meine Meinung. Aber wenn Sie sich das Internet der Dinge anschauen, können wir Mobilgeräte besser verstehen als früher, obwohl es neue Dimensionen einführt: die Dimension des Standorts mit Mobilgeräten. Sobald Sie das IoT erreicht haben, sehen wir uns außergewöhnliche Datenprobleme an, die wir noch nie zuvor hatten, und wir müssen auf die eine oder andere Weise genau verstehen, was wir haben und wie wir es aggregieren können. Was wir tun können, um Sinn aus der Aggregation zu ziehen, und was wir damit tun können, wenn wir es verarbeitet haben.

Ich denke, das habe ich genug gesagt. Ich werde an Dez Blanchfield weitergeben, der etwas ganz anderes sagen wird.

Dez Blanchfield: Danke. Es ist immer eine schwierige Aufgabe, aber wir haben uns darauf geeinigt und dies kurz im Preshow-Banter besprochen. Wenn Sie sich früh einwählen, haben Sie wahrscheinlich eine ganze Reihe großartiger Juwelen erwischt. Einer der Imbissbuden, und ich möchte nicht den Donner dieser besonderen Imbissbude stehlen, aber einer der Imbissbuden aus unserer Vorpremiere, die ich mit Ihnen teilen möchte, falls Sie ihn nicht mitbekommen haben, war nur das Thema Die Reise der Daten, und es fiel mir auf, sie tatsächlich aufzuschreiben, indem ich über die Reise nachdachte, die die Daten in einem anderen Kontext um die Lebensdauer der Generationen herum zurücklegen - Jahr, Monate, Woche, Tag, Stunde, Minute, Sekunde - und den Kontext um die Daten herum in diesem Kontext positioniert. Ob ich ein Entwickler bin, der Code ausführt, oder ob ich ein Datenspezialist bin, und ich denke über die Struktur und das Format sowie die Metadaten um jedes der Elemente nach oder über die Art und Weise, wie die Systeme und das Geschäft damit interagieren.

Es ist ein interessanter kleiner Vorgeschmack, aber lassen Sie mich trotzdem kurz darauf eingehen. Insbesondere das Daten-Design ist ein Ausdruck, mit dem ich über alle Daten und insbesondere die Entwicklung von Anwendungen oder der Datenbankinfrastruktur spreche. Ich denke, dass Datendesign ein Begriff ist, der alles in meinem Kopf sehr gut erfasst. Wenn wir heutzutage über Datendesign sprechen, sprechen wir über modernes agiles Datendesign, und ich bin der Ansicht, dass es noch nicht so lange her ist, dass Entwickler und Datenexperten alleine gearbeitet haben. Sie befanden sich in ihren eigenen Silos und Designstücke gingen von einem Silo zum anderen. Aber ich bin heutzutage der Ansicht, dass sich nicht nur der Fall geändert hat, sondern dass sich auch etwas ändern muss. Es ist eine Art Notwendigkeit, und das sind die Anwendungsentwickler und alles, was mit der Entwicklung zu tun hat, die sich mit Daten befassen, die Designer, die die relevanten Gestaltungselemente von Schemata und Feldern sowie Datensätzen und Standort- und Datenbanksystemen und -infrastrukturen, die Modellierung und das gesamte Management ausführen um das herauszufordern. Das ist jetzt ein Mannschaftssport und daher mein Bild von einer Gruppe von Menschen, die als Team aus einem Flugzeug springen, um das visuell interessante Bild von Menschen, die durch den Himmel fallen, wiederzugeben.

Drittens, was ist passiert, um dies zu bewirken? Nun, es gibt einen Artikel von 1986, der von einigen Herren verfasst wurde, deren Namen ich verzweifelt zu würdigen versuchte. Ich glaube, Hirotaka Takeuchi und Ikujiro Nonaka haben einen Artikel mit dem Titel „Moving the Scrum Downfield“ veröffentlicht Diese Idee einer Methode zum Gewinnen eines Rugbyspiels geht von dieser Scrum-Aktivität aus, bei der sich jeder an einem Ort bewegt und zwei Teams im Wesentlichen die Köpfe in einem sogenannten Scrum einschließen, um zu versuchen, die Kontrolle über den Ball zu erlangen und ihn auf dem Spielfeld zu spielen Gehen Sie zur Versuchslinie und berühren Sie den Boden mit dem Ball. Sie erhalten einen Punkt, der als Trigon bezeichnet wird. Wiederholen Sie diesen Vorgang und Sie erhalten mehr Punkte für das Team.

Dieser Artikel wurde 1986 in der Harvard Business Review veröffentlicht und hat seltsamerweise viel Beachtung gefunden. Es hat viel Aufmerksamkeit auf sich gezogen, weil es erstaunliche neue Konzepte eingeführt hat. Hier ist ein Screenshot von der Vorderseite. Also nahmen sie dieses Konzept des Scrums aus dem Rugby-Spiel und brachten es ins Geschäft, insbesondere in das Spiel des Designs und der Projektabwicklung, insbesondere der Projektabwicklung.

Was scrum getan hat, war, uns eine neue Methodik im Vergleich zu PRINCE2 oder PMBOK zu geben, die wir zuvor in der so genannten Wasserfall-Methodik verwendet hatten. Sie wissen, tun dies und das und das und befolgen sie nacheinander und verbinden sie Alle Punkte in der Nähe, was davon abhängt, was Sie hatten, oder machen Sie Teil zwei erst, wenn Sie Teil eins gemacht haben, weil es von Teil eins abhängt. Was es uns gebracht hat, ist eine neue Methodik, um ein bisschen agiler zu sein. Daher kommt der Begriff, wie wir Dinge liefern, und speziell um die Projektabwicklung an der Basis von Design und Entwicklung.

Einige der Hauptmieter - nur damit ich weitermache - sind die Hauptmieter von scrum. Es wurde die Idee des Instabilitätsaufbaus eingeführt, dass effektiv, wenn man an die Angst vor Chaos denkt, die Welt in einem Zustand des Chaos existiert, sich aber der Planet bildet, der interessant ist, also Instabilität aufbaut, die Fähigkeit, ein wenig herumzuspringen und noch tatsächlich Dinge funktionieren lassen, sich selbst organisierende Projektteams, überlappende Gefälligkeiten durch sehr verantwortungsvolle Entwicklung, verschiedene Arten des Lernens und der Kontrolle durch die Reise der Projektabwicklung, den organisatorischen Lerntransfer. Wie nehmen wir also Informationen aus einem Teil des Geschäfts und übertragen sie von Personen, die eine Idee haben, aber keinen Code entwickeln oder keine Datenbanken und Infrastrukturen entwickeln, sondern Daten an diese Personen? Und speziell zeitlich begrenzte Ergebnisse. Mit anderen Worten, lassen Sie uns dies für einen bestimmten Zeitraum tun, entweder einen Tag wie in 24 Stunden oder eine Woche oder ein paar Wochen, und sehen, was wir tun können, und dann zurücktreten und es uns ansehen.

Wenn Sie das Wortspiel entschuldigen, dann ist dies wirklich ein neues Spiel in der Projektentwicklung und die drei Kernkomponenten, die sinnvoll sein werden, wenn wir hier weiter vorankommen - es gibt das Produkt: Alle diese Leute haben die Idee und haben sie ein Bedürfnis, etwas zu erledigen und die Geschichte, die sie umgibt. Entwickler, die nach dem agilen Modell arbeiten, ihre Geschichten zu bekommen und tägliche Stand-ups zu absolvieren, indem sie die Scrum-Methode verwenden, um darüber zu diskutieren und zu verstehen, was sie tun müssen, und dann einfach loslegen und es tun. Dann haben wir von Scrum-Meistern gehört, die diese ganze Sache beaufsichtigen und die Methodik gut genug verstehen, um sie voranzutreiben. Wir haben alle diese Bilder gesehen, die ich auf der rechten Seite hier von Wänden und Whiteboards mit Post-It-Notizen gesehen habe und die als Kanban-Wände gedient haben. Wenn Sie nicht wissen, wer Kanban ist, lade ich Sie zu Google ein, wer Herr Kanban war und warum sich die Art und Weise geändert hat, wie wir in einer Wand buchstäblich, aber in einem Projekt Dinge von einer Seite zur anderen bewegen.

Auf einen Blick sieht der Scrum-Workflow so aus: Er enthält eine Liste von Dingen, die eine Organisation ausführen möchte, und führt sie durch eine Reihe von Dingen, die wir Sprints nennen und die in 24-Stunden-Perioden, monatelange Perioden und uns unterteilt sind Holen Sie sich diese inkrementelle Reihe von Ausgängen. Es ist eine bedeutende Änderung in der Art und Weise, wie Projekte bis zu diesem Zeitpunkt durchgeführt wurden, da ein Teil davon wie die US-Armee, die einen großen Teil an der Entwicklung von PMBOK beteiligt war, wie die Idee, den Panzer nicht ins Feld zu bringen bis Sie Kugeln in das Ding setzen, denn wenn ein Panzer auf dem Feld keine Kugeln hat, ist es nutzlos. Also werden in Teil eins Kugeln in den Panzer gelegt, in Teil zwei wird der Panzer auf das Feld gelegt. Leider hat das, was mit Entwicklern in der Entwicklungswelt passiert ist, diese agile Methodik irgendwie in den Griff bekommen und ist, wenn Sie das Wortspiel verzeihen, bei einem Sprint davongekommen.

Wenn wir an Agilität denken, denken wir normalerweise an Entwickler und nicht an Datenbanken und alles, was mit der Welt der Datenbanken zu tun hat. Es war ein unglückliches Ergebnis, denn die Realität ist, dass Agilität nicht auf Entwickler beschränkt ist. Tatsächlich wird der Begriff "agil" in meinen Augen häufig fälschlicherweise ausschließlich mit Softwareentwicklern und nicht mit Datenbankdesignern und -architekten in Verbindung gebracht. Die gleichen Herausforderungen, denen Sie in der Software- und Anwendungsentwicklung gegenüberstehen, sind immer mit dem Entwurf und der Entwicklung sowie dem Betrieb und der Wartung der Dateninfrastruktur und damit insbesondere der Datenbanken verbunden. Zu den Akteuren in dieser speziellen Datengruppe gehören Datenarchitekten, Entwickler, Administratoren, Manager der Datenbankinfrastrukturen und die eigentlichen Datenbanken bis hin zu Business- und Systemanalytikern und Architekten sowie Personen, die sich mit den Systemen auseinandersetzen und darüber nachdenken und Geschäftstätigkeit und wie wir dazu gekommen sind, Daten durch diese zu fließen.

Es ist ein Thema, das ich regelmäßig anspreche, weil es eine ständige Enttäuschung von mir ist, da ich der Ansicht bin, dass Datenspezialisten jetzt in jede Komponente der Projektabwicklung, insbesondere in die Entwicklung, eng einbezogen werden müssen - nicht sollten. Wenn wir das nicht tun, dann geben wir uns wirklich nicht die beste Chance für ein gutes Ergebnis. Wir müssen oft zurückkehren und über diese Dinge nachdenken, weil es ein Szenario gibt, wir zu einer Anwendung kommen, die gerade erstellt wird, und wir entdecken, dass die Entwickler nicht immer Datenexperten sind. Das Arbeiten mit Datenbanken erfordert sehr spezielle Kenntnisse, insbesondere in Bezug auf Daten, und bildet eine Erfahrung. Sie werden nicht sofort über Nacht ein Datenbankguru oder ein Experte für Datenwissen. Dies ist oft etwas, das aus einer lebenslangen Erfahrung stammt und sicherlich mit Leuten wie Dr. Robin Bloor über den Kodex von heute, der das Buch ziemlich reichhaltig geschrieben hat.

In vielen Fällen - und es ist bedauerlich, aber es ist Realität - gibt es zwei Teile dieser Medaille: Softwareentwickler haben einen eigenen Blackout in Bezug auf Datenbankspezialisten und haben die Fähigkeiten aufgebaut, die Sie für die Modellierung des Datenbankdesigns benötigen, wobei die Modellentwicklung genau das Richtige ist Grundlegend für die Entwicklung von Gurus, wie Daten eingehen und wie die Organisation der Reise aussieht und wie sie aussehen sollte oder nicht, oder zweifellos, dass sie aufgenommen werden und verstehen, dass sie normalerweise in nativen Fähigkeiten erworben wurden, die für Softwareentwickler festgelegt wurden. Zu den allgemeinen Herausforderungen, mit denen wir konfrontiert sind, gehören die grundlegende Erstellung und Verwaltung des eigentlichen Datenbankentwurfs, die Dokumentation der Daten und der Datenbankinfrastruktur sowie die Wiederverwendung dieser Datenbestände und Schemadesigns. Schema-Generierungen, Verwaltung und Pflege von Schemas und deren Verwendung, das Teilen des Wissens darüber, warum dieses Schema auf eine bestimmte Art und Weise entworfen wurde, und die damit verbundenen Stärken und Schwächen verursachen im Laufe der Zeit Datenänderungen, Datenmodellierung und -typen von Modellen, die wir auf die Systeme und Daten anwenden, die wir durch sie fließen. Datenbank-Code-Generierung und es geht um die Integration und dann modelliert Daten um sie herum und dann schneller Zugriff auf die Kontrolle der Sicherheit um die Daten, die Integrität der Daten verschieben wir die Daten, während wir ihre Integrität beibehalten, gibt es genug Metadaten um Sollte der Vertrieb alle Datensätze in der Tabelle sehen oder sollte er nur die Adresse, den Vornamen und den Nachnamen sehen, die Ihnen die Postsendungen zusenden? Und dann ist natürlich die größte Herausforderung, Datenbankplattformen zu modellieren, was für sich genommen eine völlig andere Konversation ist.

Ich bin der festen Überzeugung, dass es in Anbetracht all dieser Umstände absolut entscheidend ist, dass sowohl die Datenspezialisten als auch die Entwickler über die geeigneten Tools verfügen und dass diese Tools in der Lage sind, Projekte teamorientiert umzusetzen. Design, Entwicklung und laufende betriebliche Wartung. Wissen Sie, Dinge wie die projektübergreifende Zusammenarbeit zwischen Datenexperten und Softwareentwicklern, ein einziger Wahrheitsgehalt oder eine einzige Wahrheitsquelle für alles rund um die Dokumentation der Datenbanken selbst, der Daten, der Schemata, von denen die Datensätze stammen, der Eigentümer dieser Datensätze . Ich denke in der heutigen Zeit ist es absolut entscheidend, dass wir dieses Nirvana von Daten zum König machen, dass die richtigen Tools vorhanden sein müssen, da die Herausforderung jetzt zu groß ist, um es manuell zu tun, und wenn es Menschen gibt Wenn wir uns innerhalb und außerhalb einer Organisation bewegen, ist es für uns zu einfach, nicht denselben Prozess oder dieselbe Methode zu befolgen, die eine Person möglicherweise eingerichtet hat, die gut ist, und diese Fähigkeiten und Fertigkeiten nicht unbedingt für die Zukunft zu übertragen.

In diesem Sinne gehe ich zu unserem guten Freund bei IDERA und höre von diesem Tool und wie es genau diese Dinge angeht.

Ron Huizenga: Vielen Dank und danke Robin und Dez, dass sie die Bühne wirklich gut vorbereitet haben. In einigen Dingen, über die ich gesprochen habe, wird es ein wenig Überschneidungen geben. Aber sie haben wirklich ein sehr solides Fundament für einige der Konzepte gelegt, über die ich aus der Perspektive der Datenmodellierung sprechen werde. Und viele der Aussagen, die sie gemacht haben, spiegeln meine eigenen Erfahrungen wider, als ich als Berater für Datenmodellierung und Datenarchitektur zusammen mit Teams gearbeitet habe - sowohl in den Anfängen als auch in der Entwicklung zu moderneren Produkten mit Projekten, bei denen wir agile Lösungen verwendeten Methoden zur Bereitstellung von Lösungen.

Worüber ich heute sprechen werde, basiert auf diesen Erfahrungen sowie auf einem Blick auf die Tools und einige der Fähigkeiten in den Tools, die wir verwenden, um uns auf diesem Weg zu unterstützen. Was ich ganz kurz behandeln werde, ist, dass ich nicht sehr detailliert auf Scrum eingehen werde. Wir hatten nur einen wirklich guten Überblick darüber, was das ist. Ich werde darüber sprechen, was ist ein Datenmodell und was bedeutet es für uns wirklich? Und wie können wir das Konzept des agilen Datenmodellierers in unseren Organisationen umsetzen, wie können wir die Datenmodellierer einbeziehen, wie ist die Beteiligung von Modellierern und Architekten während des Sprints, welche Art von Aktivitäten sollten sie durchführen? Und vor diesem Hintergrund: Welche wichtigen Funktionen des Modellierungswerkzeugs helfen uns dabei, diese Arbeit zu vereinfachen? Dann werde ich ein wenig über die geschäftlichen Werte und Vorteile sprechen, die ein Datenmodellierer mit sich bringt, oder über die Art und Weise, wie ich die Geschichte erzählen werde: Die Probleme, einen Datenmodellierer nicht vollständig in die Projekte eingebunden zu haben, und ich zeige Ihnen, dass basierend auf der Erfahrung und einem Fehlerdiagramm ein Vorher-Nachher-Bild eines tatsächlichen Projekts vorliegt, an dem ich vor vielen Jahren beteiligt war. Und dann fassen wir noch ein paar Punkte zusammen und haben dann noch Fragen und Antworten dazu.

Kurz gesagt, ER Studio ist eine sehr leistungsstarke Suite, die viele verschiedene Komponenten enthält. Der Datenarchitekt, in dem die Datenmodellierer und -architekten die meiste Zeit mit der Datenmodellierung verbringen. Es gibt auch andere Komponenten, über die wir heute überhaupt nicht sprechen werden, wie zum Beispiel den Business Architect, in dem wir die Prozessmodellierung durchführen, und den Software Architect für einige der UML-Modellierungen. Dann gibt es das Repository, in dem wir einchecken, die Modelle gemeinsam nutzen und die Teams an diesen zusammenarbeiten und sie auf dem Team-Server veröffentlichen können, sodass mehrere an einem Projekt beteiligte Stakeholder-Zielgruppen die von uns gefundenen Artefakte tatsächlich sehen können. Sie erstellen sowohl aus Datenperspektive als auch aus den anderen Dingen, die wir in der Projektabwicklung selbst ausführen.

Worauf ich mich heute konzentrieren werde, sind ein paar Dinge, die wir in Data Architect sehen werden, und weil es wirklich wichtig ist, dass wir die Zusammenarbeit von Repository-basierten Aspekten haben. Vor allem, wenn wir über Konzepte wie Change Management sprechen, die für agile Entwicklungsprojekte, aber auch für jede andere Art der zukünftigen Entwicklung unerlässlich sind.

Sprechen wir also einen Moment über den Agile Data Modeler. Wie bereits erwähnt, müssen unbedingt Datenmodellierer und / oder -architekten in die agilen Entwicklungsprozesse einbezogen werden. Historisch gesehen haben wir uns wirklich Gedanken über Agilität in Bezug auf die Entwicklung gemacht, und es gibt ein paar Dinge, die dazu geführt haben, dass dies tatsächlich geschehen ist. Ein Teil davon war nur auf die Art und Weise zurückzuführen, wie sich die Entwicklung selbst entwickelte. Als die agile Entwicklung begann und wir mit diesem Konzept von sich selbst organisierenden Teams begannen, gab es eine sehr wörtliche Interpretation von Dingen wie dem Wir brauchen nur eine Gruppe von Entwicklern, die sich selbst organisierende Teams bilden und die von vielen interpretiert werden, um eine vollständige Lösung zu erstellen. Ob es darum geht, den Code, die Datenbanken oder die dahinter liegenden Datenspeicher zu entwickeln, und alles wurde den Entwicklern überlassen. Aber was damit passiert, ist, dass Sie die besonderen Fähigkeiten der Menschen verlieren. Ich habe festgestellt, dass die stärksten Teams diejenigen sind, die sich aus Menschen mit unterschiedlichem Hintergrund zusammensetzen. Eine Kombination aus starken Softwareentwicklern, Datenarchitekten, Datenmodellierern, Geschäftsanalysten und Geschäftsinteressenten, die alle zusammenarbeiten, um eine Endlösung zu entwickeln.

Worüber ich heute auch spreche, ist, dass ich dies im Rahmen eines Entwicklungsprojekts tun werde, bei dem wir eine Anwendung entwickeln, der offensichtlich auch die Datenkomponente zugeordnet sein wird. Wir müssen jedoch einen Schritt zurückgehen, bevor wir dies tun, da wir feststellen müssen, dass es nur sehr wenige Greenfield-Entwicklungsprojekte gibt, bei denen wir uns voll und ganz auf die Erstellung und den Verbrauch von Daten konzentrieren, die nur innerhalb dieses Entwicklungsprojekts selbst begrenzt sind . Wir müssen einen Schritt zurückgehen und den organisatorischen Gesamtsichtspunkt aus Daten- und Prozesssicht betrachten. Wir stellen nämlich fest, dass die Informationen, die wir verwenden, möglicherweise bereits irgendwo in der Organisation vorhanden sind. Als Modellierer und Architekten bringen wir dies ans Licht, damit wir wissen, woher wir diese Informationen in den Projekten selbst beziehen können. Wir kennen auch die beteiligten Datenstrukturen, da wir Entwurfsmuster haben, genau wie Entwickler Entwurfsmuster für ihren Code haben. Und wir müssen auch diese organisatorische Gesamtperspektive einnehmen. Wir können nicht nur Daten im Kontext der Anwendung betrachten, die wir erstellen. Wir müssen die Daten modellieren und sicherstellen, dass sie dokumentiert werden, da sie weit über die Anwendungen hinausreichen. Diese Anwendungen kommen und gehen, aber wir müssen in der Lage sein, die Daten zu betrachten und sicherzustellen, dass sie robust und gut strukturiert sind. Dies gilt nicht nur für Anwendungen, sondern auch für Entscheidungen, die Aktivitäten, BI-Berichte und die Integration in andere interne und interne Anwendungen betreffen auch außerhalb unserer Organisationen. Wir müssen uns also das gesamte Gesamtbild der Daten und den Lebenszyklus dieser Daten ansehen und den Weg der Informationen in der gesamten Organisation von der Wiege bis zur Bahre verstehen.

Zurück zu den eigentlichen Teams und wie wir tatsächlich arbeiten müssen, wurde die Wasserfallmethode als zu langsam empfunden, um Ergebnisse zu liefern. Weil es, wie im Beispiel des Panzers gezeigt, einen Schritt nach dem anderen war und es oft zu lange dauerte, um ein brauchbares Endergebnis zu erzielen. Was wir jetzt tun, ist, dass wir einen iterativen Arbeitsstil haben müssen, bei dem wir schrittweise Komponenten davon entwickeln und ihn im Laufe der Zeit ausarbeiten, wo wir brauchbaren Code oder brauchbare Artefakte für jeden Sprint produzieren. Das Wichtigste ist die Zusammenarbeit zwischen den technischen Stakeholdern im Team und den geschäftlichen Stakeholdern, da wir zusammenarbeiten, um diese User Storys in eine umsetzbare Vision von Code und den Daten, die diesen Code ebenfalls unterstützen, umzusetzen. Und der Agile Data Modeler selbst wird häufig feststellen, dass wir nicht genügend Modellierer in Organisationen haben, sodass ein Datenmodellierer oder Architekt möglicherweise mehrere Teams gleichzeitig unterstützt.

Und der andere Aspekt ist, dass wir, auch wenn wir mehrere Modellierer haben, sicherstellen müssen, dass wir über ein Tool-Set verfügen, das die Zusammenarbeit mehrerer Projekte ermöglicht, die zur gleichen Zeit laufen und diese gemeinsam nutzen Datenartefakte und die Ein- und Auscheckfunktionen. Ich werde das sehr schnell durchgehen, da wir es bereits im vorherigen Abschnitt behandelt haben. Die wahre Prämisse von Agilität ist, dass Sie Dinge aus dem Rückstand, aus Geschichten oder Anforderungen ableiten. Innerhalb der Iterationen arbeiten wir als Gruppe zusammen. In der Regel ist ein zweiwöchiger oder ein einmonatiger Sprint je nach Organisation sehr häufig. Und auch tägliche Überprüfungs- und Stand-up-Meetings, damit wir Blocker beseitigen und sicherstellen, dass wir alle Aspekte vorantreiben, ohne in verschiedenen Bereichen angehalten zu werden. Und in diesen Sprints möchten wir sicherstellen, dass wir brauchbare Ergebnisse als Teil jedes Sprints produzieren.

Nur eine etwas andere Sichtweise, die ich noch weiter ausbauen möchte. Scrum ist die Methodik, über die ich hier genauer sprechen werde, und wir haben das vorherige Bild im Grunde nur um ein paar andere Facetten erweitert. Normalerweise gibt es einen Produktstau und dann einen Sprintstau. Wir haben also einen Gesamtstau, bei dem wir zu Beginn jeder Sprint-Wiederholung sagen: "Was bauen wir aus diesem Sprint?", Und das wird in einem Sprint-Planungstreffen gemacht. Dann lösen wir die damit verbundenen Aufgaben auf und führen diese ein bis vierwöchigen Sprints mit diesen täglichen Überprüfungen durch. Während wir dies tun, verfolgen wir unsere Fortschritte anhand von Abbranddiagrammen und Abbranddiagrammen, um im Grunde zu verfolgen, was übrig bleibt, um zu bauen, im Vergleich zu dem, was wir bauen, um festzustellen, wie unsere Entwicklungsgeschwindigkeit ist Zeitplan, all diese Arten von Dingen. All dies wird kontinuierlich während des Sprints ausgearbeitet, anstatt ein paar Monate später herauszufinden, dass Sie zu kurz kommen und den Projektzeitplan verlängern müssen. Und ganz wichtig ist, dass alle Teams am Ende einen Sprint-Rückblick und einen Sprint-Rückblick haben. Bevor Sie also mit der nächsten Iteration beginnen, überprüfen Sie, was Sie getan haben, und suchen nach Möglichkeiten, die Sie haben beim nächsten mal durch verbessern.

In Bezug auf die zu erbringenden Leistungen handelt es sich im Grunde genommen um eine Folie, die die typischen Vorgänge bei Sprints zusammenfasst. Und es ist sehr entwicklungsorientiert, so viele Dinge, die wir hier sehen, wie funktionale Designs und Anwendungsfälle, die Durchführung von Design-Code-Tests, wenn wir uns diese Kästchen hier ansehen, und ich werde sie nicht durchgehen In jeder Detailebene sind sie sehr entwicklungsorientiert. Und darunter verbirgt sich die Tatsache, dass wir auch die Daten liefern müssen, die damit einhergehen, um diese Bemühungen zu unterstützen. Jedes Mal, wenn wir Dinge wie die Backlogs, die Anforderungen und User Storys sehen, müssen wir uns überlegen, welche Entwicklungsschritte wir ausführen müssen, welche Analyseschritte wir ausführen müssen und wie steht es mit den Datenentwurf oder Datenmodell: Wie steht es mit Dingen wie den Geschäftsglossaren, damit wir allen Artefakten, die wir produzieren, eine Geschäftsbedeutung zuordnen können? Weil wir diese brauchbaren Ergebnisse in jedem Sprint produzieren müssen.

Einige Leute werden sagen, dass wir am Ende jedes Sprints brauchbaren Code produzieren müssen. Das ist nicht unbedingt der Fall, das heißt, in einer reinsten Entwicklungsperspektive, aber es kann vorkommen, dass wir - besonders zu Beginn - häufig so etwas wie den Sprint-Null-Punkt haben, bei dem wir uns nur darauf konzentrieren, Dinge aufzusetzen und Dinge wie unsere Teststrategien zu verwirklichen Platz. Ein übergeordnetes Design für den Einstieg, bevor wir beginnen, die Details auszufüllen und sicherzustellen, dass wir eine saubere Sammlung von Startgeschichten oder Anforderungen haben, bevor wir andere Zielgruppen einbeziehen und uns dann im weiteren Verlauf als Team weiterentwickeln. Es gibt immer ein bisschen Vorbereitungszeit, also werden wir ziemlich oft eine Sprint-Null oder sogar eine Sprint-Null und eine Sprint-Eins haben. Es könnte sich um eine Startphase handeln, bevor wir die Lösung auf Hochtouren bringen.

Lassen Sie uns in diesem Zusammenhang ganz kurz auf Datenmodelle eingehen. Wenn Menschen an Datenmodelle denken, denken sie oft, dass ein Datenmodell ein Bild davon ist, wie die verschiedenen Informationen miteinander verbunden sind - das ist nur die Spitze des Eisbergs. Um den Geist der Art und Weise, wie Sie sich der Datenmodellierung wirklich nähern möchten - sei es in der agilen Entwicklung oder in anderen Bereichen -, vollständig zu verkörpern, müssen Sie erkennen, dass das Datenmodell, wenn es richtig durchgeführt wird, Ihre vollständige Spezifikation für die Bedeutung dieser Daten in der Organisation und darstellt wie es in den Back-End-Datenbanken bereitgestellt wird. Wenn ich von Datenbanken spreche, dann meine ich nicht nur die relationalen Datenbanken, die wir möglicherweise verwenden, sondern auch die heutigen Architekturen, in denen wir Big Data- oder NoSQL-Plattformen haben, wie ich sie am liebsten nenne. Dies gilt auch für diese großen Datenspeicher, da wir möglicherweise viele verschiedene Datenspeicher kombinieren, um Informationen zu verbrauchen und in unsere Lösungen zu integrieren sowie um festzustellen, wie wir diese Informationen beibehalten oder auch aus unseren Lösungen speichern.

Möglicherweise arbeiten wir im Kontext einer bestimmten Anwendung gleichzeitig mit mehreren Datenbanken oder Datenquellen. Was sehr wichtig ist, ist, dass wir in der Lage sind, eine vollständige Spezifikation zu haben, also eine logische Spezifikation dessen, was dies für eine Sprint-Organisationsperspektive bedeutet, was die physischen Konstrukte im Hinblick darauf sind, wie wir die Daten tatsächlich definieren, die Beziehungen zwischen ihnen Ihre Datenbanken, Ihre referenziellen Integritätsbeschränkungen, Prüfbeschränkungen, all diese Validierungselemente, über die Sie normalerweise nachdenken. Die beschreibenden Metadaten sind äußerst wichtig. Woher wissen Sie, wie Sie die Daten in Ihren Anwendungen nutzen können? Es sei denn, Sie können es definieren und wissen, was es bedeutet, oder Sie wissen, woher es kommt, um sicherzustellen, dass Sie die richtigen Daten in diesen Anwendungen verwenden. Stellen Sie sicher, dass wir die richtigen Namenskonventionen und vollständigen Definitionen haben, was nicht nur ein vollständiges Datenwörterbuch bedeutet die Tabellen, aber die Spalten, aus denen diese Tabellen bestehen - und detaillierte Hinweise zur Verwendung dieser Informationen, da diese Wissensbasis aufgebaut werden muss, da diese Informationen auch nach Abschluss dieser Anwendung für andere Initiativen verwendet werden müssen, um sicherzustellen, dass dies auch möglich ist dass wir all das für zukünftige Implementierungen dokumentiert haben.

Wieder kommen wir zu Dingen wie Datentypen, Schlüsseln und Indizes. Das Datenmodell selbst verkörpert viele der Geschäftsregeln, die ins Spiel kommen. Die Beziehungen sind nicht nur Einschränkungen zwischen verschiedenen Tabellen. Sie helfen uns oft bei der Beschreibung der tatsächlichen Geschäftsregeln, wie sich diese Daten verhalten und wie sie als zusammenhängende Einheit zusammenarbeiten. Und natürlich sind Wertbeschränkungen sehr wichtig. Nun, eines der Dinge, mit denen wir uns ständig beschäftigen und die immer häufiger werden, sind Dinge wie Data Governance. Aus Sicht der Data Governance müssen wir uns also auch ansehen, was wir hier definieren. Wir wollen Dinge wie Sicherheitsklassifikationen definieren. Mit welchen Arten von Daten haben wir es zu tun? Was wird als Stammdatenverwaltung angesehen? Was sind die Transaktionsspeicher, die wir erstellen? Welche Referenzdaten verwenden wir in diesen Anwendungen? Wir müssen sicherstellen, dass dies in unseren Modellen richtig erfasst wird. Und auch hinsichtlich der Datenqualität gibt es bestimmte Informationen, die für ein Unternehmen wichtiger sind als andere.

Ich war an Projekten beteiligt, in denen wir über ein Dutzend älterer Systeme durch neue Geschäftsprozesse ersetzten und neue Anwendungen und Datenspeicher entwarfen, um diese zu ersetzen. Wir mussten wissen, woher die Informationen kamen. Was aus betriebswirtschaftlicher Sicht für die wichtigsten Informationen gilt: Wenn Sie sich diese bestimmte Datenmodellfolie ansehen, die ich hier habe, werden Sie feststellen, dass die unteren Felder in diesen bestimmten Entitäten, die nur eine kleine Teilmenge sind, I habe tatsächlich den geschäftlichen Wert erfassen können. Ob hoch, mittel oder niedrig für diese Art von Dingen für diese verschiedenen Konstrukte innerhalb der Organisation. Und ich habe auch Dinge wie die Stammdatenklassen erfasst, ob es sich um Mastertabellen handelt, ob es sich um Referenztabellen handelt oder ob es sich um Transaktionen handelt. So können wir unsere Metadaten in unseren Modellen erweitern, um uns viele andere Merkmale außerhalb der Daten selbst zu verleihen, was uns bei anderen Initiativen außerhalb der ursprünglichen Projekte wirklich geholfen hat und diese vorantreibt. Nun, das war eine Menge auf einer Folie, ich werde den Rest davon ziemlich schnell durchgehen.

Ich werde jetzt sehr schnell darüber sprechen, was ein Datenmodellierer macht, wenn wir diese verschiedenen Sprints durchlaufen. Zuallererst ein voller Teilnehmer an den Sprint-Planungssitzungen, in denen wir die User-Storys aufnehmen, festlegen, was wir in diesem Sprint liefern werden, und herausfinden, wie wir ihn strukturieren und liefern werden. Was ich auch als Datenmodellierer mache, ist, dass ich in verschiedenen Bereichen mit verschiedenen Entwicklern oder mit verschiedenen Leuten arbeiten werde. Eine der wichtigen Eigenschaften, die wir haben können, wenn wir ein Datenmodell erstellen, ist unsere Terminologie. Wir können dieses Datenmodell in verschiedene Ansichten unterteilen, unabhängig davon, ob Sie sie Themenbereiche oder Untermodelle nennen. Während wir das Modell aufbauen, zeigen wir es auch in diesen verschiedenen Teilmodellperspektiven, sodass die verschiedenen Zielgruppen nur sehen, was für sie relevant ist, damit sie sich auf das konzentrieren können, was sie entwickeln und vorlegen. Vielleicht arbeitet jemand an der Planung eines Teils einer Anwendung, vielleicht arbeitet jemand an einem Auftragseingang, in dem wir all diese Dinge in einem einzigen Sprint erledigen, aber ich kann ihnen die Standpunkte nur über diese Untermodelle geben gelten für den Bereich, an dem sie arbeiten. Diese werden dann auf das Gesamtmodell und die gesamte Struktur der Untermodelle übertragen, um den verschiedenen Zielgruppenansichten das zu geben, was sie sehen müssen.

Grundlegend für die Datenmodellierung ist, dass wir immer eine Grundlinie haben, auf die wir zurückgreifen können, denn eines der Dinge, die wir tun müssen, ist, ob wir am Ende eines Sprints oder am Ende sind Bei mehreren Sprints wollen wir wissen, wo wir angefangen haben und haben immer eine Basislinie, um zu wissen, was das Delta oder der Unterschied von dem war, was wir in einem bestimmten Sprint produziert haben. Wir müssen auch sicherstellen, dass wir einen schnellen Turnaround erreichen können. Wenn Sie als Datenmodellierer anfangen, aber in der traditionellen Rolle des Gatekeepers "Nein, nein, das können Sie nicht, wir müssen all diese Dinge zuerst tun", werden Sie aus dem Team ausgeschlossen, wenn Sie es wirklich brauchen ein aktiver Teilnehmer in all diesen agilen Entwicklungsteams zu sein. Das bedeutet, dass einige Dinge bei einem bestimmten Sprint vom Wagen fallen und Sie sie bei späteren Sprints aufheben.

Als Beispiel können Sie sich auf die Datenstrukturen konzentrieren, nur um die Entwicklung in Gang zu setzen, zum Beispiel das Stück, von dem ich gesprochen habe. In einem späteren Sprint können Sie zurückkehren und die Daten wie in der Dokumentation zum Datenwörterbuch für einige der von Ihnen erstellten Artefakte eingeben. Sie werden diese Definition nicht in einem Sprint vervollständigen. Sie werden Ihre Ergebnisse inkrementell weiter bearbeiten, da Sie in einigen Fällen diese Informationen in Zusammenarbeit mit Geschäftsanalysten eingeben können, wenn die Entwickler damit beschäftigt sind, die Anwendungen und die Persistenz in Bezug auf diese Datenspeicher zu erstellen. Sie wollen erleichtern und nicht der Engpass sein. Wir arbeiten auf unterschiedliche Weise mit Entwicklern zusammen. Für einige Dinge haben wir Entwurfsmuster, so dass wir von vornherein ein vollwertiger Teilnehmer sind. Möglicherweise haben wir ein Entwurfsmuster, in dem wir sagen, dass wir es in das Modell einfügen, es in die Sandbox-Datenbanken der Entwickler übertragen und dann können sie es Beginnen Sie damit zu arbeiten und fordern Sie Änderungen an.

Es mag andere Bereiche geben, an denen Entwickler gearbeitet haben, an denen sie etwas arbeiten und an denen sie einige Dinge prototypisieren, damit sie einige Dinge in ihrer eigenen Entwicklungsumgebung ausprobieren können. Wir nehmen die Datenbank, mit der sie gearbeitet haben, in unser Modellierungstool, vergleichen sie mit den vorhandenen Modellen und lösen die Änderungen auf und geben sie zurück, damit sie ihre Codes umgestalten können, damit sie den richtigen Datenstrukturen folgen das brauchen wir. Da sie möglicherweise einige Dinge erstellt haben, die wir bereits an anderer Stelle hatten, stellen wir sicher, dass sie mit den richtigen Datenquellen arbeiten. Wir wiederholen den gesamten Weg bis zu unserem Sprint, damit wir die vollständigen Datenergebnisse, die vollständige Dokumentation und die Definition aller von uns erstellten Datenstrukturen erhalten.

Das erfolgreichste agile Projekt, an dem ich in Bezug auf sehr gute Lieferungen beteiligt war, war, dass wir nach unserer Philosophie alle Änderungen an der vollständigen physischen Datenbankspezifikation modellierten. Im Wesentlichen handelt es sich bei dem Datenmodell um die bereitgestellten Datenbanken, mit denen Sie für alle neu erstellten Datenbanken arbeiten, und es verfügt über vollständige Verweise auf die anderen Datenspeicher, wenn diese von anderen externen Datenbanken verwendet werden. Als Teil davon erstellen wir inkrementelle Skripte, anstatt jedes Mal eine vollständige Generierung durchzuführen. Wir nutzen unsere Entwurfsmuster, um die Sprints mit den verschiedenen Entwicklungsteams, mit denen wir arbeiten, so schnell wie möglich zum Laufen zu bringen.

Auch bei Sprint-Aktivitäten ist dies wieder die Basis für das Vergleichen / Zusammenführen. Lassen Sie uns also die Idee annehmen, jede Änderung zu modellieren. Jedes Mal, wenn wir eine Änderung vornehmen, möchten wir die Änderung modellieren, und was sehr wichtig ist, was bei der Datenmodellierung bis vor kurzem gefehlt hat, bis wir sie wieder eingeführt haben, ist die Fähigkeit, die Modellierung zuzuordnen Aufgaben und Ihre Ergebnisse mit den User Stories und Aufgaben, die tatsächlich zu diesen Änderungen führen. Wir möchten in der Lage sein, unsere Modelländerungen einzuchecken, genauso wie Entwickler ihre Codes einchecken und auf die User Stories verweisen, die wir haben, damit wir wissen, warum wir Änderungen überhaupt vorgenommen haben. Das ist etwas, was wir tun. Wenn wir das tun, generieren wir unsere inkrementellen DDL-Skripte und stellen sie bereit, damit sie mit den anderen zu entwickelnden Leistungen zusammengestellt und in unsere Build-Lösung eingecheckt werden können. Auch hier können wir ein Modell haben oder mit mehreren Teams arbeiten. Und wie ich bereits erwähnt habe, stammen einige Dinge vom Datenmodellierer, andere von den Entwicklern, und wir treffen uns in der Mitte, um das beste Gesamtdesign zu finden, es voranzutreiben und sicherzustellen, dass es in unserem richtig gestaltet ist allgemeine Datenstrukturen. Wir müssen sicherstellen, dass wir alle richtigen Konstrukte in unserem Datenmodell haben, einschließlich Dinge wie Null- und Nicht-Null-Werte, referenzielle Einschränkungen, im Grunde Check-Einschränkungen, all diese Dinge, über die wir normalerweise nachdenken würden .

Lassen Sie uns jetzt über ein paar Screenshots einiger Tools sprechen, die uns dabei helfen. Was ich für wichtig halte, ist das kollaborative Repository. Wir können also als Datenmodellierer - und dies ist ein Ausschnitt aus einem Datenmodell im Hintergrund - an Dingen arbeiten, die wir sicherstellen möchten, dass wir dies können Arbeiten Sie nur an den Objekten, die geändert werden müssen, nehmen Sie die Änderungen vor und generieren Sie unsere DDL-Skripte für die Änderungen, die wir beim erneuten Einchecken vorgenommen haben. Wir können Objekte oder Gruppen von Objekten auschecken, an denen wir arbeiten möchten. Wir müssen kein ganzes Modell oder Teilmodell auschecken. Wir können nur die Dinge auschecken, die für uns von Interesse sind. Was wir danach wollen, ist entweder beim Check-out oder beim Check-in - wir machen das in beide Richtungen, weil verschiedene Entwicklungsteams auf unterschiedliche Weise arbeiten. Wir möchten sicherstellen, dass wir dies mit der User Story oder Aufgabe verknüpfen, die die Anforderungen dafür bestimmt, und dass dies die gleiche User Story oder Aufgabe ist, für die die Entwickler ihren Code entwickeln und einchecken.

Hier finden Sie einen kurzen Auszug einiger Bildschirme eines unserer Change Management Center. Ich werde hier nicht im Detail darauf eingehen, aber Sie sehen die User Story oder Aufgabe, die unter jedem der Änderungsprotokolle eingerückt ist. Wir haben ein automatisiertes Änderungsprotokoll erstellt, wenn Wir checken ein und aus und können diese Änderung auch genauer beschreiben. Es ist mit der Aufgabe verbunden, wir können mehrere Änderungen pro Aufgabe vornehmen, wie Sie es erwarten würden. Und wenn wir in dieses Änderungsprotokoll gehen, können wir es uns ansehen und vor allem sehen, was haben wir tatsächlich geändert? Für diese besondere Geschichte, die hervorgehobene, hatte ich eine Art von Änderung, die vorgenommen wurde, und als ich mir die eigentliche Änderungsaufzeichnung ansah, identifizierte sie die einzelnen Teile in dem Modell, die sich geändert haben. Ich habe hier einige Attribute geändert, sie neu geordnet und für die Fahrt die Ansichten mitgebracht, die geändert werden mussten, die auch von diesen abhängig waren, damit sie in der inkrementellen DLL generiert wurden. Es wird nicht nur auf Basisobjekten modelliert, sondern ein leistungsstarkes Modellierungswerkzeug wie dieses erkennt auch die Änderungen, die durch die abhängigen Objekte in der Datenbank oder dem Datenmodell übertragen werden müssen.

Wenn wir mit Entwicklern zusammenarbeiten und dies auf verschiedene Weise tun, indem wir etwas in ihrer Sandbox tun und vergleichen und sehen möchten, wo die Unterschiede liegen, verwenden wir die Funktionen zum Vergleichen / Zusammenführen auf der rechten und linken Seite Seite. Wir können sagen: "Hier ist unser Modell auf der linken Seite, hier ist ihre Datenbank auf der rechten Seite. Zeigen Sie mir die Unterschiede." Dann können wir auswählen und entscheiden, wie wir diese Unterschiede lösen, ob wir Dinge in die Datenbank verschieben oder ob Es gibt einige Dinge in der Datenbank, die wir in das Modell zurückbringen. Wir können bidirektional arbeiten, um in beide Richtungen gleichzeitig sowohl die Quelle als auch das Ziel zu aktualisieren und dann die inkrementellen DDL-Skripten zu erstellen, um diese Änderungen in der Datenbankumgebung selbst bereitzustellen, was äußerst wichtig ist. Was wir auch tun können, ist, dass wir diese Funktion zum Vergleichen und Zusammenführen jederzeit verwenden können. Wenn wir auf dem Weg durch Momentaufnahmen machen, können wir immer den Start eines Sprints mit dem Start oder dem Ende eines anderen Sprints vergleichen, damit wir sehen können Die vollständige inkrementelle Änderung dessen, was in einem bestimmten Entwicklungssprint oder in einer Reihe von Sprints durchgeführt wurde.

Dies ist ein sehr schnelles Beispiel für ein Änderungsskript. Jeder von Ihnen, der mit Datenbanken gearbeitet hat, wird diese Art von Dingen gesehen haben. Dies ist das, was wir als Änderungsskript aus dem Code herausschieben können, um sicherzustellen, dass wir Dinge hier behalten. Was ich hier herausgezogen habe, um die Unordnung zu verringern, ist das, was wir auch mit diesen Änderungsskripten tun, vorausgesetzt, dass es auch Daten in diesen Tabellen gibt, so dass wir auch die DML generieren, die die Informationen der temporären Tabellen und abrufen Schieben Sie es auch in die neuen Datenstrukturen zurück, damit wir nicht nur die Strukturen, sondern auch die Daten betrachten, die wir möglicherweise bereits in diesen Strukturen enthalten haben.

Wir werden sehr schnell über automatisierte Build-Systeme sprechen, da wir bei einem agilen Projekt häufig mit automatisierten Build-Systemen arbeiten, bei denen wir die verschiedenen Ergebnisse zusammen einchecken müssen, um sicherzustellen, dass wir unsere Builds nicht beschädigen. Das heißt, wir synchronisieren die Liefergegenstände, diese Änderungsskripte, über die ich mit dem DDL-Skript gesprochen habe, müssen eingecheckt werden, der entsprechende Anwendungscode muss gleichzeitig eingecheckt werden und viele Entwickler entwickeln jetzt natürlich nicht mehr mit direktem SQL gegen die Datenbanken und solche Dinge getan. Sehr oft verwenden wir Persistenz-Frameworks oder erstellen Datendienste. Wir müssen sicherstellen, dass die Änderungen für diese Frameworks oder Services genau zur gleichen Zeit eingecheckt werden. In einigen Organisationen werden sie in ein automatisiertes Build-System integriert. Wenn der Build in einer agilen Methodik unterbrochen wird, werden alle Vorbereitungen von Hand an Deck vorgenommen, bevor wir fortfahren, sodass wir wissen, dass wir eine funktionierende Lösung haben, bevor wir weitermachen. Und eines der Projekte, an denen ich beteiligt war, wir haben dies auf ein Extrem gebracht - wenn der Build kaputt ging, den wir tatsächlich an eine Reihe von Computern in unserer Gegend angeschlossen hatten, an denen wir mit den Geschäftsbenutzern zusammen waren, hatten wir nur rote Blinklichter wie die Spitze von Polizeiautos. Und wenn der Bau abgebrochen war, gingen die roten Blinklichter an und wir wussten, dass alle Hände an Deck waren. Reparieren Sie den Bau und fahren Sie mit dem fort, was wir taten.

Ich möchte über andere Dinge sprechen, und dies ist eine einzigartige Funktion von ER Studio. Es ist wirklich hilfreich, wenn wir versuchen, diese Artefakte als Entwickler für diese Persistenzgrenzen zu erstellen. Wir haben ein Konzept namens Geschäftsdatenobjekte und das, was uns dies ermöglicht Wenn Sie sich dieses sehr vereinfachte Datenmodell als Beispiel ansehen, können wir Entitäten oder Gruppen von Entitäten dort einkapseln, wo die Persistenzgrenzen liegen. Wenn wir uns als Datenmodellierer so etwas wie einen Bestellkopf und die Bestellausrichtung sowie andere detaillierte Tabellen vorstellen, die in der Art und Weise, wie wir sie aufbauen, darauf abgestimmt sind, und unsere Entwickler von Datendiensten müssen wissen, wie die verschiedenen Daten erhalten bleiben Strukturen. Unsere Entwickler betrachten Dinge wie die Bestellung insgesamt als ein Objekt und was ist ihr Vertrag damit, wie sie diese bestimmten Objekte erstellen. Wir können diese technischen Details offenlegen, damit die Leute, die die Datenserver erstellen, sehen können, was sich darunter befindet, und wir können die anderen Zielgruppen vor den Komplexitäten schützen, sodass sie nur die verschiedenen übergeordneten Objekte sehen, was auch sehr gut für die Kommunikation mit Unternehmen geeignet ist Analysten und Geschäftsinteressenten, wenn wir auch über das Zusammenspiel verschiedener Geschäftskonzepte sprechen.

Das Schöne daran ist auch, dass wir diese konstruktiv erweitern und reduzieren, damit wir die Beziehungen zwischen den Objekten höherer Ordnung beibehalten können, auch wenn sie aus Konstrukten stammen, die in diesen Geschäftsdatenobjekten selbst enthalten sind. Jetzt, als Modellbauer, komme ich zum Ende des Sprints, am Ende des Sprints habe ich eine Menge Dinge zu tun, die ich für den nächsten Sprint als meine Zimmerreinigung bezeichne. Bei jedem Sprint, den ich als "Named Release" bezeichne, erzeuge ich meine Basis für das, was ich jetzt am Ende des Releases habe. Das bedeutet also, dass dies meine Baseline ist, all diese Baselines oder benannten Releases, die ich erstelle und in meinem Repository speichere. Ich kann sie zum Vergleichen / Zusammenführen verwenden, damit ich immer mit jedem Sprintende eines anderen Sprints vergleichen kann, der Es ist sehr wichtig zu wissen, welche Änderungen Sie an Ihrem Datenmodell vorgenommen haben.

Ich erstelle auch ein Delta-DDL-Skript, indem ich vom Anfang bis zum Ende des Sprints erneut vergleiche / zusammenführe. Ich habe vielleicht eine ganze Reihe von inkrementellen Skripten eingecheckt, aber wenn ich sie brauche, habe ich jetzt ein Skript, das ich bereitstellen kann, um andere Sandkästen zu aktivieren, damit ich nur sagen kann, dass wir dies zu Beginn des einen Sprints getan haben: Push Erstellen Sie eine Datenbank als Sandbox, um mit dem nächsten Sprint zu beginnen, und wir können diese Dinge auch verwenden, um Stand-up-QA-Instanzen durchzuführen. Letztendlich möchten wir natürlich unsere Änderungen in die Produktion auslagern, damit mehrere Dinge stattfinden gleichzeitig. Auch hier sind wir voll an der Sprintplanung und den Rückblicke beteiligt. Die Rückblicke sind wirklich die gelernten Lektionen, und das ist äußerst wichtig, da Sie in agilen Situationen sehr schnell loslegen können und die Erfolge nach wie vor feiern müssen. Finde heraus, was los ist, verbessere es beim nächsten Mal, aber zelebriere auch die Dinge, die richtig gelaufen sind, und baue auf ihnen auf, während du dich in den nächsten Sprints weiter vorwärts bewegst.

Ich werde jetzt sehr schnell über den Geschäftswert sprechen. Es gab ein Projekt, an dem ich vor vielen Jahren mitgewirkt habe und das als agiles Projekt begann. Es war ein extremes Projekt, also ein reines selbstorganisierendes Team, in dem nur Entwickler alles machten. Um es kurz zu machen, dieses Projekt kam zum Stillstand und sie stellten fest, dass sie immer mehr Zeit für die Behebung und Behebung der festgestellten Mängel aufbrachten, als dafür, mehr Funktionalität zu entwickeln und tatsächlich, wenn sie es sich anschauten Auf den Burn-Down-Charts mussten sie das Projekt um ein halbes Jahr verlängern - und das zu einem enormen Preis. Und als wir uns das anschauten, bestand die Möglichkeit, das Problem zu beheben, darin, ein geeignetes Datenmodellierungstool mit einem erfahrenen Datenmodellierer zu verwenden, der am Projekt selbst beteiligt ist.

Wenn Sie sich diesen vertikalen Balken in diesem bestimmten Diagramm ansehen, werden kumulative Fehler im Vergleich zu kumulativen Objekten angezeigt, und ich spreche von Datenobjekten oder Konstrukten, die erstellt wurden, wie z. B. den Tabellen mit den Einschränkungen und diesen Arten von Dingen Bevor der Data Modeler eingeführt wurde, überschritt die Anzahl der Fehler tatsächlich und begann, eine kleine Lücke über der tatsächlichen Anzahl der Objekte zu bilden, die bis zu diesem Zeitpunkt hergestellt wurden. Nach Woche 21, als der Datenmodellierer eintrat, überarbeitete er das Datenmodell auf der Grundlage der erforderlichen Korrekturen und begann dann als Teil des Projektteams mit der Modellierung. Die Änderungen wurden während des Voranschreitens des Projekts vorangebracht . Und Sie haben eine sehr schnelle Trendwende erlebt, bei der die Anzahl der Objekte und Datenkonstrukte, die generiert und konstruiert wurden, innerhalb von etwa anderthalb Sprints enorm gestiegen ist, weil wir nicht mit einem Entwickler-Stick, sondern mit einem Datenmodellierungstool generiert haben Sie wurden in einer Umgebung erstellt und waren korrekt, da sie die richtige referenzielle Integrität und die anderen Konstrukte hatten, die sie haben sollten. Das Niveau der Mängel gegen diese fast Flatline. Indem diese geeigneten Maßnahmen ergriffen wurden und sichergestellt wurde, dass die Datenmodellierung vollständig genutzt wurde, wurde das Projekt pünktlich mit einem viel höheren Qualitätsniveau geliefert, und tatsächlich hätte es überhaupt nichts gebracht, wenn diese Schritte nicht stattgefunden hätten. Es gibt viele agile Misserfolge, es gibt auch viele agile Erfolge, wenn Sie die richtigen Leute in die richtigen Rollen bringen würden. Ich bin ein großer Befürworter von Agilität als operativer Disziplin, aber Sie müssen sicherstellen, dass Sie die Fähigkeiten aller richtigen Gruppen in Ihren Projektteams haben, wenn Sie eine agile Art von Unternehmung vorantreiben.

Zusammenfassend gesagt, müssen Datenarchitekten und Modellierer in alle Entwicklungsprojekte einbezogen werden. Sie sind wirklich der Leim, der alles zusammenhält, denn als Datenmodellierer und Architekten verstehen wir nicht nur die Datenkonstruktionen des jeweiligen Entwicklungsprojekts, sondern auch, wo die Daten in der Organisation vorhanden sind und woher wir diese Daten beziehen können und auch, wie sie stammen wird außerhalb der jeweiligen Anwendung, an der wir arbeiten, verwendet und genutzt. Wir verstehen die komplexen Datenbeziehungen und es ist von größter Bedeutung, in der Lage zu sein, voranzukommen und auch aus Governance-Sicht Dokumente abzubilden und zu verstehen, wie Ihre gesamte Datenlandschaft aussieht.

Es ist wie bei der Herstellung; Ich komme aus der Fertigung. Am Ende können Sie Qualität nicht in etwas überprüfen - Sie müssen Qualität in Ihr Design einbauen, bevor Sie es durcharbeiten, und mit der Datenmodellierung können Sie diese Qualität auf effiziente und kostengünstige Weise in das Design einbauen . Und wieder etwas, an das man sich erinnern muss - und das ist nicht einfach, aber es ist die Wahrheit -, Anwendungen kommen und gehen, Daten sind das entscheidende Kapital des Unternehmens und überschreiten all diese Anwendungsgrenzen. Jedes Mal, wenn Sie eine Anwendung einreichen, werden Sie wahrscheinlich aufgefordert, die Daten aus anderen Anwendungen, die zuvor verwendet wurden, beizubehalten. Daher müssen wir uns nur daran erinnern, dass es sich um einen wichtigen Unternehmensbestandteil handelt, den wir im Laufe der Zeit beibehalten.

Und das ist es! Von hier aus werden wir weitere Fragen beantworten.

Eric Kavanagh: Okay, gut, lassen Sie mich es zuerst Robin übergeben. Und dann, Dez, hast du bestimmt ein paar Fragen. Nimm es weg, Robin.

Dr. Robin Bloor: Okay. Um ehrlich zu sein, ich hatte noch nie ein Problem mit agilen Entwicklungsmethoden und es scheint mir, dass das, was Sie hier tun, überaus sinnvoll ist. Ich erinnere mich, dass ich in den 1980er Jahren einen Blick auf etwas geworfen habe, das tatsächlich darauf hinwies, dass das Problem, auf das Sie im Hinblick auf ein außer Kontrolle geratenes Projekt stoßen, normalerweise darin besteht, dass ein Fehler über eine bestimmte Phase hinaus fortbesteht. Es wird immer schwieriger, das Problem zu beheben, wenn Sie diese Phase nicht richtig hinbekommen. Eines der Dinge, die Sie hier tun - und ich denke, dies ist die Folie -, aber eines der Dinge, die Sie hier tun in sprint zero ist meiner meinung nach absolut wichtig, da man wirklich versucht, die lieferergebnisse dort festzuhalten. Und wenn Sie keine Liefergegenstände fixieren, ändern sich die Liefergegenstände.

Das ist meine Meinung. Es ist auch meine Meinung - ich habe wirklich keine Einwände gegen die Idee, dass Sie die Datenmodellierung auf einen bestimmten Detaillierungsgrad bringen müssen, bevor Sie weiterarbeiten. Ich möchte, dass Sie versuchen, eines dieser Projekte zu beschreiben, weil ich keine Ahnung davon habe. Beschreiben Sie einfach eines dieser Projekte in Bezug auf seine Größe, die Art und Weise, wie es verlief, in Bezug auf wen, wissen Sie, Wo sind die Probleme aufgetaucht, wurden sie gelöst? Weil ich denke, dass diese Folie so ziemlich das Herzstück davon ist, und wenn Sie ein bisschen mehr darüber erzählen könnten, wäre ich Ihnen sehr dankbar.

Ron Huizenga: Sicher, und ich werde ein paar Beispielprojekte verwenden. Das, was irgendwie aus der Bahn geworfen wurde, indem die richtigen Leute einbezogen und die Datenmodellierung durchgeführt wurden, und alles war wirklich ein Weg, um sicherzustellen, dass das Design besser verstanden wurde und wir offensichtlich ein besseres Implementierungsdesign hatten auf dem Weg durch Modellierung. Denn wenn Sie es modellieren, können Sie Ihre DDL und alles aus dem Hintergrund und aus dem Tool heraus generieren, anstatt diese wie üblich direkt in einer Datenbankumgebung erstellen zu müssen. Und typische Dinge, die mit Entwicklern passieren werden, sind, dass sie dort reingehen und sagen, okay, ich brauche diese Tabellen. Nehmen wir an, wir machen Auftragseingaben. So können sie den Auftragskopf und die Auftragsdetailtabellen sowie diese Art von Dingen erstellen. Aber sie werden nicht selten vergessen oder vernachlässigen, um sicherzustellen, dass die Einschränkungen vorhanden sind, um die Fremdschlüsselbeziehungen darzustellen. Möglicherweise sind die Schlüssel nicht korrekt. Die Namenskonventionen können ebenfalls verdächtig sein. Ich weiß nicht, wie oft ich zum Beispiel in eine Umgebung gegangen bin, in der mehrere verschiedene Tabellen mit unterschiedlichen Namen angezeigt werden, aber die Spaltennamen in diesen Tabellen lauten wie ID, Name oder was auch immer hab echt den kontext verloren ohne die tabelle was das genau ist.

Normalerweise stellen wir bei der Datenmodellierung also sicher, dass alle Artefakte, die auch in der DDL generiert werden, mit den richtigen Namenskonventionen versehen werden. Um genauer über die Art der Projekte selbst zu sein, spreche ich im Allgemeinen von relativ großen Initiativen. Eines davon war ein Unternehmenstransformationsprojekt im Wert von 150 Millionen US-Dollar, bei dem wir über ein Dutzend älterer Systeme ersetzt haben. Wir hatten fünf verschiedene agile Teams gleichzeitig im Einsatz. Ich hatte ein vollständiges Datenarchitektur-Team, daher waren Datenmodellierer aus meinem Team in jedes der anderen Anwendungsbereichsteams eingebettet, und wir arbeiteten mit einer Kombination von internen Geschäftsexperten zusammen, die das Thema kannten und das erledigten User Stories für die Anforderungen selbst. In jedem dieser Teams hatten wir Business Analysten, die den Geschäftsprozess anhand von Aktivitäts- oder Geschäftsprozessdiagrammen modellierten, um die User Storys besser mit den Benutzern abzustimmen, bevor sie auch vom Rest des Teams in Anspruch genommen wurden.

Und dann natürlich die Entwickler, die darüber den Anwendungscode erstellt haben. Und wir haben auch mit vier verschiedenen Systemintegrationsanbietern zusammengearbeitet, die auch verschiedene Teile der Anwendung erstellt haben, wobei ein Team die Datendienste erstellt hat, das andere die Anwendungslogik in einem Bereich erstellt hat und ein anderes über Fachwissen verfügt In einem anderen Geschäftsbereich wurde die Anwendungslogik in diesem Bereich erstellt. Wir hatten also eine ganze Reihe von Leuten, die an diesem Projekt arbeiteten. Insbesondere bei diesem hatten wir 150 Leute an Land im Team und weitere 150 Ressourcen vor der Küste im Team, die zweiwöchige Sprints zusammenarbeiteten, um dieses Ding zu vertreiben. Um dies zu tun, müssen Sie sicherstellen, dass Sie auf alle Zylinder schießen und dass alle in Bezug auf ihre Liefergegenstände gut synchronisiert sind. Außerdem mussten Sie diese häufig zurücksetzen, um sicherzustellen, dass wir alle erforderlichen Artefakte ausliefern am Ende jedes Sprints.

Dr. Robin Bloor: Nun, das ist beeindruckend. Und nur für ein bisschen mehr Details - haben Sie am Ende dieses Projekts eine vollständige, wie ich es nennen würde, MDM-Karte des gesamten Datenbereichs erhalten?

Ron Huizenga: Wir hatten ein vollständiges Datenmodell, das mit der Zerlegung auf alle Geschäftsbereiche aufgeschlüsselt wurde. Das Datenwörterbuch selbst ist in Bezug auf die vollständigen Definitionen etwas zu kurz gekommen. Wir hatten die meisten Tabellen definiert; Wir hatten die meisten Spalten so definiert, dass sie genau das meinten, was sie bedeuteten. Es gab einige, die nicht vorhanden waren, und interessanterweise stammten viele dieser Informationen aus den Altsystemen, in denen nach dem Ende des Projektumfangs immer noch ein Übertragungs- satz dokumentiert war Artefakte, sozusagen außerhalb des Projekts selbst, weil sie von der Organisation in Zukunft aufrechterhalten werden mussten. Gleichzeitig hat die Organisation die Bedeutung von Data Governance in einem viel stärkeren Maße bewertet, da wir in diesen Legacy-Systemen und diesen Legacy-Datenquellen viele Mängel festgestellt haben, die wir zu nutzen versuchten, weil sie nicht dokumentiert waren. In vielen Fällen hatten wir nur Datenbanken, die wir zurückentwickeln mussten, um herauszufinden, was da war und wofür die Informationen bestimmt waren.

Dr. Robin Bloor: Es überrascht mich nicht, diesen besonderen Aspekt. Data Governance ist, nennen wir es, ein sehr modernes Anliegen, und ich denke wirklich, es gibt eine Menge Arbeit, die, sagen wir mal, historisch in Bezug auf Data Governance hätte erledigt werden müssen. Es war nie, weil man irgendwie davonkommen konnte, es nicht zu tun. Aber als die Datenressource immer größer wurde, konnte man es schließlich nicht.

Wie auch immer, ich werde zu Dez übergehen, weil ich glaube, ich hatte meine zugewiesene Zeit. Dez?

Dez Blanchfield: Ja, danke. Durch diese ganze Sache beobachte ich und denke mir, dass wir reden, wenn wir Agilität in vielerlei Hinsicht in Wut einsetzen. Obwohl das negative Konnotationen hat; Ich meinte das positiv. Könnten Sie uns vielleicht nur ein Szenario geben, ich meine, es gibt zwei Orte, an denen ich sehen kann, dass dies ein perfektes Set ist: Eines sind neue Projekte, die nur vom ersten Tag an durchgeführt werden müssen, aber meiner Erfahrung nach denke ich immer, dass es häufig ist Der Fall, dass Projekte so groß werden, dass dies in vielerlei Hinsicht notwendig ist, ist eine interessante Herausforderung zwischen dem Verkleben der beiden Welten, oder? Können Sie uns einen Einblick in einige Erfolgsgeschichten geben, die Sie gesehen haben, wo Sie in ein Unternehmen eingetreten sind? Es ist klar geworden, dass es einen leichten Konflikt zwischen den beiden Welten gibt, und Sie konnten diese erfolgreich umsetzen dies an Ort und Stelle und bringen große Projekte zusammen, wo sie sonst auf die Schienen gegangen wären? Ich weiß, es ist eine sehr weit gefasste Frage, aber ich frage mich nur, ob es eine bestimmte Fallstudie gibt, die Sie auf den Punkt bringen können, an dem Sie gesagt haben Das Datenteam und wir haben irgendwie etwas angesprochen, das sonst das Boot versenkt hätte.

Ron Huizenga: Sicher, und tatsächlich war das eine Projekt, das zufällig ein Pipeline-Projekt war, das, auf das ich anspielte, wo ich dieses Diagramm mit den Fehlern vor und nach der Einbeziehung des Datenmodellierers zeigte. Sehr oft, und es gibt vorgefasste Vorstellungen, insbesondere wenn Dinge aus rein entwicklungspolitischer Sicht aufgegriffen werden, sind es nur Entwickler, die an diesen agilen Projekten beteiligt sind, um die Anwendungen bereitzustellen. Was dort passiert ist, ist natürlich, dass sie von den Gleisen geraten sind und insbesondere ihre Datenartefakte oder die Datenlieferungen, die sie produzierten, die Marke in Bezug auf die Qualität nicht erreicht haben und die Dinge insgesamt wirklich in Angriff genommen haben. Und es gibt ziemlich oft das Missverständnis, dass Datenmodellierer Projekte verlangsamen, und das auch, wenn der Datenmodellierer nicht die richtige Einstellung hat. Wie ich schon sagte, muss man das verlieren - manchmal gibt es Datenmodellierer, die diese traditionelle Gatekeeper-Einstellung haben: „Wir sind hier, um zu kontrollieren, wie die Datenstrukturen aussehen“, und diese Mentalität muss verschwinden. Jeder, der an der agilen Entwicklung beteiligt ist, und insbesondere die Datenmodellierer, müssen eine Rolle als Vermittler übernehmen, um die Teams wirklich voranzubringen. Der beste Weg, dies zu veranschaulichen, besteht darin, den Teams sehr schnell zu zeigen, wie produktiv sie sein können, indem sie zuerst die Änderungen modellieren. Deshalb habe ich auch über die Zusammenarbeit gesprochen.

Es gibt einige Dinge, die wir zuerst modellieren und die DDL generieren können, um sie an die Entwickler weiterzuleiten. Wir möchten auch sicherstellen, dass sie sich nicht eingeschränkt fühlen. Wenn es also Dinge gibt, an denen sie arbeiten, lassen Sie sie in ihren Entwicklungs-Sandboxen weiterarbeiten, denn dort arbeiten Entwickler an ihren eigenen Desktops oder anderen Datenbanken, um einige Änderungen vorzunehmen, in denen sie Dinge testen. Arbeiten Sie mit ihnen zusammen und sagen Sie: "Okay, arbeiten Sie damit." Wir werden es in das Tool integrieren, es beheben und dann vorantreiben und Ihnen die Skripte zur Verfügung stellen, mit denen Sie es bereitstellen können, um Ihr zu aktualisieren Datenbanken, um sie auf den aktuellen Stand der Produktion zu bringen, während wir weiter voranschreiten. Und das können Sie sehr schnell ändern. Ich stellte fest, dass meine Tage voll waren, als ich einfach mit verschiedenen Entwicklungsteams hin und her ging, Änderungen ansah, Vergleiche anstellte, Skripte erstellte und sie in Gang brachte, und ich war in der Lage, mich mit vier Entwicklungsteams ziemlich leicht mithalten zu können, sobald wir fertig waren eine Dynamik erreicht.

Dez Blanchfield: Eines der Dinge, die mir dabei in den Sinn kommen, ist, dass viele der Gespräche, die ich täglich führe, über diesen Güterzug geführt werden, der auf uns zukommt -Maschine und IoT. Und wenn wir glauben, dass wir jetzt eine Menge Daten über unsere aktuellen Unternehmensumgebungen haben, wissen Sie, wenn wir die Einhörner für einen Moment beiseite nehmen, in dem wir wissen, dass die Googles und die Facebooks und die Ubers Petabytes an Daten haben, aber In einem traditionellen Unternehmen sprechen wir immer noch von Hunderten von Terabyte und einer Menge Daten. Meiner Ansicht nach kommt dieser Güterzug bei Organisationen an, und Dr. Robin Bloor hat bereits früher auf das IoT hingewiesen. Wissen Sie, wir haben viel Web-Verkehr, wir haben sozialen Verkehr, wir haben jetzt Mobilität und mobile Geräte, die Cloud ist explodiert, aber jetzt haben wir eine intelligente Infrastruktur, intelligente Städte und es gibt diese ganze Welt von Daten, die gerade explodiert ist.

Für eine alltägliche Organisation kommt eine mittlere bis große Organisation, die dort sitzt und diese Welt des Schmerzes sieht, auf sie zu und denkt nicht an einen unmittelbaren Plan, was sind einige der Dinge, die Sie in nur ein paar Sätzen sagen würden für sie, wann und wo sie anfangen müssen, über die Einführung einiger dieser Methoden im Gespräch nachzudenken. Wie früh müssen sie mit der Planung beginnen, um sich beinahe aufzurichten und Aufmerksamkeit zu schenken und zu sagen, dass dies der richtige Zeitpunkt ist, um einige Tools einzurichten, das Team zu schulen und eine Konversation über Vokabeln zu führen, die diese Herausforderung bewältigen? Wie spät in der Geschichte ist zu spät oder wann ist zu früh? Wie sieht das für einige der Organisationen aus, die Sie sehen?

Ron Huizenga: Ich würde für die meisten Organisationen sagen, dass die Zeit, die sie dafür benötigen, gestern ist, wenn sie dies noch nicht getan und die Datenmodellierung und Datenarchitektur mit solchen leistungsstarken Tools angepasst haben. Weil es interessant ist, dass selbst heute, wenn Sie sich Daten in Organisationen ansehen, wir so viele Daten in unseren Organisationen haben und im Allgemeinen, basierend auf einigen Umfragen, die wir gesehen haben, weniger als fünf Prozent dieser Daten effektiv nutzen wenn wir über Organisationen schauen. Und mit dem IoT oder sogar NoSQL, Big Data - auch wenn es sich nicht nur um IoT, sondern um Big Data im Allgemeinen handelt - wo wir jetzt beginnen, noch mehr Informationen zu nutzen, die von außerhalb unserer Organisationen stammen, wird diese Herausforderung immer größer die ganze Zeit. Und der einzige Weg, den wir in Angriff nehmen können, besteht darin, uns zu helfen, zu verstehen, worum es bei diesen Daten geht.

Der Anwendungsfall ist also ein bisschen anders. Was wir tun, ist, wenn wir uns diese Daten ansehen, sie erfassen, sie rückentwickeln, herausfinden, was sie enthalten, ob sie sich in unseren Datenseen oder sogar in unseren internen Datenbanken befinden, was sie enthalten Daten sind, wenden Sie Bedeutungen und Definitionen auf sie an, damit wir verstehen können, was die Daten sind. Denn solange wir nicht verstehen, was es ist, können wir nicht sicherstellen, dass wir es richtig oder angemessen verwenden. Wir müssen also wirklich einen Überblick darüber bekommen, was diese Daten sind. Und der andere Teil davon ist, tun Sie es nicht, weil Sie in Bezug auf die Nutzung all dieser externen Daten sicherstellen können, dass Sie einen Anwendungsfall haben, der die Nutzung dieser externen Daten unterstützt. Konzentrieren Sie sich auf die Dinge, die Sie benötigen, anstatt nur zu versuchen, die Dinge zu nutzen, die Sie später benötigen. Konzentrieren Sie sich zuerst auf die wichtigen Dinge, und während Sie sich durcharbeiten, werden Sie die anderen Informationen von außen konsumieren und versuchen, sie zu verstehen.

Ein perfektes Beispiel dafür ist, ich weiß, dass es sich um IoT und Sensoren handelt, aber die gleiche Art von Problem besteht in vielen Unternehmen seit vielen Jahren, sogar vor dem IoT. Jeder, der über ein Produktionssteuerungssystem verfügt, sei es ein Pipeline-Unternehmen, ein produzierendes Unternehmen oder ein prozessbasiertes Unternehmen, das viel Automatisierung mit Steuerungen durchführt und Datenströme und ähnliches verwendet Diese Datenflut, aus der sie herauszuholen versuchen, um herauszufinden, welche Ereignisse in meinen Produktionsanlagen aufgetreten sind, um zu signalisieren, was passiert ist und wann? Und unter diesem riesigen Datenstrom gibt es nur bestimmte Informationen oder Tags, an denen sie interessiert sind und die sie heraussuchen, synthetisieren, modellieren und verstehen müssen. Und sie können den Rest ignorieren, bis es Zeit ist, ihn wirklich zu verstehen, und dann können sie ihren Geltungsbereich erweitern, um mehr und mehr davon in den Geltungsbereich zu ziehen, wenn dies Sinn macht.

Dez Blanchfield: In der Tat. Eine Frage, auf die ich eingehen werde, kam von einem Gentleman namens Eric, und wir haben uns privat darüber unterhalten. Ich habe gerade um seine Erlaubnis gebeten, die er gegeben hat, es von dir zu verlangen. Weil es gut zu diesem Ergebnis führt, nur um es zusammenzufassen, weil wir jetzt ein bisschen im Laufe der Zeit sind und ich werde es Eric zurückgeben. Aber die Frage von einem anderen Eric war, ist es vernünftig anzunehmen, dass die Eigentümer eines Startups mit den einzigartigen Herausforderungen in Bezug auf die Modellierungsterminologie vertraut sind und diese verstehen, oder sollte sie jemand anderem zur Interpretation übergeben werden? Mit anderen Worten, sollte ein Startup in der Lage und bereit sein, sich darauf zu konzentrieren und darauf zu reagieren? Oder ist es etwas, mit dem sie wahrscheinlich einkaufen und Experten an Bord holen sollten?

Ron Huizenga: Ich denke die kurze Antwort ist, dass es wirklich davon abhängt. Wenn es sich um ein Startup handelt, das nicht über einen internen Mitarbeiter verfügt, der ein Datenarchitekt oder -modellierer ist, der die Datenbank wirklich versteht, ist es am schnellsten, jemanden mit einem Beratungshintergrund zu finden, der sich in diesem Bereich auskennt und gut auskennt sie gehen. Denn was Sie finden werden - und in der Tat, ich habe dies bei vielen Engagements getan, bevor ich auf die dunkle Seite des Produktmanagements gekommen bin -, ist, dass ich als Berater in Organisationen eintrete und deren Datenarchitektur-Teams leite. so dass sie sich irgendwie neu ausrichten und ihre Leute darin schulen können, wie man diese Art von Dingen macht, damit sie sie aufrechterhalten und die Mission in die Zukunft tragen. Und dann würde ich zu meinem nächsten Engagement übergehen, wenn das Sinn macht. Es gibt eine Menge Leute, die das tun und über eine sehr gute Datenerfahrung verfügen, die sie zum Laufen bringen kann.

Dez Blanchfield: Das ist ein großartiger Punkt zum Mitnehmen, dem stimme ich voll und ganz zu, und ich bin mir sicher, dass dies auch Dr. Robin Bloor tun würde. Insbesondere in einem Startup konzentrieren Sie sich darauf, ein KMU mit dem besonderen Wert des Angebots zu sein, das Sie als Teil Ihres Startup-Unternehmens selbst aufbauen möchten, und Sie sollten wahrscheinlich nicht unbedingt ein Experte für alles sein müssen. Aber vielen Dank, eine fantastische Präsentation. Wirklich tolle Antworten und Fragen. Eric, ich werde es dir zurückgeben, weil ich weiß, dass wir wahrscheinlich zehn Minuten vergangen sind und ich weiß, dass du gerne in der Nähe unserer Zeitfenster bleibst.

Eric Kavanagh: Das ist okay. Wir haben mindestens ein paar gute Fragen. Lass mich dir einen rüberwerfen. Ich denke, Sie haben einige der anderen beantwortet. Aber eine sehr interessante Beobachtung und Frage von einem Teilnehmer, der schreibt, manchmal haben agile Projekte, dass der Datenmodellierer nicht das gesamte Langzeitbild hat, und so entwickeln sie irgendetwas im ersten Sprint und müssen dann im dritten oder vierten Sprint umgestalten. Scheint das nicht kontraproduktiv? Wie können Sie so etwas vermeiden?

Ron Huizenga: Es liegt in der Natur des Agilen, dass Sie in einem gegebenen Sprint nicht alles absolut richtig machen. Und das ist eigentlich Teil des Geistes von Agilität: Arbeiten Sie damit - Sie werden Prototypen erstellen, in denen Sie in einem bestimmten Sprint an Code arbeiten, und Sie werden Verbesserungen daran vornehmen. Und ein Teil dieses Prozesses besteht darin, dass Sie Dinge liefern, die der Endbenutzer sieht und sagt: „Ja, das ist nah, aber ich muss es auch ein bisschen mehr tun lassen.“ Das wirkt sich also nicht nur auf das funktionale Design aus des Codes selbst, aber oft müssen wir die Datenstruktur unter diesen bestimmten Dingen ändern oder hinzufügen, um das zu liefern, was der Benutzer will. Und das ist alles ein faires Spiel, und deshalb möchten Sie unbedingt die leistungsstarken Tools verwenden, da Sie diese Änderung in einem Modellierungstool sehr schnell modellieren und vornehmen und dann die DDL für die Datenbank generieren können, mit der die Entwickler dann arbeiten können, um sie bereitzustellen noch schneller ändern. Sie ersparen ihnen das manuelle Codieren der Datenstrukturen und lassen sie sich auf die Programmier- oder Anwendungslogik konzentrieren, mit der sie am besten vertraut sind.

Eric Kavanagh: Das macht Sinn. Wir hatten ein paar andere Leute, die nur bestimmte Fragen stellten, wie dies alles mit dem Werkzeug zusammenhängt. Ich weiß, dass Sie einige Zeit damit verbracht haben, Beispiele durchzuarbeiten, und Sie haben einige Screenshots gezeigt, wie Sie tatsächlich einige dieser Dinge herausbringen. Wie oft sehen Sie in Bezug auf diesen gesamten Sprintprozess, dass in Organisationen eine Rolle gespielt wird, und wie oft sehen Sie traditionellere Prozesse, in denen die Dinge einfach, irgendwie, voranschreiten und mehr Zeit in Anspruch nehmen? Wie verbreitet ist der Sprintstil aus Ihrer Sicht?

Ron Huizenga: Ich denke, wir sehen es immer mehr. Ich weiß, dass ich wahrscheinlich vor allem in den letzten 15 Jahren eine viel stärkere Akzeptanz von Menschen gesehen habe, die erkannt haben, dass sie sich wirklich auf eine schnellere Lieferung einstellen müssen. Ich habe also gesehen, wie immer mehr Organisationen auf den agilen Zug umgestiegen sind. Nicht unbedingt ganz; Sie beginnen vielleicht mit ein paar Pilotprojekten, um zu beweisen, dass es funktioniert, aber es gibt einige, die noch sehr traditionell sind und die sich an die Wasserfallmethode halten. Die gute Nachricht ist natürlich, dass die Tools auch in diesen Organisationen für diese Art von Methoden sehr gut funktionieren, aber wir haben die Anpassungsfähigkeit des Tools, sodass diejenigen, die an Bord springen, die Tools in der Toolbox unter haben ihre Fingerspitzen. Dinge wie das Vergleichen und Zusammenführen, Dinge wie die Reverse-Engineering-Funktionen, damit sie die vorhandenen Datenquellen sehen und die inkrementellen DDL-Skripte sehr schnell vergleichen und generieren können. Und wenn sie anfangen, dies zu akzeptieren und zu erkennen, dass sie die Produktivität haben können, steigt ihre Neigung, agil zu sein, noch mehr.

Eric Kavanagh: Nun, das ist großartiges Zeug, Leute. Ich habe gerade einen Link zu den Folien dort im Chat-Fenster gepostet. es ist ein bisschen ein bisschen für dich da drin. Wir haben all diese Webcasts zur späteren Ansicht. Fühlen Sie sich frei, sie mit Ihren Freunden und Kollegen zu teilen. Und Ron, vielen Dank für deine heutige Zeit, du bist immer angenehm in der Show - ein echter Experte auf dem Gebiet und es ist offensichtlich, dass du deine Sachen kennst. Also, danke an Sie und danke an IDERA und natürlich an Dez und unseren eigenen Robin Bloor.

Und damit verabschieden wir uns von Ihnen, Leute. Nochmals vielen Dank für Ihre Zeit und Aufmerksamkeit. Wir schätzen es, dass Sie 75 Minuten hier bleiben, das ist ein ziemlich gutes Zeichen. Gute Show Jungs, wir werden beim nächsten Mal mit dir reden. Tschüss.

Datenmodellierung in einer agilen Umgebung