Archive

Autor-Archiv

Training in Zürich zu neuer Datenmodellierungsmethode: Data Vault

Wikipedia definiert Data Vault so:

In den letzten Jahren hat sich mit Data Vault eine neue Modellierungstechnik für Data-Warehouse etabliert, die insbesondere für agile Datawarehouse geeignet ist. Sie bietet eine hohe Flexibilität bei Erweiterungen, eine vollständige Historisierung der Daten und erlaubt eine starke Parallelisierung der Datenladeprozesse.

Meine persönliche Erfahrung ist, dass Data Vault nicht nur bei einem Data-Warehouse eingesetzt werden kann, sondern auch bei Schnittstellen von OLTP-Systemen, welche Daten von anderen Systemen beziehen. Mit Data Vault bekommt man die Möglichkeit, die Qualität der Belieferung der Schnittstellen automatisiert zu überprüfen und zu messen.

DataVault

Im Frühjahr gibt es vom Buchautor Hans Hultgren ein dreitägiges Training in Zürich zur Data Vault Modellierung. Anschließend findet eine Prüfung zur Zertifizierung statt. Interessant ist das Thema für Daten Architekten, Datenbank Programmierer, Data Warehouse Architekten, Business Intelligence Consultants und für alle die mit dem Design und Implementieren von Daten-Schnittstellen und BI-Systemen zu tun haben.

Der Trainer, Hans Hultgren, berät seit über 20 Jahren Firmen im Bereich Data Warehouse und Business Development. Hans Hultgren hat ein Buch über das Thema „Modeling the Agile Data Warehouse With Data Vault“ geschrieben. Ich habe das Buch gelesen, ich kann es nur empfehlen.

