<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">
  <channel>
    <title>Norbert Eder's Blog</title>
    <description>Softwareentwicklung aus Leidenschaft</description>
    <link>http://devtyr.norberteder.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.5.0.6</generator>
    <language>de-AT</language>
    <blogChannel:blogRoll>http://devtyr.norberteder.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Norbert Eder</dc:creator>
    <dc:title>Norbert Eder's Blog</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/devtyr" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="devtyr" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>trello-burndown 0.8.0 verfügbar</title>
      <description>&lt;p&gt;&lt;a title="http://devtyr.github.com/trello-burndown/" href="http://devtyr.github.com/trello-burndown/" target="_blank"&gt;trello-burndown&lt;/a&gt; ist ab sofort in der Version &lt;strong&gt;0.8.0&lt;/strong&gt; verfügbar. Es hat wieder zahlreiche Bugfixes, Anpassungen und Erweiterungen gegeben, die in diesem Beitrag näher beschrieben werden.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Weiterführende Informationen finden sich auf &lt;a href="http://devtyr.github.com/trello-burndown/"&gt;http://devtyr.github.com/trello-burndown/&lt;/a&gt;. Das Node-Modul kann auch via &lt;a href="https://npmjs.org/"&gt;NPM&lt;/a&gt; installiert werden, Informationen siehe &lt;a href="https://npmjs.org/package/trello-burndown"&gt;https://npmjs.org/package/trello-burndown&lt;/a&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;Fehlerbehebungen&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;Der Sprint wurde einen Tag zu früh deaktiviert und konnte somit am letzten Tag nicht mehr aktualisiert werden&lt;/li&gt;    &lt;li&gt;&lt;font face="Courier New"&gt;export&lt;/font&gt; und &lt;font face="Courier New"&gt;config&lt;/font&gt; Ordner werden nun beim Startup erstellt, sofern diese nicht existieren&lt;/li&gt;    &lt;li&gt;&lt;font face="Courier New"&gt;d3.js&lt;/font&gt; wurde als NPM-Modul entfernt (Kompatibilitätsprobleme mit Node 0.10.x) und als statische Ressource eingebunden&lt;/li&gt;    &lt;li&gt;Wurden Tasks an Tagen abgeschlossen, die nicht aktiv im Burndown angezeigt werden, dann wurden deren Werte nicht berücksichtigt.&lt;/li&gt;    &lt;li&gt;Burndown-Chart wurde an die restlichen Charts angepasst&lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Features&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;Hover-Informationen in den Charts&lt;/li&gt;    &lt;li&gt;Es werden nun mehrere Finished Lists unterstützt&lt;/li&gt;    &lt;li&gt;Sprint-Ansicht wurde um eine Liste der offenen Punkte erweitert&lt;/li&gt;    &lt;li&gt;Sprint-Ansicht wurde um die Anzeige der Statistik-Daten erweitert&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Viel Spaß damit!&lt;/p&gt;</description>
      <link>http://devtyr.norberteder.com/post/trello-burndown-080-verfugbar.aspx</link>
      <author>csharp@gmx.at</author>
      <comments>http://devtyr.norberteder.com/post/trello-burndown-080-verfugbar.aspx#disqus_thread</comments>
      <guid>http://devtyr.norberteder.com/post.aspx?id=24aee066-d145-4155-989e-de50fd902dd2</guid>
      <pubDate>Thu, 18 Apr 2013 13:01:06 +0200</pubDate>
      <category>JavaScript</category>
      <category>Allerlei</category>
      <dc:publisher>Norbert Eder</dc:publisher>
      <pingback:server>http://devtyr.norberteder.com/pingback.axd</pingback:server>
      <pingback:target>http://devtyr.norberteder.com/post.aspx?id=24aee066-d145-4155-989e-de50fd902dd2</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://devtyr.norberteder.com/trackback.axd?id=24aee066-d145-4155-989e-de50fd902dd2</trackback:ping>
      <wfw:comment>http://devtyr.norberteder.com/post/trello-burndown-080-verfugbar.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://devtyr.norberteder.com/syndication.axd?post=24aee066-d145-4155-989e-de50fd902dd2</wfw:commentRss>
    </item>
    <item>
      <title>WLAN verliert unter Windows 8 ständig Verbindung</title>
      <description>&lt;p&gt;Die WLAN-Verbindung auf meinem neuen Laptop verliert - wenn ich via Tethering online bin - laufend die Verbindung. Das ist durchaus nervig wenn man alle Minuten neu verbinden darf. Also muss dafür eine Lösung her. Insgesamt fallen mir hierzu zwei Möglichkeiten ein, die helfen können (wohl nicht müssen, aber wir werden sehen).&lt;/p&gt;  &lt;h2&gt;Energieverwaltung&lt;/h2&gt;  &lt;p&gt;Für einige Geräte besteht die Möglichkeit, dass der Computer unter dem Deckmantel der Energieverwaltung das jeweilige Gerät deaktivieren darf. Dies ist gerade bei Laptops die auf Akku laufen hilfreich um Ressourcen zu sparen. Dies kann jedoch unter Umständen zu ungewollten Verhaltensweisen führen. Um dies für die WLAN-Karte zu deaktivieren ist der &lt;strong&gt;Geräte-Manager&lt;/strong&gt; zu öffnen und das Stück Hardware unter &lt;strong&gt;Netzwerkadapter&lt;/strong&gt; zu finden. In den Eigenschaften findet sich nun die Lasche &lt;strong&gt;Energieverwaltung&lt;/strong&gt;. Um eine Deaktivierung durch den Rechner zu verhindern ist der Haken von &lt;strong&gt;Computer kann das Gerät ausschalten, um Energie zu sparen&lt;/strong&gt; zu entfernen. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_245.png"&gt;&lt;img title="Energieverwaltung für WLAN-Karte konfigurieren" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Energieverwaltung für WLAN-Karte konfigurieren" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_168.png" width="700" height="510" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Treiber aktualisieren&lt;/h2&gt;  &lt;p&gt;Hat die Änderung der Energieverwaltung nicht funktioniert, sollte überprüft werden, ob ein neuer Treiber zur Verfügung steht. Hierfür sind die selben Schritte, wie oben beschrieben, durchzuführen. Anstatt der Lasche Energieverwaltung ist hingegen die Lasche &lt;strong&gt;Treiber&lt;/strong&gt; zu öffnen. Dies ergibt in etwa folgendes Bild:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_246.png"&gt;&lt;img title="Treiber-Informationen WLAN" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Treiber-Informationen WLAN" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_169.png" width="500" height="580" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nun ist die Schaltfläche &lt;strong&gt;Treiber aktualisieren&lt;/strong&gt; zu wählen. Man wird nun gefragt, ob automatisch nach einem Treiber (online) gesucht werden soll, oder aber am Rechner (so man bereits zuvor Treiberdateien herunter geladen hat). Hier ist die erste Wahl zu treffen. Wird ein neuer Treiber gefunden, ist dieser zu installieren. Natürlich kann es nun sein, dass kein neuer Treiber gefunden wurde. Dies bedeutet jedoch nicht, dass es keinen neuen gibt. Hierfür ist die Hersteller-Seite (in meinem Fall die Seite von &lt;a title="Download-Center Intel" href="https://downloadcenter.intel.com/" target="_blank"&gt;Intel&lt;/a&gt;) aufzurufen und für die entsprechende Hardware nach einem Treiber zu suchen. Wie auf dem obigen Screenshot ersichtlich, ist die notwendige Information hierfür angeführt. Wichtig ist hier die korrekte Typbezeichnung und die aktuell installierte Version (hierbei ist darauf zu achten, ob es sich um 64-Bit oder 32-Bit System handelt - dies kann via &lt;strong&gt;System &lt;/strong&gt;herausgefunden werden).&lt;/p&gt;  &lt;p&gt;Die Treiber kommen im Normalfall mit einem Installer, der auszuführen ist. Etwaige Anweisungen sind zu befolgen. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Bei Intel ist mir aufgefallen, dass sich der Installer ohne Meldung verabschiedet. Ein kurzer Blick auf die Treiberversion hat jedoch gezeigt, dass der Treiber installiert wurde. D.h. dies vor Ausbruch einer Panik überprüfen :)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In meinem Fall hat es ein Treiber-Update getan - Problem gelöst, allerdings stellt sich mir die Frage nach der Aktualität der Treiberdatenbank von Microsoft. Liegen zwischen der ursprünglich installierten Version und der nun installierten doch über zwei Monate. Da würde ich mir gerade für den nicht technikaffinen Endverbraucher eine Verbesserung wünschen.&lt;/p&gt;</description>
      <link>http://devtyr.norberteder.com/post/WLAN-verliert-unter-Windows-8-standig-Verbindung.aspx</link>
      <author>csharp@gmx.at</author>
      <comments>http://devtyr.norberteder.com/post/WLAN-verliert-unter-Windows-8-standig-Verbindung.aspx#disqus_thread</comments>
      <guid>http://devtyr.norberteder.com/post.aspx?id=dfca9449-d31b-4da9-a099-3770027560da</guid>
      <pubDate>Wed, 17 Apr 2013 20:53:30 +0200</pubDate>
      <category>Allerlei</category>
      <dc:publisher>Norbert Eder</dc:publisher>
      <pingback:server>http://devtyr.norberteder.com/pingback.axd</pingback:server>
      <pingback:target>http://devtyr.norberteder.com/post.aspx?id=dfca9449-d31b-4da9-a099-3770027560da</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://devtyr.norberteder.com/trackback.axd?id=dfca9449-d31b-4da9-a099-3770027560da</trackback:ping>
      <wfw:comment>http://devtyr.norberteder.com/post/WLAN-verliert-unter-Windows-8-standig-Verbindung.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://devtyr.norberteder.com/syndication.axd?post=dfca9449-d31b-4da9-a099-3770027560da</wfw:commentRss>
    </item>
    <item>
      <title>Windows Phone: Verbindung zu SkyDrive aufbauen</title>
      <description>&lt;p&gt;Viele Windows Phone Apps ermöglichen das Arbeiten mit Dokumenten oder Daten die sinnvollerweise mit anderen Anwendungen geteilt werden. Vielfach kommt dabei &lt;a title="Dropbox" href="http://www.dropbbox.com" target="_blank"&gt;Dropbox&lt;/a&gt; zum Einsatz und weit seltener &lt;a title="SkyDrive" href="http://www.skydrive.com" target="_blank"&gt;SkyDrive&lt;/a&gt;. Dabei ist eine Integration mittlerweile recht einfach möglich. Dieser Beitrag zeigt was dafür notwendig ist und wie es funktioniert.&lt;/p&gt;  &lt;p&gt;Im ersten Schritt wird das &lt;a title="Live SDK" href="http://www.microsoft.com/en-us/download/details.aspx?id=35754" target="_blank"&gt;Live SDK&lt;/a&gt; benötigt. Darin enthalten sind Steuerelemente und Schnittstellen für den Zugriff auf &lt;a title="SkyDrive" href="http://www.skydrive.com" target="_blank"&gt;SkyDrive&lt;/a&gt; via Single Sign On durch den Microsoft Account (vormals Windows Live ID). Nach der Installation sind zwei Referenzen einzubinden:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_242.png"&gt;&lt;img title="Windows Live Referenzen einbinden" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Windows Live Referenzen einbinden" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_165.png" width="500" height="310" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Wer gerne über die &lt;strong&gt;Toolbox&lt;/strong&gt; arbeitet kann sich die Steuerelemente via &lt;strong&gt;Choose Items&lt;/strong&gt; einbinden:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_243.png"&gt;&lt;img title="Visual Studio Toolbox Items hinzufügen" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Visual Studio Toolbox Items hinzufügen" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_166.png" width="500" height="362" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hier ist dann (je nach zu Grunde liegender Version) der &lt;strong&gt;SignInButton&lt;/strong&gt; zu wählen. Nach Bestätigung erscheint das Steuerelement in der Toolbox und kann dort praktisch ausgewählt und auf die View gezogen werden:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_244.png"&gt;&lt;img title="SignInButton in Visual Studio Toolbox hinzufügen" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="SignInButton in Visual Studio Toolbox hinzufügen" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_167.png" width="500" height="381" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Berechtigungen&lt;/h2&gt;  &lt;p&gt;Für den Zugriff auf SkyDrive sind unterschiedliche Berechtigungen notwendig. Hierbei sind insgesamt 5 Scopes definiert, die jeweils mit einer unterschiedlichen Berechtigung ausgestattet sind:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font face="Courier New"&gt;wl.sigin&lt;/font&gt;: Single Sign On, d.h. ist der Benutzer bereits angemeldet, wird diese Session übernommen&lt;/li&gt;    &lt;li&gt;&lt;font face="Courier New"&gt;wl.basic&lt;/font&gt;: Lesezugriff auf die grundlegenden Profilinformationen und der Liste der Kontakte&lt;/li&gt;    &lt;li&gt;&lt;font face="Courier New"&gt;wl.offline_access&lt;/font&gt;: Benutzerprofil kann zu jeder Zeit gelesen und aktualisiert werden. Ist dieser Scope nicht aktiviert kann auf die Profilinformationen nur in eingeloggtem Zustand zugegriffen werden.&lt;/li&gt;    &lt;li&gt;&lt;font face="Courier New"&gt;wl.skydrive&lt;/font&gt;: Lesezugriff auf Dateien&lt;/li&gt;    &lt;li&gt;&lt;font face="Courier New"&gt;wl.skydrive_update&lt;/font&gt;: Lese- und Schreibzugriff auf Dateien&lt;/li&gt; &lt;/ul&gt;    &lt;p&gt;Alle verfügbaren Scopes können &lt;a title="Scopes and permissions - Live SDK" href="http://msdn.microsoft.com/en-us/library/hh243646.aspx" target="_blank"&gt;hier&lt;/a&gt; eingesehen werden. Die gewünschten Scopes sind bei Verwendung des &lt;font face="Courier New"&gt;SignInButton&lt;/font&gt;-Steuerelementes über die Eigenschaft Scopes anzugeben:&lt;/p&gt;  &lt;div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 97.5%; background-color: #f4f4f4"&gt;   &lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;     &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Controls:SignInButton&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Scopes&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;wl.basic wl.signin wl.offline_access wl.skydrive_update&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Damit der Zugriff grundsätzlich funktioniert, muss im &lt;a title="Live Connect Developer Center" href="https://manage.dev.live.com/" target="_blank"&gt;Live Connect Developer Center&lt;/a&gt; eine Anwendung erstellt werden. Daraus resultiert eine &lt;strong&gt;ClientId&lt;/strong&gt;, die in der gleichnamigen Eigenschaft zu setzen ist.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Es ist zu beachten, dass für den Zugriff mittels Windows Phone in den API-Einstellungen zur Anwendung im Developer Center diese als mobile Anwendung deklariert werden muss.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So sollte die Deklaration der Schaltfläche schlussendlich aussehen:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 97.5%; background-color: #f4f4f4"&gt;
  &lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;
    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Controls:SignInButton&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Scopes&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;wl.basic wl.signin wl.offline_access wl.skydrive_update&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;SessionChanged&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;OnSkyDriveSessionChanged&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ClientId&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;[ClientId]&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Branding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Skydrive&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;TextType&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;SignIn&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Es gibt weitere Eigenschaften, die gesetzt werden sollten:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;font face="Courier New"&gt;Branding&lt;/font&gt;: Das Icon und das Theme welches für die Schaltfläche gesetzt werden sollen. Im obigen Beispiel ist dies auf &lt;font face="Courier New"&gt;Skydrive&lt;/font&gt; gesetzt. Weitere Möglichkeiten sind &lt;font face="Courier New"&gt;Hotmail&lt;/font&gt;, &lt;font face="Courier New"&gt;Messenger&lt;/font&gt; und &lt;font face="Courier New"&gt;Windows&lt;/font&gt;.&lt;/li&gt;

  &lt;li&gt;&lt;font face="Courier New"&gt;TextType&lt;/font&gt;: Hierfür stehen unterschiedliche Varianten des anzuzeigenden Textes zur Verfügung. Eine Übersicht wird &lt;a title="SignInButton.TextTypeProperty" href="http://msdn.microsoft.com/en-us/library/live/microsoft.live.controls.signinbutton.texttype.aspx" target="_blank"&gt;hier&lt;/a&gt; gegeben.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Verbindung aufbauen&lt;/h2&gt;

