Christian Binder (Microsoft) Thomas Schissler (artiso) Moderne Software- Entwicklung mit TFS 2013...

95
Christian Binder (Microsoft) Thomas Schissler (artiso) Moderne Software- Entwicklung mit TFS 2013 und Visual Studio 2013

Transcript of Christian Binder (Microsoft) Thomas Schissler (artiso) Moderne Software- Entwicklung mit TFS 2013...

Christian Binder (Microsoft)Thomas Schissler (artiso)

Moderne Software-Entwicklung mit TFS 2013 und Visual Studio 2013

Eure Herausforderungen ?

http://www.flickr.com/photos/5auge/9134637318/

http://www.flickr.com/photos/ian_crowther/8538917315/

http://www.flickr.com/photos/54027476@N07/4999919941/

IDEAS

CODEDATA

Measure

Learn Build

Build – Measure - Learn

Moderne Software-EntwicklungAnforderungsManagement

Qualitäts-sicherung

Stakeholder einbeziehen

Continous Delivery

Erweiterbare Architektur

Entwickler-Produktivität

App-Telemetrie

Developer Operations

Anforderungs-Management

Product Backlog

Work Items

Teams

Backlog Linking

Backlog Linking

n Levels

Work Items

DemoPlanning Tools

• Yes…Can I configure the work item colors?

Configure your backlogs

Pause

Stakeholder einbeziehen

Agiles Anforderungsmanagement

Was ist daran falsch?

Build – Measure - Learn

Technologien, Architektur, Tools etc. sind cool

Aber welchen Kundennutzen erzeugen sie?

Bauen wir wirklich Funktionen die unsere Anwender benötigen?

Oder bauen wir Funktionen von denen wir glauben, dass sie benötigt werden?

Stakeholder sind wichtig für ein Projekt, ohne sie kein Projekt

Also müssen wir sie auch wichtig nehmen und uns um sie kümmern

Wer sind Stakeholder?Alle die ein Interesse an dem Ergebnis haben, ohne direkt an der Umsetzung beteiligt zu seinManageme

ntMarketing /

Sales

Operations Trainings

Kunden / Key-User

Support

Außendienst

You can‘t just ask

customers what they want and

then try to give that to

them.

By the time you get it

built, they‘ll want

something new.

Steve Jobs

ProblemePriorität bei Stakeholdern

Deployment-Aufwand

Feedback verwalten

Unklare Anforder-ungen

?

Best Guess

Sprach- und Domain-Barrieren| |

Storyboards• Ideen schnell und

einfach Skizzieren und Abstimmen

• Konzepte reviewen

Feedback Client• Qualifiziertes Feedback

einholen• Inkrementelle

Entwicklung optimieren

Stakeholder einbeziehen

DemoStoryboarding &Feedback Client

Mittags-Pause

Continous Delivery

Continuous value deliveryREQUIREMENTS

PRODUCTBACKLOG

Release

Operations

FUNCTIONAL SOFTWARECYCLE TIME

MEANTIME TO REPAIR

DefineDevelop

TestConstruct

Deploy Monitor Manage

Motivation - Customer DevelopmentLearn

Build ConstructMeasur

e

REQUIREMENTSPRODUCTBACKLOG

Release

Operations

FUNCTIONAL SOFTWARE

Build-Measure-Learn1. MAKE BUSINESS HYPOTHESISA TESTABLE EXPERIMENT

3. BUILD MEASUREMENTINTO MVP

4. MEASURE THE RESULTS

6. PERSEVERE OR PIVOT

2. DEFINE EXPERIMENT ASMINIMUM VIABLE PRODUCT (MVP)

5. GAIN VALIDATED LEARNING

PRODUCTBACKLOG

OPERATIONSBACKLOG

OperationsDevelopment

Visual Studio 2012

Windows 8

August 2012

.NET 4.5

TFS 2012Visual Studio &

TFS 2012Update 1

November 2012

Visual Studio & TFS 2012Update 2

April 2013

Visual Studio 2013

Preview

Windows 8.1

Preview

June 2013

.NET 4.5.1

TFS 2013 Preview

Visual Studio & TFS 2012

Update 3

Visual Studio 2013

Windows 8.1

October 2013

.NET 4.5.1

TFS 2013

Visual Studio & TFS 2012

Update 4

Visual Studio - Continuous Delivery