Außerdem schreibt Hans Hultgren in seinem Blog (https://hanshultgren.wordpress.com/) regelmäßig über das Thema Data Warehousing und Data Vault.

 

 

Fallstricke der T-SQL Funktion isNumeric() – was ist zu beachten?

Manchmal geht man davon aus, dass die mitgelieferte Funktionen des SQL Servers das tun, was sie sollen. Aber dieses erwartete Verhalten trifft nicht immer zu. Wie im vorliegenden Fall der Funktion isNumeric.

Was habe ich erwartet: Ich habe erwartet, dass die Funktion isNumeric den übergebenen Parameter auswertet und als Resultat entweder 1 oder 0 zurückgibt, je nachdem ob es sich um einen numerischen Wert handelt, oder nicht.

Wie ist das Verhalten: Leider funktioniert die Funktion isNumeric nicht immer richtig – oder noch schlimmer, es werden Fehler geworfen (beim Datentyp date), wo man es absolut nicht erwartet.

Beispiele

T-SQL Code Datentyp Ergebnis Bemerkung
declare @myAttribute as decimal(18,6) = 123456789012.123456; select isnumeric (@myAttribute); decimal 1 korrekt
declare @myAttribute as date = ‚2016-02-17‘; select isnumeric (@myAttribute); date kein Folgender Fehler wird geworden: Msg 8116, Level 16, State 1, Line 8 Argument data type date is invalid for argument 1 of isnumeric function.
declare @myAttribute as datetime = CURRENT_TIMESTAMP; select isnumeric (@myAttribute); datetime 0 korrekt – erstaunlich, dass datetime geht und date nicht …
declare @myAttribute as varchar(12) = ‚Hallo‘; select isnumeric (@myAttribute); varchar 0 korrekt
declare @myAttribute as varchar(12) = ‚4711‘; select isnumeric (@myAttribute); varchar 1 korrekt. D.h. mit isnumeric lassen sich auch varchar-Variablen untersuchen.
declare @myAttribute as varchar(12) = ‚€4711‘; select isnumeric (@myAttribute); varchar 1 korrekt. Trotzdem hätte ich hier evtl. eine 0 erwartet. In der Dokumentation von Microsoft kann man nachlesen, das die führende Zeichen wie +, – sowie Währungssymbole nicht ausgewertet werden.

Nun könnte man ja auf die Idee kommen, zuerst mit der Funktion SQL_VARIANT_PROPERTY den Datentypen zu checken:

declare @myAttribute as date = '2016-02-17'
if SQL_VARIANT_PROPERTY(@myAttribute,'BaseType') not in ('decimal','numeric','float','real','int','bigint','smallint','tinyint','money','smallmoney')
 print 'not a numeric type'
else
 select isnumeric(@myAttribute)

Doch auch hier wird der Ausruck ausgewertet und ein Fehler geworfen:
Msg 8116, Level 16, State 1, Line 6
Argument data type date is invalid for argument 1 of isnumeric function.

Als nächstes habe ich das gleiche mit einem CASE Statement versucht. Aber auch hier gibts eine Fehlermeldung:

declare @myAttribute as date = '2016-02-17'
SELECT
 CASE 
  WHEN SQL_VARIANT_PROPERTY(@myAttribute,'BaseType') 
      not in ('decimal','numeric','float','real','int','bigint','smallint','tinyint','money','smallmoney') THEN 0
  ELSE isnumeric(@myAttribute)
 END AS isAttributeNumeric

Msg 8116, Level 16, State 1, Line 3
Argument data type date is invalid for argument 1 of isnumeric function.

Fazit

Mein Fazit: Die Funktion isNumeric ist mit Vorsicht zu geniessen. Wenn sie eingesetzt wird, dann muss man sehr gut testen. Insbesondere muss sichergestellt werden, dass nie ein Parameter vom Datentyp date an die Funktion übergeben wird. Dann nämlich knallts und ein Fehler wird geworfen.  Falls SQL Server 2012 oder höher eingesetzt wird, gibt es hier eine Empfehlung immer TryParse anstatt isNumeric einzusetzen.

 

 

Vortrag am 2.12.2015: Entwickeln von IoT (Internet of Things) Lösungen mit Microsoft Azure

Die MSUGS (Microsoft Solutions User Group Switzerland) veranstaltet am 2.12.2015 einen sehr interessanten Vortrag über das Thema IoT (Internet of Things) auf Basis von Microsoft Azure.

Marco Amhof und Andrija Sisko zeigen am Beispiel von drei verschiedenen Sensoren wie man Sensorwerte sammeln und in PowerBI visualisieren kann. Dazu verwenden sie die Frameworks aus Microsoft Azure.

Marco arbeitet seit über 14 Jahren bei Trivadis als Consultant in Kundenprojekten, die mit Microsoft Technologie umgesetzt werden. Schwerpunkte sind Anwendungsentwicklung und Business Intelligence basierend auf den Technologien und Frameworks Microsoft SQL Server, Microsoft .NET und Microsoft Dynamics XRM.

Andrija arbeitet seit 4½ Jahren bei Trivadis als .Net Consultant in der Application Development Unit. Seine Schwerpunkte liegen in den Bereichen Serverseitige Programmierung, ASP.NET MVC, Microsoft SQL Server, Microsoft Entwicklungswerkzeuge (Visual Studio, TFS) und Performance Analyse/Management.

Sei dabei bei diesem spannenden Vortrag wo IoT konkret wird. Weitere Details zum Programm und zur Anmeldung findest Du hier auf der Homepage der MSUGS.

Kanban Board mit JIRA

Ein physisches Kanban Board ist grundsätzlich immer zu empfehlen. Was aber tun, wenn die Mitarbeiter des Projektes nicht am gleichen Ort arbeiten. Oder wenn Kollegen mitarbeiten, die mehrere örtlich verschiedene Arbeitspätze haben? Dann empfiehlt sich eine Online Applikation wie z.B. Trello oder Jira. Im Folgenden beschreibe ich kurz, wie man eine Kanban Board mit JIRA aufsetzen kann.

Step 1: Projekt erstellen

  1. Menü: Projects / Create Project
  2. Im Dialog „Agile Kanban“ auswählen.
  3. Dem Projekt einen Namen und Key geben z.B. „Mein Kanban Projekt“ und „MKP“.

Das Projekt ist jetzt angelegt, das Kanban Board wird angezeigt. Es wird der GreenHopper Simplified Workflow benutzt. Die Tasks lassen sich per Drag & Drop auf dem Board verschieben.

Step 2: Anpassen des Kanban Boards

  1. Auf den Button mit dem Zahnrad (Administration) klicken / Configure
  2. Jetzt wird das GUI „Configure <project name>“ angezeigt. Hier auf den Tab „Columns“ klicken. Rechts werden zwei Buttons angezeigt: „Add Status“ sowie „Add Column“. Sollte „AddStatus“ nicht angezeigt werden, so haben Sie vermutlich zu wenig Rechte. Wenden Sie sich dann an den Administrator und lassen sich für Ihr neu erstelltes Projekt mehr Rechte geben.
  3. Initial werden drei Spalten angezeigt:
    a) Todo
    b) In Progress
    c) Done
    Diese sind mit den vordefinierten Standard Status verknüpft:
    Jira_Default_Board
  4. Nun kann man mit dem Buttons „Add Status“ und „Add Columns“ die entsprechenden Spalten hinzufügen. Wenn man den Status und Spalten die gleichen Namen gibt, werden diese auch gleich automatisch gemappt. Überflüssige Status lassen sich auch löschen oder umbenennen.Nach dem Hinzufügen ist es sinnvoll, die Reihenfolge der Spalten anzupassen.
  5. Da sich in Jira eine Spalte nicht in „DOING“ und „DONE“ aufsplitten lässt, habe ich dafür eigene Status/Columns erstellt. Hier die Liste meiner Spalten (diese kann von Projekt zu Projekt verschieden sein und kann auch nachträglich angepasst werden):
    1. Backlog
    2. Next
    3. Analysis DOING
    4. Analysis DONE
    5. Dev DOING
    6. Dev DONE
    7. Test DOING
    8. Test DONE
    9. Ready for Release
    10. Done
  6. Sobald die Spalten aufgesetzt sind, sollte man noch das WIP Limit (Max) pro Spalte definieren
  7. Auch das Arbeiten mit Swimlines wird von JIRA resp. Greenhopper unterstützt. Hierzu habe ich auf den Tab „Swimlanes“ geklickt und „Base Swinlandes on Stories“ ausgewählt.