&lt;p&gt;Um eine Verbindung aufzubauen ist lediglich auf die angezeigte Schaltfläche zu klicken. Wie bei der obigen Deklaration zu sehen ist, ist ein Ereignishandler auf das Ereignis &lt;font face="Courier New"&gt;SessionChanged&lt;/font&gt; zu setzen. Dieses Ereignis wird ausgelöst, wenn es dahingehend eine Änderung gibt.&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 97.5%; background-color: #f4f4f4"&gt;
  &lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;
    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (e != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; e.Status == LiveConnectSessionStatus.Connected)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;    ViewModel.ConnectClient(e.Session);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;    ViewModel.DisconnectClient();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (e.Error != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;    {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;        &lt;span style="color: #008000"&gt;// Error handling&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Hier wird auf ein &lt;font face="Courier New"&gt;ViewModel&lt;/font&gt; verwiesen, welches in meiner Anwendung verwendet wird. Dieses stellt eine Methode &lt;font face="Courier New"&gt;ConnectClient&lt;/font&gt; zur Verfügung. Darin wird unter anderem folgendes vorgenommen um den Client zu initialisieren:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" style="overflow: auto; cursor: text; font-size: 8pt; border-top: silver 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right: silver 1px solid; border-bottom: silver 1px solid; padding-bottom: 4px; direction: ltr; text-align: left; padding-top: 4px; padding-left: 4px; margin: 20px 0px 10px; border-left: silver 1px solid; line-height: 12pt; padding-right: 4px; max-height: 200px; width: 97.5%; background-color: #f4f4f4"&gt;
  &lt;div id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;
    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; LiveConnectClient skydriveClient = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&amp;#160;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ConnectClient(LiveConnectSession session)&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;{&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: white"&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.skydriveClient = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; LiveConnectClient(session);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-bottom-style: none; color: black; padding-bottom: 0px; direction: ltr; text-align: left; padding-top: 0px; border-right-style: none; padding-left: 0px; margin: 0em; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;}&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Ab nun können weitere Operationen ausgeführt werden. Eine genaue Beschreibung hinsichtlich Ordner und Dateien findet sich im Beitrag &lt;a title="Working with Microsoft SkyDrive folders and files" href="http://msdn.microsoft.com/en-us/library/live/hh826531.aspx#uploading_files" target="_blank"&gt;Working with Microsoft SkyDrive folders and files&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;Hinweis&lt;/strong&gt;: Sehr hilfreich ist das &lt;a title="Interaktives Live SDK" href="http://isdk.dev.live.com/" target="_blank"&gt;interaktive Live SDK&lt;/a&gt;. Darüber kann die API ohne echtes Setup kennengelernt werden.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;Fazit&lt;/h2&gt;

&lt;p&gt;Mit Hilfe des Live SDK kann sehr einfach eine Verbindung zu SkyDrive aufgenommen werden. Die Verwendung selbst ist einfach, allerdings mit einigen kleinen Gemeinheiten deren Lösung an unterschiedlichsten Stellen allerdings gefunden wird. &lt;/p&gt;</description>
      <link>http://devtyr.norberteder.com/post/Windows-Phone-Integration-SkyDrive-leicht-gemacht.aspx</link>
      <author>csharp@gmx.at</author>
      <comments>http://devtyr.norberteder.com/post/Windows-Phone-Integration-SkyDrive-leicht-gemacht.aspx#disqus_thread</comments>
      <guid>http://devtyr.norberteder.com/post.aspx?id=f2392833-285e-4bd0-9e5e-0a2914eb61c1</guid>
      <pubDate>Wed, 17 Apr 2013 15:57:19 +0200</pubDate>
      <category>Windows Phone 7</category>
      <dc:publisher>Norbert Eder</dc:publisher>
      <pingback:server>http://devtyr.norberteder.com/pingback.axd</pingback:server>
      <pingback:target>http://devtyr.norberteder.com/post.aspx?id=f2392833-285e-4bd0-9e5e-0a2914eb61c1</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://devtyr.norberteder.com/trackback.axd?id=f2392833-285e-4bd0-9e5e-0a2914eb61c1</trackback:ping>
      <wfw:comment>http://devtyr.norberteder.com/post/Windows-Phone-Integration-SkyDrive-leicht-gemacht.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://devtyr.norberteder.com/syndication.axd?post=f2392833-285e-4bd0-9e5e-0a2914eb61c1</wfw:commentRss>
    </item>
    <item>
      <title>Team Foundation Services - Scrum-Template im Einsatz</title>
      <description>&lt;p&gt;Im Beitrag “&lt;a title="Team Foundation Services - Unterstützung für Git unter der Lupe" href="http://devtyr.norberteder.com/post/Team-Foundation-Services-Unterstutzung-fur-Git-unter-der-Lupe.aspx"&gt;Team Foundation Services - Unterstützung für Git unter der Lupe&lt;/a&gt;” habe ich mich bereits mit den Team Foundation Services beschäftigt - genauer gesagt mit der Unterstützung für Git. Dieser Beitrag wendet sich nun der Scrum-Prozessvorlage zu. Die Team Foundation Services bieten mehrere Prozess-Vorlagen, für mich ist zum aktuellen Zeitpunkt jedoch nur die Scrum-Vorlage wirklich interessant. Zu den weiteren Vorlagen wird es daher in diesem Beitrag keine zusätzlichen Informationen geben. Dabei ist für mich von Interesse, welche Funktionalitäten diese Vorlage tatsächlich anbietet und wie der Umgang damit hinsichtlich Verwendbarkeit ist.&lt;/p&gt;  &lt;p&gt;Im Menüpunkt &lt;strong&gt;WORK&lt;/strong&gt; finden sich die Zugänge zum &lt;em&gt;Product Backlog&lt;/em&gt;, zum aktuellen &lt;em&gt;Board&lt;/em&gt; und der mir zugeordneten &lt;em&gt;Work Items&lt;/em&gt;.&lt;/p&gt;  &lt;h2&gt;Product Backlog&lt;/h2&gt;  &lt;p&gt;Im Product Backlog können sämtliche User Stories verwaltet werden. Dieses ist sehr einfach gehalten und zeigt neben der Reihenfolge auch den Titel, den Status, den Aufwand, den Iterationspfad und gesetzte Tags an:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_233.png"&gt;&lt;img title="Team Foundation Services - Product Backlog" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Product Backlog" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_156.png" width="700" height="362" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Die Spalten der Liste können nach eigenem Bedarf angepasst werden. Es stehen zahlreiche Möglichkeiten zur Verfügung:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_226.png"&gt;&lt;img title="Team Foundation Services - Product Backlog Columns" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Product Backlog Columns" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_149.png" width="500" height="321" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Einträge können in dieser Liste der Drag &amp;amp; Drop verschoben und so die Reihenfolge angepasst werden. Über das Zeilenmenü kann ein gewähltes Element geöffnet werden um Detailinformationen erfassen zu können:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_224.png"&gt;&lt;img title="Team Foundation Services - Item Detail" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Item Detail" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_147.png" width="500" height="327" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Die Möglichkeiten an dieser Stelle sind vielfältig. Erfasst werden kann:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Iteration &lt;/li&gt;    &lt;li&gt;Zugewiesene Person &lt;/li&gt;    &lt;li&gt;Status &lt;/li&gt;    &lt;li&gt;Grund &lt;/li&gt;    &lt;li&gt;Aufwand &lt;/li&gt;    &lt;li&gt;Business-Wert &lt;/li&gt;    &lt;li&gt;Backlog Priorität &lt;/li&gt;    &lt;li&gt;Beschreibung &lt;/li&gt;    &lt;li&gt;Storyboards &lt;/li&gt;    &lt;li&gt;Testfälle &lt;/li&gt;    &lt;li&gt;Aufgaben &lt;/li&gt;    &lt;li&gt;Akzeptanzkritierien &lt;/li&gt;    &lt;li&gt;Historie &lt;/li&gt;    &lt;li&gt;Links &lt;/li&gt;    &lt;li&gt;Anhänge &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Bei der Eingabe von neuen Items wird eine Unterscheidung zwischen Backlog-Eintrag und Bug vorgenommen.&lt;/p&gt;  &lt;p&gt;Auf Basis der eingetragenen Aufwände (Schätzungen whatever) kann auch eine &lt;strong&gt;Prognose&lt;/strong&gt; erstellt werden. Diese ist in der Standardeinstellung deaktiviert, lässt sich jedoch durch einen einzigen Klick sofort aktivieren:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image10.png"&gt;&lt;img title="Team Foundation Service - Prognose/Forecast" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Service - Prognose/Forecast" src="http://devtyr.norberteder.com/image.axd?picture=image10_thumb.png" width="700" height="353" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Im Standard wird eine Velocity (also Teamgeschwindigkeit) von 10 angenommen (in meinem Fall mit einer Person im Team des Tests). Dieser Wert kann entsprechend angepasst werden. Alle Backlog-Einträge werden daher entsprechend ihrer Reihenfolge in Sprints unterteilt. Dadurch ergibt sich natürlich auch eine schöne Sicht, wie viele Sprints für die gesamte Umsetzung des Backlogs benötigt werden.&lt;/p&gt;  &lt;p&gt;Für das Product Backlog steht ebenfalls eine &lt;strong&gt;Board&lt;/strong&gt;-Ansicht zur Verfügung. Diese zeigt die Einträge aus dem Backlog und ihren Status an:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image20.png"&gt;&lt;img title="Team Foundation Services - Product Backlog Board" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Product Backlog Board" src="http://devtyr.norberteder.com/image.axd?picture=image20_thumb.png" width="700" height="248" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Auch hier können die einzelnen Listen (Spalten) konfiguriert werden.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_228.png"&gt;&lt;img title="Team Foundation Services - Product Backlog Board Einstellungen" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Product Backlog Board Einstellungen" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_151.png" width="500" height="260" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Auf diese Einstellungen sollte unbedingt ein Blick geworfen werden, da wohl nicht sehr viele mit einem vordefinierten WIP-Limit arbeiten wollen.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;Sprints verwalten&lt;/h2&gt;  &lt;p&gt;Über das Kontextmenü oder aber das Zeilenmenü können einzelne Einträge bestimmten Iterationen zugeordnet werden (eine Mehrfachauswahl scheint nicht möglich zu sein). Die Änderung wird sofort im Product Backlog ersichtlich. Gleichzeitig wird der gewünschte Sprint aktualisiert. Ein mögliches Ergebnis kann wie folgt aussehen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_234.png"&gt;&lt;img title="Team Foundation Services - Sprint" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Sprint" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_157.png" width="700" height="152" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In der Headerleiste ist nun zu sehen, dass noch keine Sprintdaten erfasst wurden. Unter &lt;strong&gt;Set Date&lt;/strong&gt; können nun das Start- und Enddatum des aktuellen Sprints gesetzt werden. Ebenfalls ist zu beachten, dass diese Liste eine weitere Ausprägung &lt;strong&gt;Capacity&lt;/strong&gt; hat. Darunter können die Ressourcen für diesen Sprint geplant werden:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_235.png"&gt;&lt;img title="Team Foundation Services - Ressourcenplanung" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Ressourcenplanung" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_158.png" width="700" height="262" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In diesem Beispiel ist schön zu sehen, dass die Ressourcen für die Umsetzung nicht ausreichen. Dies wird sofort zur Ansicht gebracht und kann für die Anpassung der Planung verwendet werden.&lt;/p&gt;  &lt;p&gt;Eine Gesamtplanung der Releases und dazugehörigen Sprints ist auf der &lt;strong&gt;Overview&lt;/strong&gt; unter dem Menüpunkt &lt;strong&gt;Configure schedule and iterations&lt;/strong&gt; verfügbar. Dies sieht dann so aus:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_237.png"&gt;&lt;img title="Team Foundation Services - Configure Schedsule and Iterations" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Configure Schedsule and Iterations" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_160.png" width="500" height="465" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In der ersten Liste besteht nun die Möglichkeit, jedem Backlog-Item Tasks hinzuzufügen, dies erfolgt über das + Icon. Die auszufüllenden Felder entsprechen denen eines Backlog-Eintrages, anstatt eines Aufwandes wird der verbleibende Aufwand eingetragen (diese erfolgen in Stunden):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_231.png"&gt;&lt;img title="Team Foundation Services - Task hinzufügen" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Task hinzufügen" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_154.png" width="500" height="283" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Aus den vorhandenen Backlog-Einträgen und den dazugehörigen Tasks wird automatisch ein Board generiert:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_236.png"&gt;&lt;img title="Team Foundation Services - Sprint Board" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Sprint Board" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_159.png" width="700" height="242" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Dieses zeigt übersichtlich den aktuellen Stand an und kann natürlich dazu verwendet werden, den Status der einzelnen Punkte zu verändern.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Eine für mich interessante Frage ist nun: Muss ich als Entwickler die Punkte im Board verschieben, oder funktioniert das auch direkt via Visual Studio. Der Vorteil läge natürlich darin, dass ich mein Hauptwerkzeug nicht verlassen muss. Ein weiterer Vorteil läge darin, dass dieser Schritt bei einer automatischen Durchführung nicht vergessen werden kann und das Board somit tatsächlich immer aktuelle sein würde.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;Team Foundation Services via Visual Studio&lt;/h2&gt;  &lt;p&gt;Um nun mit den Work Items etc. der Team Foundation Services arbeiten zu können, ist das Service zu verbinden. Hierzu ist ein “Team Foundation Server” hinzu zu fügen. Die URL entspricht dem Link zum eigenen Workspace:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_238.png"&gt;&lt;img title="Visual Studio - Add Team Foundation Server" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Visual Studio - Add Team Foundation Server" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_161.png" width="500" height="327" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Im Anschluss ist das gewünschte Team Project auszuwählen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_239.png"&gt;&lt;img title="Visual Studio - Team Project auswählen" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Visual Studio - Team Project auswählen" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_162.png" width="500" height="383" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nun kann via &lt;strong&gt;Team&lt;/strong&gt; - &lt;strong&gt;New Query&lt;/strong&gt; eine Abfrage auf den aktuell geplanten Sprint vorgenommen werden:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_240.png"&gt;&lt;img title="Visual Studio - Work Items des aktuellen Sprints" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Visual Studio - Work Items des aktuellen Sprints" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_163.png" width="700" height="236" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Alle relevanten Work Items können damit abgegriffen werden.&lt;/p&gt;  &lt;p&gt;Es werden automatisch Shared Queries angelegt, welche über Visual Studio abgegriffen werden können. Diese betreffen den aktuellen Sprint, d.h. eine obige Query muss nicht zwingend vorgenommen werden. Zu den Queries gelangt man via &lt;strong&gt;Team Explorer&lt;/strong&gt; und &lt;strong&gt;Work Items&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_241.png"&gt;&lt;img title="Visual Studio Work Items" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Visual Studio Work Items" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_164.png" width="500" height="346" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Mit den Work Items kann nun direkt aus Visual Studio gearbeitet werden. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Änderungen werden nicht automatisch an ein Changeset gehängt, dies kann aber sehr einfach durch einen Link vom Work Item auf das jeweilige Changeset (oder mehrere) vorgenommen werden.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Alle gemachten Änderungen sind sofort online ersichtlich.&lt;/p&gt;  &lt;h2&gt;Fazit&lt;/h2&gt;  &lt;p&gt;An einigen Stellen hakt es schon noch ein wenig. So würde ich mir wünschen, dass sich ein Work Item automatisch an das jeweilige Changeset (oder an die Changesets) hängt. Auch die Git-Integration im Team Explorer braucht definitiv noch Verbesserungen hinsichtlich der Usability. Insgesamt lässt es sich aber ganz gut damit arbeiten. Jetzt fehlt noch ein Test mit einer Real-World-Solution und der Preview Funktionen hinsichtlich Build und Test Cases. Bis jetzt sehe ich jedoch keinen Grund der gegen die Nutzung der Team Foundation Services mit Git-Repository spricht.&lt;/p&gt;</description>
      <link>http://devtyr.norberteder.com/post/Team-Foundation-Services-Scrum-Template-im-Einsatz.aspx</link>
      <author>csharp@gmx.at</author>
      <comments>http://devtyr.norberteder.com/post/Team-Foundation-Services-Scrum-Template-im-Einsatz.aspx#disqus_thread</comments>
      <guid>http://devtyr.norberteder.com/post.aspx?id=5174fba5-4fac-4b5d-b4c0-567f363af743</guid>
      <pubDate>Mon, 15 Apr 2013 09:08:00 +0200</pubDate>
      <category>Tools</category>
      <category>.NET</category>
      <dc:publisher>Norbert Eder</dc:publisher>
      <pingback:server>http://devtyr.norberteder.com/pingback.axd</pingback:server>
      <pingback:target>http://devtyr.norberteder.com/post.aspx?id=5174fba5-4fac-4b5d-b4c0-567f363af743</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://devtyr.norberteder.com/trackback.axd?id=5174fba5-4fac-4b5d-b4c0-567f363af743</trackback:ping>
      <wfw:comment>http://devtyr.norberteder.com/post/Team-Foundation-Services-Scrum-Template-im-Einsatz.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://devtyr.norberteder.com/syndication.axd?post=5174fba5-4fac-4b5d-b4c0-567f363af743</wfw:commentRss>
    </item>
    <item>
      <title>Team Foundation Services - Unterstützung für Git unter der Lupe</title>
      <description>&lt;p&gt;Nachdem das Tooling beim Team Foundation Server 2012 sehr vielversprechend ist und mit reinen Git bzw. Mercurial-Mitteln zwar möglich, aber durchaus mit zusätzlichen Schritten für Entwicklern oder gar Kontextbrüchen einher geht, möchte ich mir dieses Thema genauer ansehen. Zwar gibt es durchaus Lösungen die eine gesamtheitliche Abbildung des Entwicklungsprozesses inkl. Einbindung von beispielsweise Scrum ermöglichen, allerdings sind die gefundenen Varianten kostenpflichtig, der TFS ist jedoch bereits In-Haus verfügbar, ohne Mehrkosten.&lt;/p&gt;  &lt;p&gt;Visual Studio kann ja durch die &lt;a title="Visual Studio Tools for Git" href="http://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c" target="_blank"&gt;Visual Studio Tools for Git&lt;/a&gt; recht passabel mit Git-Repositories arbeiten. Auch die &lt;a title="Team Foundation Services" href="http://tfs.visualstudio.com/" target="_blank"&gt;Team Foundation Services&lt;/a&gt; (die “Cloud”-Variante des Team Foundation Servers) bietet die Möglichkeit der &lt;strong&gt;Git Team Projects&lt;/strong&gt;. Innerhalb dieser Projekte wird mit Git-Repositories gearbeitet. Das bringt den Vorteil eines echten Distributed Version Control Systems (DVCS) mit den Templates des Team Foundation Servers zusammen. Soweit so gut. Das Ziel wäre jedoch der Einsatz der On-premise Variante. Hierzu gibt es viele Ankündigungen und Hinweise, dass ein Git-Support bald verfügbar wäre. Die Annahme, dass dies mit dem Update 2 nun endlich soweit ist, hat sich als falsch heraus gestellt. In einem Kommentar zu &lt;a title="Visual Studio 2012 - Update 2 RTM" href="http://blogs.msdn.com/b/visualstudioalm/archive/2013/04/04/visual-studio-update-2-now-available.aspx" target="_blank"&gt;Visual Studio 2012 - Update 2 RTM&lt;/a&gt; musste ich erfahren, dass ein Git-Support kommen wird, jedoch erst im nächsten &lt;strong&gt;Major&lt;/strong&gt;-Release. Also wohl nicht so schnell. Schade eigentlich.&lt;/p&gt;  &lt;p&gt;Um für mich selbst ein Bild zu bekommen, ob die Services in Frage kommen (unabhängig der “Cloud”-Geschichte), warf ich einen Blick darauf. Auf meine Erkenntnisse möchte ich nachfolgend eingehen.&lt;/p&gt;  &lt;h2&gt;Pricing&lt;/h2&gt;  &lt;p&gt;Aktuell kann dieses Service kostenlos verwendet werden, Preise werden im Laufe 2013 veröffentlicht. Hierbei ist jedoch anzumerken, dass die Verwendung für MSDN Abonnenten wohl kostenlos bleiben dürfte (diesbezügliche Informationen finden sich &lt;a title="Team Foundation Service Pricing Information" href="http://tfs.visualstudio.com/en-us/home/news/2013/jan-30/" target="_blank"&gt;hier&lt;/a&gt;). Derzeit läuft alles auf den &lt;strong&gt;Free Plan&lt;/strong&gt; hinaus, der für &lt;strong&gt;bis zu 5 Benutzer&lt;/strong&gt; verfügbar ist. Eine Verwendung mit &lt;strong&gt;mehr als 5 Benutzern&lt;/strong&gt; ist &lt;strong&gt;möglich&lt;/strong&gt;, wird aber nach Einführung von kostenpflichtigen Plänen (ohne MSDN Abonnement) wohl verrechnet werden. Die diesbezügliche Aussage auf der Webseite:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Just sign up for the Free Plan today and you can use the service for free. When we begin charging in 2013, access to the service will be offered as a benefit—at no additional charge—for paid MSDN subscribers at these levels:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Visual Studio Ultimate with MSDN &lt;/li&gt;      &lt;li&gt;Visual Studio Premium with MSDN &lt;/li&gt;      &lt;li&gt;Visual Studio Test Professional with MSDN &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;You get all the &lt;a href="http://msdn.microsoft.com/buynow/"&gt;benefits of your MSDN subscription&lt;/a&gt; plus you can store your work and collaborate with your project team in the cloud.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Wer also ein kleines Team oder ein MSDN-Abo hat, dürfte da auch zukünftig kein Problem haben. Zusätzliche Informationen über das Pricing habe ich nicht. Mal sehen was genau da noch kommen wird.&lt;/p&gt;  &lt;h2&gt;Test der Services&lt;/h2&gt;  &lt;p&gt;Für mich stellt sich nun die Frage, wie gut der Git-Support mit den Team Foundation Services wirklich funktioniert. Dazu sind die oben erwähnten Visual Studio Tools for Git notwendig und eine Anmeldung auf &lt;a href="http://tfs.visualstudio.com"&gt;http://tfs.visualstudio.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Wenn erledigt hat man nun zwei Möglichkeiten:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_211.png"&gt;&lt;img title="Team Foundation Services - Team Project" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Team Project" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_134.png" width="240" height="101" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Für mich ist die Variante mit Git-Unterstützung von Interesse. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_212.png"&gt;&lt;img title="Team Foundation Services - Create New Team Project" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Create New Team Project" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_135.png" width="500" height="423" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Interessant ist hierbei, dass beide Schaltflächen die gleiche Funktionalität bieten, lediglich die Auswahl “Version control” entsprechend gesetzt wird. Projektname ausfüllen, das gewünschte Prozesstemplate wählen und anschließend per &lt;strong&gt;Create Project&lt;/strong&gt; die Anlage starten.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_213.png"&gt;&lt;img title="Team Foundation Services - Projektanlage" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Projektanlage" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_136.png" width="500" height="423" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Die Anlage dauert ein paar wenige Momente. Navigiert man im Anschluss zum Projekt wird man gleich mit den üblichen Scrum-Verdächtigen konfrontiert. Vorerst interessiert mich jedoch die Code-Verwaltung. Dazu ist auf den Menüpunkt &lt;strong&gt;CODE&lt;/strong&gt; navigieren und man erhält die Clone-URL. Ein Wechsel zu Visual Studio steht also an.&lt;/p&gt;  &lt;p&gt;Der Team Explorer bietet nun die Möglichkeit an, ein Git-Repository zu klonen. Wir holen uns also die entsprechende URL aus den Services und starten dies mal:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_214.png"&gt;&lt;img title="Visual Studio Clone Git" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Visual Studio Clone Git" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_137.png" width="500" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Im Zuge dieses Vorgangs wird ein Fenster zur Eingabe der Credentials geöffnet. &lt;/p&gt;  &lt;p&gt;So erledigt, kann nun ein neues Projekt erstellt und im Clone-Folder abgelegt werden. Über den Team Explorer sind die Changes sofort ersichtlich. Per Kontextmenü können (und das ist auch notwendig) Dateien aus der Source Verwaltung exkludiert werden.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Hierbei ist mir aufgefallen, dass es mit den Visual Studio Tools for Git offensichtlich nicht möglich ist (oder ich habe es übersehen) eine &lt;font face="Courier New"&gt;.gitignore&lt;/font&gt;-Datei zu verwalten. Das könnte vielleicht ein wenig lästig sein. Deshalb habe ich mit &lt;a title="TortoiseGit" href="https://code.google.com/p/tortoisegit/" target="_blank"&gt;TortoiseGit&lt;/a&gt; ein wenig nachgeholfen und eine entsprechende Datei angelegt, die darin gemachten Einträge werden - wie es aussieht - durch die Visual Studio Tools for Git berücksichtigt.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: Eine .gitignore-Datei kann auch über den Team Explorer und der Git-Integration hinzugefügt werden. Dabei sind bei geöffnetem Repository die &lt;strong&gt;Git Settings&lt;/strong&gt; zu öffnen. Danz unten unter &lt;strong&gt;Repository Settings&lt;/strong&gt; kann ein entsprechendes File hinzugefügt werden.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Im nächsten Schritt folgen das erste Commit als auch ein Push, damit das Projekt im Remote-Repository verfügbar ist.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_215.png"&gt;&lt;img title="Visual Studio Git Commit" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Visual Studio Git Commit" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_138.png" width="500" height="44" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_216.png"&gt;&lt;img title="Visual Studio Git Push" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Visual Studio Git Push" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_139.png" width="500" height="60" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ein Blick auf den Online-Zugang zeigt, es hat funktioniert:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_217.png"&gt;&lt;img title="Team Foundation Services Online Repository" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services Online Repository" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_140.png" width="500" height="421" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Soweit der erste Test via Visual Studio. Zur Sicherheit möchte ich jedoch eine Änderung außerhalb machen und mit dem Git-Client meiner Wahl pushen.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_219.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_142.png" width="500" height="262" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Beim Push-Vorgang kommt nun ein Fehler - nach Eingabe der Credentials - der eigentlich auch nicht weiter verwundert, jedoch vielleicht ein wenig missverständlich ist:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_220.png"&gt;&lt;img title="Git-Fehler (Team Foundation Services)" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Git-Fehler (Team Foundation Services)" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_143.png" width="500" height="338" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Um dies zu beheben, muss man auf der Webseite zu den Team Foundation Services ins Benutzerprofil wechseln und unter Credentials alternative Daten angeben (bis dato wird ja lediglich mit einer Live ID gearbeitet):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_221.png"&gt;&lt;img title="Team Foundation Services - Alternate Credentials" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Alternate Credentials" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_144.png" width="500" height="423" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ein erneuter Push-Versuch resultiert in einem Erfolg:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_222.png"&gt;&lt;img title="Team Foundation Services - Commits" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="Team Foundation Services - Commits" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_145.png" width="500" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Auch die weiteren Funktionen arbeiten ohne Probleme. &lt;/p&gt;  &lt;h2&gt;Fazit&lt;/h2&gt;  &lt;p&gt;Der erste Eindruck ist gut. Alles arbeitet gut zusammen, es gibt keine Hürden die unerwarteter Weise auftreten, es gibt auch nichts wo man großartig nachlesen müsste. Interessant wird es dann wenn es weiter geht in Richtung der Scrum-Templates und der Builds bzw. Testpläne etc. Aber dafür wird es eigenständige Blog-Beiträge geben, die näher darauf eingehen werden. Es ist sicherlich noch einiges zu tun, aber es lässt sich gut arbeiten, sowohl von Visual Studio heraus, als auch mit anderen Tools. Damit rückt der TFS definitiv wieder in die engere Wahl.&lt;/p&gt;</description>
      <link>http://devtyr.norberteder.com/post/Team-Foundation-Services-Unterstutzung-fur-Git-unter-der-Lupe.aspx</link>
      <author>csharp@gmx.at</author>
      <comments>http://devtyr.norberteder.com/post/Team-Foundation-Services-Unterstutzung-fur-Git-unter-der-Lupe.aspx#disqus_thread</comments>
      <guid>http://devtyr.norberteder.com/post.aspx?id=ed736a11-2f08-4f19-abf8-534971241684</guid>
      <pubDate>Fri, 12 Apr 2013 12:54:07 +0200</pubDate>
      <category>Tools</category>
      <category>.NET</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://devtyr.norberteder.com/pingback.axd</pingback:server>
      <pingback:target>http://devtyr.norberteder.com/post.aspx?id=ed736a11-2f08-4f19-abf8-534971241684</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://devtyr.norberteder.com/trackback.axd?id=ed736a11-2f08-4f19-abf8-534971241684</trackback:ping>
      <wfw:comment>http://devtyr.norberteder.com/post/Team-Foundation-Services-Unterstutzung-fur-Git-unter-der-Lupe.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://devtyr.norberteder.com/syndication.axd?post=ed736a11-2f08-4f19-abf8-534971241684</wfw:commentRss>
    </item>
    <item>
      <title>Mercurial-Repository nach Git konvertieren</title>
      <description>&lt;p&gt;Git wird immer populärer und gefühlsmäßig gerät Mercurial ins Hintertreffen. Die Gründe dafür dürften wohl in der besseren Performance von Git und der breiten Akzeptanz von GitHub sein. Zusätzlich ist es auch teilweise mühsam, mehrere Clients installiert haben zu müssen (bei einigen ist eine Unterstützung des jeweils anderen DVCS in Vorbereitung, sonst wäre mir &lt;a title="SmartGit/Hg" href="http://www.syntevo.com/smartgithg/index.html" target="_blank"&gt;SmartGit/Hg&lt;/a&gt; bekannt). Wer nun von Mercurial auf Git wechseln möchte bekommt in diesem Beitrag eine Schritt für Schritt Anleitung.&lt;/p&gt;  &lt;h2&gt;Prerequisits (Mercurial -&amp;gt; Git)&lt;/h2&gt;  &lt;p&gt;Folgende Werkzeuge und Erweiterungen kamen zum Einsatz:&lt;/p&gt;  &lt;p&gt;Als Mercurial-Client wird &lt;a title="TortoiseHg" href="http://tortoisehg.bitbucket.org/de/" target="_blank"&gt;TortoiseHg&lt;/a&gt; verwendet. Dieser Client lässt sich einfach erweitern, was auch für dieses Vorhaben notwendig ist. Als Erweiterung dazu wird &lt;a title="hg-git" href="https://bitbucket.org/durin42/hg-git" target="_blank"&gt;hg-git&lt;/a&gt; benötigt. Die Installation und Einrichtung sieht wie folgt aus:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Als ZIP herunter laden und in ein beliebiges Verzeichnis entpacken&lt;/li&gt;    &lt;li&gt;Via TortoiseHg die Einstellungen für das zu konvertierende Repository öffnen&lt;/li&gt;    &lt;li&gt;hg-git als Erweiterung eintragen&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Der Eintrag wird direkt in der Datei &lt;font face="Courier New"&gt;hgrc&lt;/font&gt; vorgenommen und soll wie folgt aussehen:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;[extensions]     &lt;br /&gt;hggit=C:\Temp\hg-git\hggit&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Hier ist natürlich der tatsächliche Pfad einzusetzen. Damit die Erweiterung verwendet wird, müssen alle offenen TortoiseHg-Anwendungen geschlossen werden.&lt;/p&gt;  &lt;p&gt;hg-git hat neben der Abhängigkeit zu Mercurial (diese ist durch die Installation von TortoiseHg als erfüllt anzusehen) eine weitere zu &lt;a title="dulwich" href="https://github.com/jelmer/dulwich/tree/master/dulwich" target="_blank"&gt;dulwich&lt;/a&gt;. Hier ist das entweder das ZIP herunter zu laden, oder das Repository zu klonen. Im Root-Verzeichnis befindet sich ein Verzeichnis &lt;font face="Courier New"&gt;dulwich&lt;/font&gt;. Dieses Verzeichnis muss nun den Libraries von TortoiseHg hinzugefügt werden. Diese befinden sich üblicherweise in:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;%ProgramFiles%\TortoiseHg\library.zip&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So muss das dann innerhalb der ZIP-Datei aussehen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_210.png"&gt;&lt;img title="TortoiseHg Libraries" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="TortoiseHg Libraries" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_133.png" width="500" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Damit sind alle Vorarbeiten abgeschlossen und es kann mit der Konvertierung gestartet werden.&lt;/p&gt;  &lt;p&gt;Und natürlich muss Git installiert sein. Hierbei ist unerheblich welche Implementierung. Wer beispielsweise &lt;a title="GitHub for Windows" href="http://windows.github.com/" target="_blank"&gt;GitHub for Windows&lt;/a&gt; installiert hat, ist bereits bestens gerüstet, sonst kann auch &lt;a title="http://git-scm.com/" href="http://git-scm.com/"&gt;http://git-scm.com/&lt;/a&gt; verwendet werden.&lt;/p&gt;  &lt;h2&gt;Aus Mercurial mach Git&lt;/h2&gt;  &lt;p&gt;In den nächsten Schritten werden wir ein bestehendes Mercurial-Repository in ein Git-Repository konvertieren. Hierzu sind folgende Schritte notwendig:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Git-Bash öffnen (dieser Schritt ist notwendig, damit die hg-git-Erweiterung angezogen wird)&lt;/li&gt;    &lt;li&gt;Ein leeres Git-Repository anlegen (hier wird durch die Erweiterung ein Pack-File eingespielt). Dazu ein Verzeichnis an beliebiger Stelle anlegen und folgenden Befehl innerhalb dieses Verzeichnisses ausführen:     &lt;br /&gt;&lt;font face="Courier New"&gt;git init --bare&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;Nun ist ins Mercurial-Repository zu wechseln und dieses in das Git-Repository zu pushen (zu beachten ist, dass dieser Vorgang durchaus recht lange dauern kann, es werden keine Konsolen-Ausgaben geschrieben, daher nicht abbrechen, sondern warten; Es erfolgt jedoch schlussendlich eine Meldung wie viele Commits etc. übernommen wurden):     &lt;br /&gt;&lt;font face="Courier New"&gt;hg push path/to/Git-Repository&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;Im Git-Repository liegt nun unter &lt;font face="Courier New"&gt;objects/pack&lt;/font&gt; ein Git-Pack-File, welches alle notwendigen Informationen enthält.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Damit ist die Migration eigentlich abgeschlossen, sofern man mit dem Pack-File zufrieden ist. Ist dies nicht der Fall, kann man mit den folgenden beiden Schritten alle Objekte in separaten Dateien ablegen:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Ein weiteres Verzeichnis anlegen und in dieses wechseln&lt;/li&gt;    &lt;li&gt;&lt;font face="Courier New"&gt;git clone -l path/to/Git-Pack-Repository&lt;/font&gt; ausführen. Dabei ist nicht das Pack-File zu referenzieren, sondern das Repository-Stammverzeichnis&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Damit ist nun ein Git-Repository mit allen Objekten als separate Dateien vorhanden und kann für weitere Schritte verwendet werden.&lt;/p&gt;  &lt;h2&gt;Fazit&lt;/h2&gt;  &lt;p&gt;Die Migration kostet zwar ein wenig Zeit (vor allem, wenn man sich die einzelnen Schritte und Lösungen für einige Fallen zusammensuchen muss), geht aber sonst weitestgehend problemlos von Statten. Nach dem Umstieg steht die gesamte Historie zur Verfügung und es kann wie mit Git gewohnt gearbeitet werden.&lt;/p&gt;</description>
      <link>http://devtyr.norberteder.com/post/Mercurial-Repository-nach-Git-konvertieren.aspx</link>
      <author>csharp@gmx.at</author>
      <comments>http://devtyr.norberteder.com/post/Mercurial-Repository-nach-Git-konvertieren.aspx#disqus_thread</comments>
      <guid>http://devtyr.norberteder.com/post.aspx?id=b4d36fa9-40c4-45c2-b867-03808fa523eb</guid>
      <pubDate>Thu, 11 Apr 2013 16:00:36 +0200</pubDate>
      <category>Allerlei</category>
      <dc:publisher>Norbert Eder</dc:publisher>
      <pingback:server>http://devtyr.norberteder.com/pingback.axd</pingback:server>
      <pingback:target>http://devtyr.norberteder.com/post.aspx?id=b4d36fa9-40c4-45c2-b867-03808fa523eb</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://devtyr.norberteder.com/trackback.axd?id=b4d36fa9-40c4-45c2-b867-03808fa523eb</trackback:ping>
      <wfw:comment>http://devtyr.norberteder.com/post/Mercurial-Repository-nach-Git-konvertieren.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://devtyr.norberteder.com/syndication.axd?post=b4d36fa9-40c4-45c2-b867-03808fa523eb</wfw:commentRss>
    </item>
    <item>
      <title>Das Geheimnis der Kommunikation</title>
      <description>&lt;p&gt;Vor einigen Tagen habe ich zum Thema &lt;a href="http://devtyr.norberteder.com/post/Arbeiten-wir-an-der-Kommunikation!.aspx"&gt;Arbeiten wir an der Kommunikation&lt;/a&gt; geschrieben. In diesem Beitrag hatte ich einige Punkte aufgelistet, die ein Team zu einer besseren Kommunikation führen, wohlgemerkt, auf mein Team abgestimmt. Gestern hatten wir einen Workshop-Tag mit &lt;a href="http://ilker.de" target="_blank"&gt;Ilker Centikaya&lt;/a&gt; zum Thema Scrum (hierauf folgt ein separater Post). In diesem wirklich sehr inspirierenden Workshop hatten wir auch ein wenig Systemtheorie zum Thema. In seiner Rohform nichts für schwache Nerven. In der durch Ilker aufbereiteten Form dauerte es nicht lange und mir fiel es wie Schuppen von den Augen.&lt;/p&gt;  &lt;p&gt;Ich hatte den Grund erkannt, warum die Kommunikation innerhalb meines Teams und auch mit angrenzenden Bereichen nun wesentlich besser funktioniert als noch vor einigen Monaten. Intuitiv hatte ich eine Entscheidung zu einem Vorgehen getroffen und diese umgesetzt. Nie wäre ich jedoch auf den Gedanken gekommen, dass dieser Punkt wesentlich stärker wiegt als alle im letzten Beitrag zum Thema Kommunikation aufgelisteten Punkte. Das Stichwort ist&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Transparenz&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Jawohl! Transparenz!&lt;/p&gt;  &lt;h2&gt;Das hat mit Kommunikation nun was genau zu tun?&lt;/h2&gt;  &lt;p&gt;Mit einer mangelnden Kommunikation geht meist auch noch ein weiterer Punkt einher: Mangelnde Motivation, oder besser formuliert, stark einwirkende Demotivation. In zahlreichen Quellen wird betont:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Wahre Motivation kommt von innen. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Das heißt im Umkehrschluss, dass von Extern demotivierende Kräfte wirken. Da gibt es viele Faktoren, einer ist fehlende Information. Dies bedeutet natürlich, dass der eigene Entscheidungsfreiraum eingeschränkt wird, das Ziele, Visionen nicht erkannt werden und somit auch kaum Weiterentwicklungspotential gesehen wird. Das resultiert wiederum darin, dass der Einzelne nicht weiß wohin der Weg führt und wo auf diesem Weg er selbst Platz findet. Das löst Existenzängste aus. Eine logische Folgerung: Es findet eine Einigelung statt, eine Abgrenzung. Typisch dafür ist, dass selbst wiederum keine Informationen weitergegeben werden, um sich selbst unentbehrlich zu machen.&lt;/p&gt;  &lt;p&gt;Um dieses Problem zu beheben, kommt nun die Systemtheorie ins Spiel (bitte beachten, dass meine Kenntnisse der Systemtheorie als sehr gering einzustufen sind, bei Fehlbeschreibungen bitte mich zu verbessern). Speziell die &lt;a href="http://de.wikipedia.org/wiki/Selbstreferenzialit%C3%A4t" target="_blank"&gt;Selbstreferenzialität&lt;/a&gt;. Salopp gesagt bedeutet dies, dass sich ein System (eine Person, ein Team, ein Unternehmen etc.) nur auf sich selbst bezieht, sich selbst reguliert. Einflüsse aus der Umwelt können angenommen werden, müssen aber nicht. &lt;/p&gt;  &lt;p&gt;Möchte ich als Person einen Vorteil zu vermitteln, muss ich ihn also zuerst bei mir selbst anwenden, zeigen dass es funktioniert und kann somit angrenzenden Systemen ein Angebot unterbreiten, dies ebenfalls einzusetzen. Diese Systeme entscheiden selbst ob sie das tun werden oder nicht. Wird der Vorteil erkannt und für gut befunden stehen die Chancen dazu natürlich gut.&lt;/p&gt;  &lt;p&gt;Mein Vorgehen war nun, für Transparenz in meinem Tun zu sorgen. Meine Team-Mitglieder wurden verstärkt zu Entscheidungen herangezogen, bekamen Informationen zu dem “Wie geht es weiter?” usw. Durch die gelebte Transparenz haben meine Team-Mitglieder offensichtlich den daraus resultierenden Vorteil erkannt und selbst umgesetzt. Die Informationen wurden mehr, jeder konnte seinen Platz finden, die Sicherheit ist gestiegen, ebenfalls die Motivation. Die “neue” Motivation hat dazu beigetragen, dass mit vielen Informationen freizügiger umgegangen wird. Es stieg der Kommunikationsanteil. Und plötzlich läuft das Werk …&lt;/p&gt;  &lt;h2&gt;Fazit&lt;/h2&gt;  &lt;p&gt;Transparenz ist ein Faktor der nicht unterschätzt werden darf. Mitarbeiter möchten wissen wie es um ein Unternehmen, die Projekte, ihre Zukunft steht. Nur mit diesem Wissen können sie sich wirklich einbringen und für Mehrwert sorgen. Ich selbst habe durch Ilker einen kleinen Einblick in für mich neue Themen erhalten die mir sofort geholfen haben, einige meiner Entscheidungen reflektieren und weitere Maßnahmen setzen zu können. Was folgt ist sicherlich ein weiteres Studium dieser Gebiete um mein Wissen zu festigen. Ebenfalls verstehe ich nun, dass dies der wahre Grund war, warum die Kommunikation innerhalb meines Teams nun ordentlich funktioniert. Die anderen Maßnahmen waren gut und sicherlich hilfreich, jedoch nicht ausschlaggebend.&lt;/p&gt;</description>
      <link>http://devtyr.norberteder.com/post/Das-Geheimnis-der-Kommunikation.aspx</link>
      <author>csharp@gmx.at</author>
      <comments>http://devtyr.norberteder.com/post/Das-Geheimnis-der-Kommunikation.aspx#disqus_thread</comments>
      <guid>http://devtyr.norberteder.com/post.aspx?id=f5b89098-1476-4307-b8b9-66b08b087f59</guid>
      <pubDate>Tue, 09 Apr 2013 21:25:15 +0200</pubDate>
      <category>Allerlei</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://devtyr.norberteder.com/pingback.axd</pingback:server>
      <pingback:target>http://devtyr.norberteder.com/post.aspx?id=f5b89098-1476-4307-b8b9-66b08b087f59</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://devtyr.norberteder.com/trackback.axd?id=f5b89098-1476-4307-b8b9-66b08b087f59</trackback:ping>
      <wfw:comment>http://devtyr.norberteder.com/post/Das-Geheimnis-der-Kommunikation.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://devtyr.norberteder.com/syndication.axd?post=f5b89098-1476-4307-b8b9-66b08b087f59</wfw:commentRss>
    </item>
    <item>
      <title>Follow Up - Hochwertiger Content für Entwickler - Machen wir doch was!</title>
      <description>&lt;p&gt;Vor einigen Tagen hatte ich im Beitrag &lt;a title="Hochwertiger Content für Entwickler - Machen wir doch was!" href="http://devtyr.norberteder.com/post/Hochwertiger-Content-fur-Entwickler-Machen-wir-doch-was!.aspx"&gt;Hochwertiger Content für Entwickler - Machen wir doch was!&lt;/a&gt; aufgerufen, eine einfache Möglichkeit zu schaffen, an hochwertigen Content aus der Community zu kommen. Das Echo war recht groß und schnell ergab ich ein äußerst fruchtbares Gespräch mit &lt;a title="Ralf Westphal" href="http://blog.ralfw.de/" target="_blank"&gt;Ralf Westphal&lt;/a&gt;. Aber auch viele andere aus der Community teilten ihre Meinung mit mir. Teils mit Zustimmung, teils mit konstruktiven Hinweisen auf bestehende “Lösungen”.&lt;/p&gt;  &lt;h2&gt;Warum überhaupt?&lt;/h2&gt;  &lt;p&gt;Im letzten Beitrag ging das &lt;strong&gt;Warum&lt;/strong&gt; nicht eindeutig hervor. Daher möchte ich dazu ein paar Worte teilen, die erklären warum ich der Meinung bin, etwas Neues müsste her.&lt;/p&gt;  &lt;p&gt;Mir ist durchaus bewusst, dass es zahlreiche Blogs gibt, die wirklich gute Beiträge liefern, mitunter finden sich auch an anderen Stellen feine Artikel, oder auch Grundlagendiskussionen, die ein jeder gelesen haben sollte. Das ist positiv und gut so. Für aktive und langjährige Mitglieder der Community ist das Finden dieser Ressourcen kein Thema, hat doch ein jeder die entsprechenden Quellen aktiv am Radar, oder ist sogar selbst dafür verantwortlich. Dennoch brauchen auch hier die einen oder anderen Perlen einige Zeit, gefunden zu werden.&lt;/p&gt;  &lt;p&gt;Der Einsteiger hat es da schon schwieriger. Thema auswählen, Google oder Bing auf Treffer durchforsten und die gefundene Lösung wird schon in Ordnung gehen. Eine tiefergehende Prüfung hinsichtlich Auswirkungen etc. kann erfahrungsbedingt oftmals nicht durchgeführt werden. Er muss sich also auf das Gefundene verlassen, oder bei schlechtem Bauchgefühl dem nächsten Link vertrauen. Dabei zählt nicht immer Qualität. Wer &lt;strong&gt;mehr&lt;/strong&gt; Content produziert (und die passenden Keywords) steht weiter oben, nicht zwangsweise der empfehlenswerte. So einfach, so schlecht.&lt;/p&gt;  &lt;p&gt;Gab es vor 10 Jahren noch ein paar zentrale Player, die Content anzubieten hatten, findet sich dieser nun an allen Ecken und Enden. Guter, wie auch Schlechter. Das Problem dabei: Der gute Content ist durch vermehrte Werbebeiträge etc. teilweise ganz gut versteckt. Blogs haben in der Regel auch vielfach nicht die Suchmaschinenrelevanz von größeren/großen Verlagen, teilweise jedoch weit bessere Inhalte.&lt;/p&gt;  &lt;p&gt;Für mich ist das der Punkt an dem eine Lösung her muss. Sowohl für mich als auch für andere, besonders Einsteiger, die es wirklich sehr schwer haben. Das mag der eine oder andere noch nicht nachvollziehen können, aber dazu komme ich gleich.&lt;/p&gt;  &lt;h2&gt;Bestehende Lösungen&lt;/h2&gt;  &lt;p&gt;In den &lt;a title="Kommentare zu &amp;quot;Hochwertiger Content für Entwickler - Machen wir doch was!&amp;quot;" href="http://devtyr.norberteder.com/post.aspx?id=a560bc0c-5584-4a71-8da2-113ab8ea6cf6#disqus_thread"&gt;Kommentaren&lt;/a&gt; des ersten Beitrags wurden einige deutschsprachige Alternativen genannt, die gerade der eingeschworenen Community wohlbekannt sind. Viele werden diese Dienste auch zu schätzen wissen. Es liegt mir fern diese als schlecht hinzustellen, dennoch möchte ich sie hinterfragen und Problemstellen aufzeigen.&lt;/p&gt;  &lt;p&gt;&lt;a title="DotNetGerman Bloggers" href="http://blogs.dotnetgerman.com/" target="_blank"&gt;DotNetGerman Bloggers&lt;/a&gt;(und Aggregate im Allgemeinen)    &lt;br /&gt;Das ist wohl das Community-Feed-Aggregat der ersten Wahl für ausreichend Inhalte. Wenn ich korrekt gezählt habe, dann sind zum jetzigen Zeitpunkt 109 mehr oder weniger aktive Blogger gelistet. Das ist schon eine ganz schöne Menge, an Bloggern und gelieferten Content. Wunderbar. Dennoch bietet dieses Aggregat (wie alle anderen) einige Nachteile:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Zuviel Rauschen&lt;/strong&gt;. Zu nahezu jedem Thema finden sich zahlreichende Blogger. Da viele nicht abgeneigt sind, News zu ihrem Fachgebiet zu verfassen, erscheint dieselbe News zigfach in der Liste auf. Ebenso verhält es sich mit Themen, die eigentlich nicht für das Aggregat von Relevanz sind. So finden sich Beiträge anderweitigen - teils branchenfremden - Themen, teilweise auch private. Das interessiert mich nicht, wenn ich mich zu aktuellen .NET Themen informieren möchte.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fehlende Wartung&lt;/strong&gt;. Aggregate haben es an sich, dass keine oder kaum Wartung statt findet. Aufgenommen wird, was aktuell ins Schema passt. Die Ausrichtung eines Bloggers (dahinter steckt in unserem Fall ja meist ein Entwickler) ändert sich jedoch im Laufe der Zeit. Dies hat meist berufliche Hintergründe. So findet oft sehr schnell eine Verlagerung in gänzlich unterschiedliche Themengebiete statt. Oftmals wird überhaupt die Plattform gewechselt. Beiträge gehen dann am eigentlichen Thema vorbei. Das führt wiederum zum ersten angeführten Problem: Zuviel Rauschen.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Keine Kategorisierung&lt;/strong&gt;. Ich als Leser des Aggregats habe keine Möglichkeit nach Themen zu filtern, die mich aktuell interessieren. Hier kann ich nur&amp;#160; mühsam die einzelnen interessanten Feeds nehmen und meine eigene Liste pflegen. Damit entferne mich jedoch vom Dienst und nutze ihn nur als Input-Geber. Zukünftige empfehlenswerte Beiträge bleiben mir verborgen, da diese natürlich nicht in meinen abonnierten Feeds enthalten sind (so ich nicht zufällig auf diese Quelle stoße).&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Kurze Vorhaltezeit&lt;/strong&gt;. Das genannte Aggregat (wie auch die meisten Alternativen) hält Beiträge nur für kurze Zeit im “Angebot”. Ältere Beiträge können weder durch eine Suchfunktion noch anderweitig gefunden/angezeigt werden. Somit hat dieses Medium lediglich tagesaktuelle Relevanz für mich. Heute interessiere ich mich für dieses Thema, morgen für ein anderes. Wofür ich mich morgen interessiere, kann ich heute jedoch nicht beurteilen. Ergo fällt es auch schwer die richtigen Beiträge für eine spätere “Behandlung” zu markieren.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Kein Qualitätshinweis&lt;/strong&gt;. Ich muss einen interessant klingenden Beitrag lesen um ihn beurteilen zu können. Es gibt kein Bewertungssystem an dem ich mich festhalten kann, welches quasi als Leitschienen fungiert. Das kostet Zeit und birgt die Gefahr in sich, den am Schluss des Beitrags formulierten Mehrwert nicht als solches zu erkennen (weil ich beim ersten “Scannen” gar nicht so weit komme).&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a title="dotnet-kicks.de" href="http://dotnet-kicks.de/" target="_blank"&gt;dotnet-kicks.de&lt;/a&gt;    &lt;br /&gt;Auch dieses Projekt ist der Community gut bekannt. Mittlerweile werden keine weiteren Beiträge mehr eingestellt. Ob das Projekt eingestellt wurde, oder einfach kein Interesse mehr besteht, kann ich nicht sagen. Fakt ist, dass es ein Klon von vor Jahren boomender Bewertungssysteme ist (welches genau können die &lt;a title="Über .NET Kicks" href="http://dotnet-kicks.de/docs/about" target="_blank"&gt;Betreiber&lt;/a&gt; sicherlich beantworten). Ein einfaches System Internetinhalte zu “bewerten” und zu kategorisieren. Die immer geringeren Benutzerzahlen zeigen jedoch, dass derartige Dienste überholt sind.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Kein Qualitätshinweis&lt;/strong&gt;. Aber hey, ich habe es “gekickt”. Das zeugt doch von Qualität. Nein, das tut es nicht. Ich als “Leser” kann nicht erkennen warum diese Quelle empfohlen wurde. Ist es ein Freundschaftsdienst, oder ist der Inhalt wirklich so gut. Viele “Kicks” bekommt oft auch, wer über ein trendy Thema berichtet hat. Kommentare und Kategorisierung sind zwar möglich, werden jedoch nicht oder kaum genutzt, da dies kein Teil des Rating-Systems ist. Für mich als Leser wenig hilfreich.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fehlende Accountability&lt;/strong&gt;. Beiträge können unter Pseudo-Benutzern oder gar anonym eingereicht werden. Dadurch entsteht ein gewaltiges Rauschen. Wer mit seinem Namen einsteht und (daher) auf seine Reputation bedacht ist, wird besonders darauf achten, guten und sinnvollen Content einzustellen. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Fehlende “Mitmach-Motivation”&lt;/strong&gt;. Gamification ist das Stichwort. Oftmals fehlt es an einem Anreiz Inhalte einzustellen. Self-Marketing steht hier ganz weit vorne. Weitere Kriterien sind aber die persönliche Profilierung, die nicht nur durch eigene Inhalte zustande kommt, sondern auch als Quell empfehlenswerter Inhalte. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Mangelnde Usability&lt;/strong&gt;. In den meisten Fällen muss Titel und Beschreibung der einzustellenden Beiträge manuell eingetragen werden. Dies kann auf Basis der URL automatisch geschehen. Der Fokus wird hierbei auf die falsche Stelle gelegt. Wichtiger wäre eine sinnvolle Bewertung, weniger die Erfassung ohnehin verfügbarer Informationen.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Beide Lösungen haben auch gemeinsam, dass es wenig Personalisierungsmöglichkeiten gibt. Integrationen zu “Read later”-Diensten oder gar als eigene Implementierung sind nicht vorhanden. Es fehlt mir persönlich eine schnelle Möglichkeit empfehlenswerte Beiträge in einer Liste zu hinterlegen, die ich mir dann in aller Ruhe ansehen kann. Ich bin gezwungen Schritte unabhängig des Dienstes vorzunehmen um dieses Ziel zu erreichen. Ein “Kontextbruch” der es mir erschwert, mein Ziel zu erreichen.&lt;/p&gt;  &lt;h2&gt;Lösungsvorschlag&lt;/h2&gt;  &lt;p&gt;Die vorgeschlagenen Alternativen bieten also viele Nachteile, die behoben werden können. Zwar bedeutet dies nicht per se, dass die Dienste damit obsolet sind oder nicht genutzt werden sollten. Es geht aber besser - mit weit höherem Mehrwert. Genau die Schaffung dieses Mehrwertes ist das Ziel.&lt;/p&gt;  &lt;p&gt;Wie also kann eine mögliche Lösung aussehen? Nachfolgend möchte ich die aufgekommenen Erkenntnisse zusammen fassen und zur Diskussion in den Raum stellen. Es ist jeder herzlich willkommen seine Meinung kund zu tun. Gerne auch konstruktive Kritik, da diese bekanntlich den größten Mehrwert bietet. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Content-Sharing&lt;/strong&gt;. Entgegen meines ersten Vorschlages soll kein neuer Content generiert, sondern auf vorhandenen verlinkt werden. Es gibt ausreichend qualitativ hochwertige Beiträge.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Accountability&lt;/strong&gt;. Beiträge können nur von Benutzern eingestellt werden, die mit vollem Namen registriert sind und mit solchem für ihre Quellen einstehen. Anonyme Beiträge sind nicht erlaubt, auch Phantasienamen werden nicht akzeptiert.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Rating&lt;/strong&gt;. Eine Bewertung ist immer mit einem Grund zu versehen. Warum wird dieser Inhalt als empfehlenswert eingestuft? Was ist der tatsächliche Mehrwert? Wie hat mir der Beitrag weiter geholfen? Ein einfaches “Kick it” ist nicht ausreichend einen Beitrag zu empfehlen. Jeder angemeldete Benutzer kann ein Rating abgeben. Dieses ist wiederum mit einem ausreichenden Kommentar zu versehen.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Tagging&lt;/strong&gt;. Es gibt kein Einstellen ohne Tagging. Beiträge sind mit passenden Tags zu versehen. Darauf aufbauend kann ein entsprechendes Einfächern in Kategorien stattfinden. Auch eine Suche kann darauf (unter anderem) abgestimmt werden.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Redaktionelle Betreuung&lt;/strong&gt;. Eingestellte Beiträge werden von “Fachbereichs-Verantwortlichen” freigegeben. Dies bedeutet natürlich einen entsprechenden Aufwand, stellt jedoch sicher, dass passende Begründungen und Tags gesetzt wurden. Ebenfalls kann darüber die Relevanz und der Anspruch an die Qualität der Artikel gewährleistet werden. Hier stelle ich mir ein Team von Themen-Verantwortlichen vor, die sich eben diesem annehmen.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Gamification&lt;/strong&gt;. Ein öffentliches Ranking-System für Beitragende soll spielerisch sicherstellen, dass die Motivation zum Einstellen neuer Beiträge gegeben ist. Dieses soll nicht auf Masse, sondern auf Qualität basieren. Bewertungen von einem höheren Ranking zählen hierbei mehr als dies bei einem unteren Rang der Fall ist.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Zu diesen Anforderungen bestehen natürlich weitere. Diese sind aber hauptsächlich in der Usability durch den Besucher zu finden, aber auch der Einsteller soll davon profitieren. So sollten beim Einstellen von Beiträgen die relevanten Informationen automatisch bezogen werden (wie man das auch von Facebook, Google+ und Konsorten bereits gewöhnt ist). Stattdessen sollte der Fokus auf die Bewertung des Inhaltes gelenkt werden.&lt;/p&gt;  &lt;p&gt;Dem Besucher muss es ermöglicht werden, schnell an für ihn relevante Informationen zu gelangen. Registrierte Benutzer sollten zudem in den Vorteil von “Read Later”-Listen, persönlichen Filtern und Benachrichtigungen kommen. &lt;/p&gt;  &lt;p&gt;Hinter den einzelnen Punkten liegen (teilweise) bereits konkrete Ideen zur Umsetzung. Bevor ich diese jedoch groß kund mache, möchte ich diese Zusammenfassung nochmals zur Abstimmung in die Runde werfen. Mir ist eure Meinung sehr wichtig und möchte einen tatsächlichen Mehrwert mit einer neuen Plattform liefern, die natürlich - wie jede andere Plattform - auch mit Anfangsproblemen zu kämpfen haben würde. Nur wenn ein Erfolg absehbar ist, wäre eine Umsetzung sinnvoll. Ich würde mich daher über viele Meinungen freuen. Ist der eingeschlagene Weg richtig, fehlt noch etwas, oder befinden wir uns hier generell auf einem Holzweg?&lt;/p&gt;</description>
      <link>http://devtyr.norberteder.com/post/Follow-Up-Hochwertiger-Content-fur-Entwickler-Machen-wir-doch-was!.aspx</link>
      <author>csharp@gmx.at</author>
      <comments>http://devtyr.norberteder.com/post/Follow-Up-Hochwertiger-Content-fur-Entwickler-Machen-wir-doch-was!.aspx#disqus_thread</comments>
      <guid>http://devtyr.norberteder.com/post.aspx?id=4fbab05e-6716-4c32-ae2e-a1a54bf357f0</guid>
      <pubDate>Tue, 02 Apr 2013 10:54:14 +0200</pubDate>
      <category>Allerlei</category>
      <dc:publisher>neder</dc:publisher>
      <pingback:server>http://devtyr.norberteder.com/pingback.axd</pingback:server>
      <pingback:target>http://devtyr.norberteder.com/post.aspx?id=4fbab05e-6716-4c32-ae2e-a1a54bf357f0</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://devtyr.norberteder.com/trackback.axd?id=4fbab05e-6716-4c32-ae2e-a1a54bf357f0</trackback:ping>
      <wfw:comment>http://devtyr.norberteder.com/post/Follow-Up-Hochwertiger-Content-fur-Entwickler-Machen-wir-doch-was!.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://devtyr.norberteder.com/syndication.axd?post=4fbab05e-6716-4c32-ae2e-a1a54bf357f0</wfw:commentRss>
    </item>
    <item>
      <title>Arbeiten wir an der Kommunikation!</title>
      <description>Vor einigen Monaten habe ich darüber geschrieben, was denn ein &lt;a title="Was ein Team-Leader für sein Entwicklungsteam tun kann" href="http://devtyr.norberteder.com/post/Was-ein-Team-Leader-fur-sein-Entwicklungsteam-tun-kann.aspx"&gt;Team-Leader für sein Team tun kann&lt;/a&gt; bzw. überhaupt sollte. Nun ist doch ein wenig Zeit vergangen und ich habe unterschiedlichste Experimente vorgenommen - hauptsächlich um die Kommunikation und das Teamgefüge zu verbessern. Meine Erfahrung dabei: die kleinsten Umstellungen wirken am besten! In diesem Beitrag möchte ich aus den Erfahrungen der vergangenen Monate berichten.  &lt;h2&gt;Ausgangslage&lt;/h2&gt;  &lt;p&gt;Mein Team hat harte Zeiten hinter sich. Auch wurde es immer wieder durcheinander gewürfelt. Neue Kollegen, Splittung in mehrere Teams, erneute Zusammenführungen und vieles mehr ist in den letzten Jahren passiert. Gepaart mit zu viel Arbeit und zu wenig Ressourcen ist das für die Teamkultur nicht gerade förderlich. Im Gegenteil. Langsam aber sicher entwickelt sich jeder zum Einzelkämpfer und verhält sich dementsprechend abgeschottet. Eine Entwicklung die bei uns quasi über Jahre ging. &lt;/p&gt;  &lt;h2&gt;Kleine Änderungen führen zum Ziel&lt;/h2&gt;  &lt;p&gt;Oder zumindest in die richtige Richtung. Nachfolgend möchte ich einige der vorgenommenen Veränderungen aufführen. Ich gebe jedoch zu bedenken, dass jedes Team anders ist. Einige der besprochenen Probleme werden in anderen Teams nicht auftreten, dafür möglicherweise andere Schwachstellen.&lt;/p&gt;  &lt;h3&gt;Umbau Büro&lt;/h3&gt;  &lt;p&gt;Ganz wichtig ist das Klima im Büro. Wir hatten über Jahre hinweg ein sehr steriles Büro. Kaum Pflanzen, wenig Drumherum. Durch einen neuen Büro-Plan haben wir ein wesentlich größeres Büro für unser Team bekommen und haben dieses gemeinsam geplant. Die Tische wurden so aufgestellt, dass eine direkte Kommunikation vereinfacht wird, Beamer für Präsentationen, Code Reviews (oder aber auch manchmal Skifahren), Konferenzen. Ein eigener Besprechungstisch, zur Unterhaltung ohne PC. Auch ist es mittlerweile sehr grün. So mancher mag nun lächeln (was auch gesund ist), aber selbst Duftkerzen haben ihren Weg ins Büro gefunden. Auch sonstiger Dekor darf nicht fehlen, obwohl wir ein reines Männerbüro sind.&lt;/p&gt;  &lt;p&gt;Dies wirkt sich nur in kleinen Teilen auf die tatsächliche Kommunikation aus, jedoch ungemein auf das gesamte “Raumklima”.&lt;/p&gt;  &lt;h3&gt;Kopfhörer&lt;/h3&gt;  &lt;p&gt;Musik ist heute immer und überall. Gerade am Arbeitsplatz ist man schnell dazu geneigt, einen Kopfhörer aufzusetzen. Für komplexe Problemstellungen ist es ein einfaches Mittel zur Abschottung und Fokussierung. Nachteilig daran ist jedoch, dass dies schnell zur Gewohnheit wird und das Team die Arbeitszeit mit aufgesetzten Kopfhörern verbringt. Wie also bereits angesprochen: Alles Einzelkämpfer. Keine gute Ausgangslage für eine funktionierende Kommunikation.&lt;/p&gt;  &lt;p&gt;Als Lösung haben wir uns darauf geeinigt, einen Medienserver inkl. Boxen aufzustellen. Musik aus unterschiedlichen Genres wird darüber gespielt (damit für jeden etwas dabei ist, wobei sich glücklicherweise unser Musikgeschmack deckt). Kopfhörer sind - laut Team-Bescheid - nur mehr für Spezialfälle vorgesehen.&lt;/p&gt;  &lt;h3&gt;Team-Chat&lt;/h3&gt;  &lt;p&gt;Neben der täglichen Arbeit läuft ein Team-Chat über den in den letzten Jahren sämtliche Fragestellungen/Probleme/etc. abgehandelt wurden. Hierbei spielt auch mit, dass mein Team über zwei Standorte verteilt ist und so eine einfache Kommunikationsmöglichkeit geboten wird. Das bietet zwar den Vorteil, dass innerhalb der Nachrichten gesucht werden kann, aber dies bringt auch einen gewaltigen Nachteil mit sich: Vielfach werden wichtige Fragen einfach nicht beantwortet. Dafür gibt es viele Gründe:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Man will aktuell nicht gestört werden&lt;/li&gt;    &lt;li&gt;Es ist einem schlicht zu blöd jetzt eine Antwort schreiben zu müssen&lt;/li&gt;    &lt;li&gt;Die Benachrichtigungen wurden deaktiviert&lt;/li&gt;    &lt;li&gt;Etc.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Mittlerweile haben wir den Team-Chat noch für wichtige Ankündigungen, mehr aber in Wirklichkeit auch nicht mehr. Vielmehr ist es nun so, dass jemand mit Frage aufsteht, seine Frage an das Team formuliert und sich einige Minuten später wieder mit einer Lösung hinsetzt. Die anfängliche Befürchtung ständig aus der Arbeit gerissen zu werden hat sich nicht bewahrheitet. Es kristallisiert sich heraus, dass die Fragen immer weniger, dafür jedoch schwergewichtiger werden. Durch die Diskussionen um die beste Lösung wird sehr viel Wissen transferiert, das dem gesamten Team zu Gute kommt. Entsprechend verlagern sich auch die Themengebiete der Fragen.&lt;/p&gt;  &lt;p&gt;Da war doch noch etwas: zwei Standorte. Im ersten Schritt versucht der Standort selbst seine Frage zu klären (die Ergebnisse werden in diesem Fall jedoch schon über den Team-Chat mitgeteilt), ist dies nicht möglich gibt es ein “Online-Meeting”.&lt;/p&gt;  &lt;h3&gt;Online-Meetings&lt;/h3&gt;  &lt;p&gt;Wie bereits angesprochen: Mein Team ist über zwei Standorte verteilt. Dies macht Meetings nicht gerade einfacher. Ein klassisches Online-Meeting-System haben wir nicht im Einsatz. Bis dato wurden alle über den gewählten Kommunikationskanal angerufen, saßen vor ihren Rechnern mit Kopfhörer und haben mehr oder weniger am Meeting teilgenommen. Eher weniger.&lt;/p&gt;  &lt;p&gt;Auch dies läuft nun anders: Bei Meetings setzen wir uns nun alle gemeinsam an unseren Besprechungstisch, oder stellen uns einfach zusammen (wie wir das in unseren Standup-Meetings machen - was &lt;a title="Ralf Westphal" href="http://blog.ralfw.de/search?q=scrum"&gt;Ralf&lt;/a&gt; im Übrigen nicht gut findet). Laptops sind nur für den “Schriftführer” zugelassen, es soll keine Ablenkung geben. Damit die Übertragung des Gesprochenen gut funktioniert, haben wir uns ein 3-teiliges Flächenmikrofon gekauft und ausgelegt (anfänglich haben wir günstigere Lösungen probiert, die alle nicht zufriedenstellend funktioniert hatten).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=WP_000586.jpg"&gt;&lt;img title="Flächenmikrofon AKG CBL 410 PCC" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Flächenmikrofon AKG CBL 410 PCC" src="http://devtyr.norberteder.com/image.axd?picture=WP_000586_thumb.jpg" width="350" height="262" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Im nächsten Schritt werden wir wohl auch ein wenig in Richtung Videoübertragung gehen um die entfernten Teammitglieder noch besser eingebunden zu haben.&lt;/p&gt;  &lt;h3&gt;Gemeinsame Aktivitäten&lt;/h3&gt;  &lt;p&gt;Als nächsten Schritt unternehmen wir nun monatlich etwas gemeinsam. Nur das Team. Nicht weiter aufregend: Wir gehen Steak essen. Wie Männer das gerne tun. Die ungezwungene Atmosphäre, das lockere Beisammensitzen, das Besprechen von Anliegen auf neutralem Boden ist ein gewaltiger Nährboden für das Zusammenwachsen des Teams.&lt;/p&gt;  &lt;p&gt;Unser Unternehmen veranstaltet zwar in mehr oder weniger regelmäßigen Abständen größere Zusammenkünfte mit gemeinschaftlichem Essen, Wettkämpfen und mehr. Es ist jedoch extrem wichtig, dass jedes Team für sich selbst auch einen Weg und ein paar Stunden Freizeit findet, in kleiner Runde etwas zu unternehmen. Auf Dauer gesehen bringt dieser Aspekt aus meiner Sicht am meisten. Es verändert sich der tägliche Umgang miteinander merkbar. Dabei geht es weniger darum Freunde für’s Leben zu finden, sondern sich vielmehr auf eine gemeinsame Basis der Kommunikation zu “einigen” - was im übrigen automatisch passiert.&lt;/p&gt;  &lt;h2&gt;Fazit&lt;/h2&gt;  &lt;p&gt;Natürlich hat es noch weitere kleinere Änderungen gegeben, die angesprochenen waren mitunter wohl die größten bis dato. Jedes Team hat andere Baustellen die man erkennen und aktiv (vor allem gemeinsam) angehen und lösen muss. Da mag man durchaus zeitweise ratlos durch die Gegend laufen, aber es gibt Möglichkeiten und die einfachsten ist dann doch meist die besten. Weniger Egoismus und mehr Gemeinschaft im Team birgt für jeden Vorteile, vor allem aber enden Anschwärzungen, das Herumreiten auf Bugs anderer und gar schlimmere Vorkommnisse. Es tritt ein “Gemeinsam machen wir etwas wirklich tolles” in den Vordergrund. Der Grundstein für eine positive Weiterentwicklung.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Hast auch du zu diesem Thema etwas aus deiner Erfahrung zu berichten? Arbeitest du auch in einem Team mit “offenen Wunden”? Oder habt ihr diese bereits gelöst? Ich würde gerne davon erfahren!&lt;/strong&gt;&lt;/p&gt;</description>
      <link>http://devtyr.norberteder.com/post/Arbeiten-wir-an-der-Kommunikation!.aspx</link>
      <author>csharp@gmx.at</author>
      <comments>http://devtyr.norberteder.com/post/Arbeiten-wir-an-der-Kommunikation!.aspx#disqus_thread</comments>
      <guid>http://devtyr.norberteder.com/post.aspx?id=7150b178-38f4-4e4f-bbdd-16006a20db01</guid>
      <pubDate>Fri, 29 Mar 2013 08:37:00 +0200</pubDate>
      <category>Allerlei</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://devtyr.norberteder.com/pingback.axd</pingback:server>
      <pingback:target>http://devtyr.norberteder.com/post.aspx?id=7150b178-38f4-4e4f-bbdd-16006a20db01</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://devtyr.norberteder.com/trackback.axd?id=7150b178-38f4-4e4f-bbdd-16006a20db01</trackback:ping>
      <wfw:comment>http://devtyr.norberteder.com/post/Arbeiten-wir-an-der-Kommunikation!.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://devtyr.norberteder.com/syndication.axd?post=7150b178-38f4-4e4f-bbdd-16006a20db01</wfw:commentRss>
    </item>
    <item>
      <title>Design-Offensive FTW</title>
      <description>&lt;p&gt;Design ist ja bekanntlich besonders wichtig wenn es um das Thema Vermarktung geht. Ein Blog ist ja quasi auch eine Form des Marketings. Self-Marketing, jawohl. In diesem Sinne habe ich das bisherige Design ein wenig aufgefrischt, das Ergebnis ist bereits online. &lt;/p&gt;  &lt;p&gt;Die Erneuerung wurde auch für meine Hauptsite unter &lt;a href="http://www.norberteder.com"&gt;http://www.norberteder.com&lt;/a&gt; vorgenommen. Besser integriert, wie aus einem Guss. Das sollte nun für den Besucher wesentlich übersichtlicher sein. Warum ich dies überhaupt als eigenen Beitrag bringe? Ganz einfach: &lt;strong&gt;Euer Feedback ist gefragt. Ist es eine Verbesserung, gibt es weiteres Potential oder findet ihr das neue Design schlechter?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Und so sah das Blog zuvor aus (als Vergleich):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_208.png"&gt;&lt;img title="Design v2 (Norbert Eder)" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="Design v2 (Norbert Eder)" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_131.png" width="350" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Der Vollständigkeit halber hier noch der Screenshot der ursprünglichen Hauptseite - für’s Archiv sozusagen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devtyr.norberteder.com/image.axd?picture=image_209.png"&gt;&lt;img title="www.norberteder.com Design v8" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="www.norberteder.com Design v8" src="http://devtyr.norberteder.com/image.axd?picture=image_thumb_132.png" width="350" height="299" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://devtyr.norberteder.com/post/Design-Offensive-FTW.aspx</link>
      <author>csharp@gmx.at</author>
      <comments>http://devtyr.norberteder.com/post/Design-Offensive-FTW.aspx#disqus_thread</comments>
      <guid>http://devtyr.norberteder.com/post.aspx?id=855ccca6-0e05-4766-bbc8-60b4e146caa0</guid>
      <pubDate>Thu, 28 Mar 2013 18:29:34 +0200</pubDate>
      <category>Allerlei</category>
      <dc:publisher>admin</dc:publisher>
      <pingback:server>http://devtyr.norberteder.com/pingback.axd</pingback:server>
      <pingback:target>http://devtyr.norberteder.com/post.aspx?id=855ccca6-0e05-4766-bbc8-60b4e146caa0</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://devtyr.norberteder.com/trackback.axd?id=855ccca6-0e05-4766-bbc8-60b4e146caa0</trackback:ping>
      <wfw:comment>http://devtyr.norberteder.com/post/Design-Offensive-FTW.aspx#disqus_thread</wfw:comment>
      <wfw:commentRss>http://devtyr.norberteder.com/syndication.axd?post=855ccca6-0e05-4766-bbc8-60b4e146caa0</wfw:commentRss>
    </item>
  </channel>
</rss>
