Top Banner
ALM with TFS 2013 Vincent Grondin General Manager – Solutions Vet a CDMV subsidiary C# MVP .NET Montreal User Group Leader Blog: http://geekswithblogs.net/vincentgrondin
64
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Alm with tfs 2013

ALM with TFS 2013Vincent GrondinGeneral Manager – Solutions Vet a CDMV subsidiary

C# MVP

.NET Montreal User Group LeaderBlog: http://geekswithblogs.net/vincentgrondin

Page 2: Alm with tfs 2013

Content

• How to setup your Iterations• How to setup your Areas• Moving from one Iteration to the next• How to add work item types to the Backlog• How to create work item types• Useful queries for tracking a project properly• How I use windows 8 to save dev time

Page 3: Alm with tfs 2013

Content

• Creating release notes from your work items• What work should be done in which branch• When should you branch your code• Useful things to automate inside a build• Do I need a branch or a new workspace?

Page 4: Alm with tfs 2013

How to setup your Iterations

Page 5: Alm with tfs 2013

• Iterations are a way to slice your development in time

How to setup your Iterations

Page 6: Alm with tfs 2013

How to setup your Iterations

Page 7: Alm with tfs 2013

How to setup your Iterations

Page 8: Alm with tfs 2013

How to setup your Iterations

Page 9: Alm with tfs 2013

How to setup your Iterations

Page 10: Alm with tfs 2013

How to setup your Iterations

Page 11: Alm with tfs 2013

How to setup your Areas

Page 12: Alm with tfs 2013

• Areas are the logical parts of your project• Create an area for each zone or functionality• Don’t create too fine grained areas, it’s less

reportable and chartable.• You can then assign a Bug to an area and build a

query to see… – which areas of your product are more or less problematic– which areas of your product should you revamp first– where have you spent the most time fixing bugs recently

How to setup your Areas

Page 13: Alm with tfs 2013

• Use areas to track your “Operational” work vs your Development work!

• Exclude the “Operational” area from your queries !

How to setup your Areas

Page 14: Alm with tfs 2013

Moving from one iteration to the next

Page 15: Alm with tfs 2013

• First, if I’m starting a new Release I create a folder in my “Shared Queries” for the Release and copy old queries to this folder

Moving from one iteration to the next

Page 16: Alm with tfs 2013

• My iterations are 2 weeks Sunday to Friday + 3 days off (1 Sat & 2 Sun)• My iterations start on Sunday.• My iterations stop on Friday.• I move my iteration from Current to Past and the other one from Future to

Current on Sunday night, why?

Moving from one iteration to the next

Page 17: Alm with tfs 2013

• Moving iterations around is quite easy, just drag and drop!

Moving from one iteration to the next

Page 18: Alm with tfs 2013

• Then, I move a “Future” iteration to “Current”

Moving from one iteration to the next

Page 19: Alm with tfs 2013

• Move items that were not started to the next iteration• 2 ways of doing so, the long way from the backlog, one at the time….

Moving from one iteration to the next

Page 20: Alm with tfs 2013

• …or build a query on everything under “Current” Iteration Path and multi-select if you have many items to move….

Moving from one iteration to the next

Page 21: Alm with tfs 2013

• Make sure all tasks on items that aren’t finished are closed with the right amount of remaining time.

• Don’t move the parent work item to the next iteration

• Create a new Task in the new iteration with the remaining time from a previous task and assign it to the same parent work item

• It should appear again in the backlog for the new iteration with only it’s new Task as the todo

Moving from one iteration to the next

Page 22: Alm with tfs 2013

How to add work item types to the Backlog

Page 23: Alm with tfs 2013

Adding Bugs to the backlog

Page 24: Alm with tfs 2013

Adding other work item types to the backlog

• There are missing fields for a WIT to appear in the backlog, add them !

• witadmin exportwitd and start editing the WIT• Add the Story Points field• CMMI Template? Add the Size and Requirement

Type fields• Import back the WIT to the server• Explained clearly on MSDN

Page 25: Alm with tfs 2013

How to create work item types

Page 26: Alm with tfs 2013

How to create work item types

Use the process editor!

Page 27: Alm with tfs 2013

How to create work item types

Page 28: Alm with tfs 2013

How to create work item types

Page 29: Alm with tfs 2013

How to create work item types

Page 30: Alm with tfs 2013

How to create work item types

Page 31: Alm with tfs 2013

Useful queries for tracking a project properly

Useful queries for tracking your Devs Useful queries for tracking your Iteration Useful queries for tracking your Releases Useful queries for tracking your Product

Page 32: Alm with tfs 2013

• Create a folder “Base Queries” and copy all original Shared TFS queries in that Folder.

• This will save you the trouble of creating a team project just for copying it’s queries when you ruin them .

• Use Visual Studio to copy multiple queries at once because the Web Access can’t

Useful queries for tracking a project properly

Page 33: Alm with tfs 2013

Useful queries for tracking your Devs

Page 34: Alm with tfs 2013

• One query per DEV in the team• Avoids playing the little bee game• You want to track the Tasks not the Bugs/Requirements/Features• Tree of work items where:

– The Task is the Parent – The parent work item is the child

Work in progress

Page 35: Alm with tfs 2013

• Expand the parent to see which item the person works on

Work in progress

Page 36: Alm with tfs 2013