Step 3: Erstellen von Tasks

Jetzt sind wir mit der Anpassung des KANBAN Boards fertig und können anfangen Issues zu erfassen. Damit die Tasks gleich der richtigen Story zugeordnet werden, empfehle ich wie folgt vorzugehen:

  1. Erstellen einer Story mit dem Button „Create issue“ in der Menüleiste. Als Issue Type unbedingt „Story“ auswählen.
  2. Sobald die Story erfasst ist, zum Issue Navigator wechseln und die entsprechende Story auswählen. Dann kann man mit einem Klick auf den Button „More“ den Befehl „Create Sub-Task“ auswählen und den Task erfassen. Der Task wird nun automatisch auf dem Kanban Board in der Swimlane der zugehörigen Story einsortiert und angezeigt. Cool!

Vortrag: Optimierung der IT-Infrastruktur mit Office 365 und Azure

Am Donnerstag, 23. April 2015, 17.30 Uhr findet in Aarau ein Vortrag zum Thema „Optimierung der IT-Infrastruktur mit Office 365 und Azure: Zukunftsorientiert, umfassend und kosten-günstig“ statt. Der Vortrag ist kostenlos. Details siehe PDF-Dokument: Einladung_OdA_Event_20150423

Ort: Kantonale Verwaltung Aargau, Buchenhof Entfelderstrasse 22, 5000 Aarau, Sitzungszimmer AARE

AGENDA
17.30 Uhr – Empfang
18.00 Uhr – Event
– Optimierung der IT-Infrastruktur
– Demo OdA GS Aargau O365 / Lync
– Azure / SharePoint online inkl. Demo
– Neue Welt des Arbeitens

ab 19.45 Uhr
– Apéro und Ausklang
– Austausch mit den Referenten und Networking

ANMELDUNG BITTE BIS ZUM 21.4.2015 BEI:
rbestaendig@bluewin.ch

Die OdA GS Aargau (Organisation der Arbeitswelt für Gesundheits- und Sozialberufe) reduziert mit der Migration in die Azure-Cloud & Office 365 ihre IT Kosten um 53%! Trotz dieser massiven Kostensenkung stehen mehr Möglichkeiten zur Verfügung. An diesem Event zeigt Andrea Traber (Geschäftsleitungsmitglied der OdA GS Aargau) auf, wie die Ausgangslage vor dem Projekt ausgesehen hat, was die Überlegungen für diesen Schritt waren und wie sie jetzt arbeiten.

