Christian Binder (Microsoft) Thomas Schissler (artiso) Moderne Software- Entwicklung mit TFS 2013...
-
Upload
parsifal-rasmussen -
Category
Documents
-
view
214 -
download
0
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
http://www.flickr.com/photos/ian_crowther/8538917315/
http://www.flickr.com/photos/54027476@N07/4999919941/
Moderne Software-EntwicklungAnforderungsManagement
Qualitäts-sicherung
Stakeholder einbeziehen
Continous Delivery
Erweiterbare Architektur
Entwickler-Produktivität
App-Telemetrie
Developer Operations
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
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
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
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
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
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)
Motivation - Customer DevelopmentLearn
Build ConstructMeasur
e
REQUIREMENTSPRODUCTBACKLOG
Release
Operations
FUNCTIONAL SOFTWARE
Learn - Feedback and Telemetry
PRODUCTBACKLOG
OPERATIONSBACKLOG
OperationsDevelopment
User
WORKINGSoftware
Stakeholder Feedback
User Voice
Telemetry
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
Unit-Tests
Verändern das Qualitäts-bewusstsein der Entwickler
Gehören zur Implementierung
Machen Entwickler effizienter
Objective Stub ShimLooking for max. performance?Abstract and Virtual methodsInterfacesInternal typesStatic methodsSealed typesPrivate methods
MS Fakes Framework
http://vsartesttoolingguide.codeplex.com
Regression Tests: Funktioniert noch, was gestern funktionierte?
Default = Ja!
Unit-Tests
Integra-tionstests
Automat. UI Tests
Setup Tests
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]
• 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
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
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
Upgrading to TFS 2013
Nicht mehr unterstützt:
Internet Explorer 8
Visual Studio 2008 (nur über MSSCCI-Provider)
Fazit
Moderne Software-Entwicklung ist mehr als Code und Technologien
In kürzen Zyklen denken und agieren
Automatisierung ist ein wesentlicher Aspekt
[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.