• This is the query in edit mode

Work in progress

Page 37: Alm with tfs 2013

Useful queries for tracking your Iteration

Page 38: Alm with tfs 2013

• Features or Functional Requirements or bugs Resolved• These items need to move to CLOSED State (tested)• I’m making sure this Query is empty at the end of an Iteration• Flat list of work items• Pin it to the HOME page

Work to be tested

Page 39: Alm with tfs 2013

Useful queries for tracking your Releases

Page 40: Alm with tfs 2013

• In the Team Queries, create a Folder with your Release name like “Version 5.2”

• Copy your queries from a Release to the next

• If you followed the “Current” rule, they should work effortlessly

Useful queries for tracking your Releases

Page 41: Alm with tfs 2013

• At the start of a Release (or way before), decide what it will include– Features– Requirements– Operational Work (you’re lucky if you have none)– Bug fixes

What’s planned for Release 5.2

Page 42: Alm with tfs 2013

• PIN it on the HOME page• Keep it there for the Release and replace it every Release

What’s planned for Release 5.2

Page 43: Alm with tfs 2013

What’s planned for Release 5.2

Page 44: Alm with tfs 2013

• PIN it on the HOME page, right beside the Planned Work!• Keep it there for the Release and replace it every Release• Compare it with the Planned Work to see your progress!

Items closed in Release 5.2

Page 45: Alm with tfs 2013

• PIN it on the HOME page, people just love to know how many issues you fix in a release…

• Keep it there for the Release and replace it every Release

Bugs closed in Release 5.2

Page 46: Alm with tfs 2013

Useful queries for tracking your Product

Page 47: Alm with tfs 2013

Bugs backlog by severity

Page 48: Alm with tfs 2013

Other useful queries to track your product

• Bugs by area– What to refactor first– Where to focus next time

• Bugs closed by area– Where not to focus anymore– Where have you spent to most energy

Page 49: Alm with tfs 2013

How I use windows 8 to save dev time

Page 50: Alm with tfs 2013

• Install on SSD or go home!• Native Hypervisor!• Each dev has his set of VMs to test on!• Everyone is isolated from others• Reduced impact and friction• Quicker dev to test to dev feedback• Still need to test in a integrated environment• Accelerates development time (yes it does, VM haters !!!)

How I use windows 8 to save dev time

Page 51: Alm with tfs 2013

Creating release notes from your work items

Page 52: Alm with tfs 2013

• Go to Visual Studio• Select the query• Open with Excel• Remove unnecessary columns

Need I say more?

Page 53: Alm with tfs 2013

What work should be done in which branch

One way to do it A better way, I think

Page 54: Alm with tfs 2013

• Use iterations but don’t check the « Iteration » box

• PROS:– Easy for devs to see what Branch to use (use the HotFix V5.1 Branch) in their WI– Not everyone can create the Iteration just like branches !

• CONS:– Constantly need to create the Iteration from one iteration to the other– Queries have to be re-adjusted from one iteration to the other

One way to do it

Page 55: Alm with tfs 2013

• Use Tags !

• PROS:– Tags are persistent across iterations, no need to create them all the time– No need to adjust queries when moving to the next iteration

• CONS:– Can be hard to see which Tag is the Branch (when multiple tags are used)– Anyone can create, delete or misspell a Tag which can mess up your queries

A better way, I think

Page 56: Alm with tfs 2013

When should you branch your code

Page 57: Alm with tfs 2013

• Branch when you start work and don’t know if it will make it in time for the release

_____WORK_____________

|

___DEV__|____________

|

___MAIN____|_____

• Branch when you want to isolate code for a release

___DEV__________

| |

___MAIN____|________________|____

|

|___RELEASE_____

When should you branch your code

Page 58: Alm with tfs 2013

• Branch when you want to isolate code for a release

_____RELEASE_____________

|

___DEV__|____________

|

___MAIN____|_____

• Branch when you want to release often

__REL1_ __REL2__ __REL3___

| | | | | |

___DEV__|_______|_____|________|____|_________|______

|

___MAIN____|_____

When should you branch your code

Page 59: Alm with tfs 2013

Useful things to automate inside a build

Page 60: Alm with tfs 2013

• Setup!– Wix !!!– Each build = 1 setup– Each dev can deploy his own build– Each build is INSTALLABLE… ok but can you test it?

• SQL Scripts!– Many companies have built their own SQL Script Diff tools…– Automate their execution in your build process– Each build is now TESTABLE, not just installable!

• Versioning of your assemblies– Each build is now a potential RELEASE!

Useful things to automate inside a build

Page 61: Alm with tfs 2013

Do I need a new workspace?

Page 62: Alm with tfs 2013

• If you’re about to merge branches, YES

• If you have unfinished work and need to start new work, YES

• If you need to work on multiple branches at once, YES

• The more workspaces you have, the more in control you are!

• A workspace should be associated with only 1 branch

• You can have many workspaces pointing to the same branch

Do I need a new workspace?

Page 63: Alm with tfs 2013

QUESTIONS

Helpful at all?

Page 64: Alm with tfs 2013

Thank You For Attending!!!Vincent GrondinGeneral Manager – Solutions Vet a CDMV subsidiary

C# MVP

.NET Montreal User Group LeaderBlog: http://geekswithblogs.net/vincentgrondin