Meinrad Weiss und Simon Amrein von der Trivadis AG wird im Anschluss ein paar technische Details und die Herausforderungen aufzeigen, bevor sie Zukunftsvisionen erläutern und diese in einer kurzen Demonstration präsentieren. Weiter wollen wir die neue Welt des Arbeitens mit einem spannenden Referat von Lukas Gillioz, Solution Spezialist Cloud, aufzeigen.

 

 

Was ist Kanban in der IT – und was ist es nicht? (Teil 1)

Ist Kanban eine Softwareentwicklungs-Methode, ein Prozess, ein Framework oder eher eine Projektmanagement-Methode? Ist Kanban eine Alternative zu Scrum? Wie kann ich das einordnen?

Diese und andere Fragen beschäftigen mich seit längerem, dieser Artikel soll helfen, einige der Fragen zu beantworten.

Kanban ist ursprünglich eine Technik aus dem Toyota-Produktionssystem und dient der Selbststeuerung der Material- und Produktflüsse nach dem Hol-Prinzip. David Anderson griff diese Idee für die IT Branche auf und entwickelte sie weiter. 2007 veröffentlichte er sein Konzept auf mehreren Konferenzen, er gilt somit als Begründer von Kanban (für „Wissensarbeiter“).

  • Kanban ist eine evolutionäre Changemanagement Methode, welche mit kleinen Schritten zur Verbesserung eines bestehenden Prozesses führt. Diese vielen kleinen Verbesserungsschritte werden „Kaizen“ genannt, ein Begriff aus dem Japanischen. Man spricht auch vom kontinuierlichem Verbesserungsprozess resp. Continuos Improvement.
  • Kanban ist ein Pull-System (Hol-Prinzip): Das bedeutet, dass neue Aufgaben nicht in das System gedrückt werden (push), sondern, dass neue Aufgaben hineingezogen werden, sobald das System die Kapazität dafür hat.
  • Kanban beschränkt die Anzahl der parallelen Arbeiten, d.h. der Work in Progress (WIP) wird begrenzt. Man spricht auch von WIP-Limits.
  • Kanban selbst ist keine agile Methode, Kanban kann uns aber helfen eine agile Methode einzuführen.
  • Man könnte Kanban als Meta-Methode ansehen, welche mit anderen Vorgehensmodellen z.B. Wasserfall, Scrum, RUP (Rational Unified Process) kombiniert werden kann. Es ist also möglich, mit dem gerade existierenden Prozess zu starten und Kanban einzuführen!

Was ist Kanban nicht?

Kanban ist keine Softwareentwicklungs-Methode, kein Framework und es ist kein Prozess.

Ziele von Kanban

Mit Kanban soll eine nachhaltige Arbeitsgeschwindigkeit bei hoher Qualität erreicht werden. Optimierung der Durchlaufzeit anstatt der Optimierung der Auslastung. Verbesserung des bestehendes Prozesses in vielen inkrementellen Schritten. Mit Kanban sollen Aufgaben vor allem abgeschlossen und nicht nur angefangen werden. Alle Aufgaben der Wertschöpfungskette sollen visualisiert werden, hierdurch wird der bestehende Arbeitsprozess für das Team transparent gemacht. Engpässe und Probleme sollen aufgedeckt und gelöst werden, Durchlaufzeiten sollen vorhersagbar werden.

Die vier Grundprinzipien von Kanban

  1. Starte dort, wo Du gerade bist.
  2. Komme mit den anderen überein, dass inkrementelle, evolutionäre Veränderungen angestrebt werden.
  3. Respektiere den bestehenden Prozess, Verantwortlichkeiten und Titel.
  4. Fördere Leadership auf allen Ebenen.

Das vierte Grundprinzip ist erst später hinzugekommen. Leadership gibt es auf allen Ebenen. Mit Leadership ist hier nicht Führung gemeint, sondern vielmehr Leadership im Sinne von John P. Kotter:

Manager sind eher Verwalter, Leader dagegen Visionäre. Management steht eher für das perfekte Organisieren der Abläufe, planen und kontrollieren. Leadership bedeutet dagegen, die Geführten mit Visionen zu inspirieren und zu motivieren. Leadership schafft Kreativität, Innovation, Sinnerfüllung und Wandel.

Kurz gesagt: Ein Leader kann jeder sein! Es wäre doch toll, wenn von den Mitarbeitern, welche die Arbeit direkt ausführen, auch die Verbesserungsvorschläge kommen würden.

Kanban Praktiken

David Anderson beschreibt in seinem Buch „Kanban – Evolutionäres Change Management für IT-Organisationen“ die wichtigsten Kanban Praktiken:

  1. Visualisiere den Fluss der Arbeit (Workflow).
  2. Begrenze die Menge der begonnenen Arbeit (Work in Progress).
  3. Führe Messungen zum Fluss durch und kontrolliere ihn.
  4. Mach die Regeln für den Prozess explizit.
  5. Implementiere Feedback-Zyklen
  6. Verwende Modelle, um Chancen für Verbesserungen zu erkennen.

Der fünfte Punkt „Implementiere Feeback-Zyklen“ ist 2012 in Mayrhofen bei einer Konferenz hinzugekommen: Vortrag von David Anderson „How Deep is your Kanban“. Die PDF-Datei des Vortrags ist hier zu finden.

Zusammenfassung

Ich hoffe, ich konnte im ersten Teil meiner Artikelreihe grob erklären, was Kanban für Wissensarbeiter darstellt – was es ist, und was nicht. Ein Kanban Board alleine macht noch kein Kanban aus, dazu gehört mehr (z.B. WIP-Limits, Serviceklassen, Metriken, Exit-Kriterien).

In den nächsten Artikeln zu Kanban möchte ich über folgende Inhalte schreiben:

  • Organisation und Aufbau des Kanban Boards
  • Soll ich ein physikalisches Kanban Board verwenden oder lieber Software Kanban Board? Was ist, wenn die Teams örtlich verteilt sind? Welche Tools gibt es?
  • Wie starten wir mit Kanban?
  • Welche Service Klassen gibt es?
  • Begrenzung der angefangenen Arbeit mit WIP-Limits
  • Personal Kanban
  • Communitiy und Konferenzen rund um Kanban
  • Metriken wie z.B. WIP-Tracking mit dem Cumulative Flow Diagram, Durchlaufzeit, Termintreue, Durchsatz, Fehlerrate

Kostenlose Werkzeuge und Tools für Software-Entwickler

Kostenlose Werkzeuge und Tools für Software-Entwickler

Jeder Entwickler hat seine Lieblingswerkzeuge und Tools, vergleichbar mit dem Werkzeugkasten eines Klempner. So ist es auch bei mir – nachfolgend eine Liste inkl. kurzer Erläuterung der Tools, die ich häufig verwende.

Nr. Software-Tool Beschreibung Link
1 NSIS
(Nullsoft Sricptable Install System)
Software
zum Erstellen von Windows-Installationsprogrammen.
http://nsis.sourceforge.net
2 7-Zip Freies
Datenkompressionsprogramm (Packer)
http://www.7-zip.de
3 Notepad++ Texteditor für Windows http://notepad-plus-plus.org
4 Microsoft
Expression Web 4
HTML-Editor http://www.microsoft.com/en-us/download/details.aspx?id=36179
5 Windows
Live Writer
Programm mit dem man offline Blog-Posts schreiben und später veröffentlichen kann http://windows.microsoft.com/de-de/windows-live/essentials
6 Pixel
Ruler
Bildschirmlineal http://www.pixelruler.de
7 Fiddler Web Debugging Tool http://www.telerik.com/fiddler
8 Virtual
Clone Drive
Anlegen
von virtuellen DVD-Laufwerken
http://www.slysoft.com/de/virtual-clonedrive.html

Ich werde die Liste von Zeit zu Zeit aktualisieren und hoffe dass für jeden Besucher dieses Blog-Artikels was dabei ist. Ich würde mich sehr über Eure Kommentare freuen – es gibt sicher viele Tools, die ich noch nicht kenne!

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.