Continuous Delivery - TFSRelease Category FeatureTFS 2012.1 Kanban Kanban Board

TFS 2012.2 Web-based Test Case Management

Execution of Manual Test Cases & basic Test Case Authoring

TFS 2012.2 Kanban Customizable ColumnsTFS 2012.2 Backlog Management Tagging work items

TFS 2013 Web-based Test Case Management

Test Plan & Suite authoring in the web and many other improvements

TFS 2013 Team Collaboration Team Room and Code Comments in changesets/commits

TFS 2013 Project Management Across Agile Teams

Agile Portfolio Management – “Features”

TFS 2013 Git Git support for on-premises, Branch Visualization, etc.TFS 2013 WI Charts Basic Reporting based on WI Queries

Visual Studio Online – Features Timeline

http://tfs.visualstudio.com/news/release-archive

Continuous Delivery requires Continuous Integration

REQUIREMENTSPRODUCTBACKLOG

Release

Operations

FUNCTIONAL SOFTWARE

Version ControlBuild

Management CI

Team Foundation Server / ServiceTeam Projekt BBugs

Projekt

mgmtTeamBuild

Team Projekt ABugs

Projektmgm

tTeamBuild

Git

3rd Party XCodeEclipseShell

3rd Party Eclipse

Shell… TFVC

……

LokaleRepos

Remote- Git Repos

Git-TF

Version Control - DVCS & CVCS

DemoContinuous Integration

Tip – Working with multiple Branches?

http://visualstudiogallery.msdn.microsoft.com/f3f23845-5b1e-4811-882f-60b7181fa6d6

Continuous DeliveryREQUIREMENTS

PRODUCTBACKLOG

Release

Operations

FUNCTIONAL SOFTWARE

DefineDevelop

Test

Deploy Monitor ManageLearn

CI

Release Management

DEV QA PRODTFS

Release Management 2013

Automates Workflow

Full Traceability

DemoRelease Management

DemoRelease Management selbst gebaut

Continuous Delivery to the Cloud

TFSCI RM

2013

DEV

QA

Build Drop

Auto Deployoment

to DEV

Approve and Operate PROD Deployment by DevOps

PROD

AzureCloud

Service + SQL

Azure

Visual Studio

Debug localyCheckIn to TFS

Continuous Delivery in the Cloud

VSO CI

Visual Studio

QA Build on

VSO

Debug localyCheckIn to VSO PROD

QAPROD

Build on VSO

Remote Debug, Intellitrace in Production

Demo

Continuous Delivery using Visual Studio Online

Integrated Teams

Agile, Lean, Kanban

Short Cycle times

DevOps Model

DevOps

Chan

ge

Time

S-D-B-TS-D-B-T

S-D-B-T

DevOpsSeparate Teams

Waterfall

Long Cycle times

Traditional ModelDEVOPSTEST

SPECDESIGN

TESTBUILD

Chan

ge

Time

DevOps REQUIREMENTS

PRODUCTBACKLOG

Release

Operations

FUNCTIONAL SOFTWARE

DefineDevelop

Test

Deploy Monitor Manag

eLearn

CI

CD

Mean Time to Detect (MTTD)Mean Time to Repair (MTTR)

Monitoring - System Center and TFS

SCOM – Intellitrace on Demand

Application Insights

Demo

Application Insights

Motivation - Customer DevelopmentLearn

Build ConstructMeasur

e

REQUIREMENTSPRODUCTBACKLOG

Release

Operations

FUNCTIONAL SOFTWARE

Why App Telemetry? Because unused Software sucks …..

Learn - Feedback and Telemetry

PRODUCTBACKLOG

OPERATIONSBACKLOG

OperationsDevelopment

User

WORKINGSoftware

Stakeholder Feedback

User Voice

Telemetry

http://visualstudio.uservoice.com

Application Insights

Available

Is my application available and performing for users?

One Dashboard

ImprovingPerforming

What’s wrong?Show me suspicious code and test cases

Where do we invest next?Show me top features and customer

Usage patterns

Health Dashboards Notifications & Deep Insights

Usage Dashboards

How to start getting insights into your applications?

Basic AvailabilityEmbrace the advantages of the cloud for your enterprise at your paceEmbrace the advantages of the cloud at your own pace

Basic Performance

Application Usage

Custom Telemetry

Non-invasive

Code change

Test Management

Agiles

Testen

Ein agiles Dream-Team

Team-Struktur

Entwicklung Qualitätssicherung

Team A Team B

DemoAkzeptanz-Test Driven Development (ATDD)

Unit-Tests

Verändern das Qualitäts-bewusstsein der Entwickler

Gehören zur Implementierung

Machen Entwickler effizienter

Unit-Tests Herausforderungen

Architektur

Mindset

Practices

Objective Stub ShimLooking for max. performance?Abstract and Virtual methodsInterfacesInternal typesStatic methodsSealed typesPrivate methods

MS Fakes Framework

http://vsartesttoolingguide.codeplex.com

DemoExploratives Testen

Regression Tests: Funktioniert noch, was gestern funktionierte?

Default = Ja!

Unit-Tests

Integra-tionstests

Automat. UI Tests

Setup Tests

Lab Management Demo

Load & Performance Tests

Performance-Analysen und Trend-Auswertung

5/1/2013

5/3/2013

5/5/2013

5/7/2013

5/9/2013

5/11/2013

5/13/2013

5/15/2013

5/17/2013

5/19/2013

5/21/2013

5/23/2013

5/25/2013

5/27/2013

5/29/2013

5/31/20130%

10%20%30%40%50%60%70%80%90%

100%

0

2

4

6

8

10

12

14

CPU Testlaufzeit Memory

CPU

Usag

e [%

]

Mem

ory

Cons

uptio

n of

Pro

cess

[MB]

DemoLoad Tests in der Cloud

Lernen

Retrospektive Kontinuierliche Verbesserung

Probleme früh erkennen

Team-Power

Wissen und Erfahrung im Team nutzen

Voneinander lernen

Motivation durch gemeinsame Ziele

Pause

Architektur und Entwickler-Produktivität

Ziele moderner Architektur

Wartbar Erweiterbar

Testbar

• Redundanzen• UI-Componenten (z.B. Message-Boxen) im

Code verwenden• Zugriffe auf Ressourcen (z.B. Files) nicht

isolierbar• Zu viel Funktionalität in einer Methode• Starke Bindung zwischen Klassen

Anti-Patterns

Oberstes Ziel: Entkopplung

Trennung -Daten-Orchestrierung -Logik

Sackgassen-methoden

Komponenten-orientierung IoCInterfaces

MVVM / MVC

Single Responsibility

POCOs

Spaghetti-Code

RecognizeSplitLine

DB

ReadData

SplitDigitRecognize

Digit

Integrations-Test

Klassische Struktur

SplitLine

DB

ReadData

Recognize

Integrations-TestSplitDigit

Recognize Digit Unit-Test

Integrations-Test

Integrations-Test

Integrations-Test

Sackgassen-Methoden

SplitLine

DB

ReadData

Recognize

Integrations-Test

SplitDigit Recognize Digit

Integrations-Test Unit-Test Unit-Test Unit-Test

Code-VisualisierungCode Maps• Visualisierung von Code-

Strukturen auch während Debugging

Layer Diagramme• Architekturabhängigkeiten

modellieren• Autom. Validierung im

BuildUML Diagramme• UML-Diagramme inkl.

Generierungs-FunktionenCode Clone Detection• Finden von redundantem

Code

DemoCode Visualisierung und Architektur-Tools

Entwickler ProduktivitätGIT Integration• TFS als GIT ServerCode Lense• Meta Informationen

direkt im Code anzeigenTeam Rooms• Kommunikationsplattform

für TeamsIDE Improvements• Kleine Helfer für

Entwickler

DemoIDE Improvements

Upgrading to TFS 2013

Nicht mehr unterstützt:

Internet Explorer 8

Visual Studio 2008 (nur über MSSCCI-Provider)

Was sollten sie mitnehmen?

Fazit

Moderne Software-Entwicklung ist mehr als Code und Technologien

In kürzen Zyklen denken und agieren

Automatisierung ist ein wesentlicher Aspekt

Q&A

[email protected] Deutschland GmbHKonrad-Zuse-Str. 1D-85716 Unterschleißheimhttp://blogs.msdn.com/cbinder

[email protected] Solutioins GmbHOberer Wiesenweg 25D-89134 Blausteinhttp://www.artiso.com/problog

Christian Binder

Thomas Schissler

© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.