Tuesday, December 1, 2009

Animal Shelter Fundraiser

Currently my wife is doing a fundraiser for a local animal shelter.  She is planning on delivering collected items on 12/13/2009.  This particular shelter is short on volunteers, low on the budget and supplies.
I have heard a rumor that a dog from that place got sick from eating a mildew food.

If you are interested in helping us with a drive, please contact me. 
If you choose to donate CASH it will be spend on buying items listed below.

The shelter is looking for following items:

  • Paper towels
  • Bleach
  • Trash Bags
  • Bath towels and wash cloths (new or used)
  • Blankets (new or used)
  • Pet Shampoo
  • Collars and Leashes (new or used)
  • Non-clumping Litter
  • Cat and Kitten Food (no red dye please)
  • Dog and Puppy Food (no red dye please)
  • Dog Toys (hard chew)
  • Puppy Toys
  • Cat and Kitten toys
  • Newspaper
  • Laundry Detergent
  • Distilled Water
  • Aluminum Cans
So far we have 12+ dog toys, 10+ collars, a blanket, several towers, and 200+ pounds of dry and can food.

Update: Big thanks to Danilo Casino for making a donation, with my match were able to get an additional 500 pounds of dry food.

Thursday, November 19, 2009

DogFood v2 Session summary on: Customizing TFS Process Template to Match Your Process.

My slide portion of the session has briefly covered customization and extension points on TFS. Due to time limitations I had to hide a significant portion of slides.  The full version of the PowerPoint Deck is available for download.

In summary, if you are planning on customizing process template I recommend for you to follow a few simple steps:
1. Start with documenting your process.  Do an ALM Assessment, as a mere a fact Microsoft has a great tool for it: Application Platform Capability Assessment.  Spend the time with all the people that are involved in the process and get a "Green Light" from the management.  Remember the process is not only for developers, but for the entire team (including business sponsors and clients).  Create an Action Plan of the implementation steps.

2. Templates shipped with current versions of TFS are not meant to be used as is, they are just blueprints.  Do not treat the process as paint, throwing it on the wall and seeing what will stick is not the best strategy for the development.

3.  Do not expect by customizing TFS process guidance to go fully integrated (dynamic) environment over night. It will take time, long time.  Use your Action Plan (created part of the ALM Assessment) to fully integrated ALM into VSTS/TFS.

4. Treat your TFS server as production server.  Do not go and try some new ideas against.  If you need to prototype a rule or workflow or workitem get yourself a test environment.  Once you know that it is working well in test server, then go ahead and implement it in your production TFS.

5.  Do not be afraid to make process adjustments on active projects (as long as you are following rule #4).  If your project needs a new rule/workitem/field/report/etc then just implement it.  At the end of the project do a retrospective and decide if the change is worth making part of the global template.  If you are not willing to change and adjust the process, chances are it will become stagnant and obsolete.  100 years ago ice houses and transporting ice down the rivers was a booming business, now days we just use refrigerators...

Happy customizations!

Monday, November 2, 2009

Customizing TFS Process Template to Match Your Process at the Second Annual DogFood Conference

On November 12th 2009, I will be presenting on TFS Process Template customization.

TFS is a very versatile tool that has a lot of features and capabilities. I think of TFS as a highly customizable/adoptable to my needs framework. Prior to using TFS we had a lot of different tools to manage our development progress; while we can still use them now, the beauty of using of TFS is that all the data is centralized and available from one tool. It does not matter if it is source code I am after or status report or the progress state of the requirement - I can find all this information in one place, using my everyday tools.

How do you know that the team is following the development process, standards, policies? TFS Process Templates helps to insure that development guidelines and processes are adhere by team members.
TFS comes with two Process Templates (MSF for CMMI Process Improvement and MSF Agile Software Development). In my opinion the two templates are there as an example and a starting for customization and should not be used as is.

I have seen a lot of organizations implementing TFS and using it only for source code management. I have heard many different reasons on why it has been done, starting with: we are just easing into using TFS; or we are not managing our development the "Microsoft Way", or we already have a good process and we do not want to break it, etc...

In my presentation I will show that it is easy to make changes to the process templates, we can actually make changes not only before the project starts, but during the active project. Its like magic going from fighting the tool to actually using it!

Eventhough DogFood conference is sponsored by the partner community, it would not have been possible without Danilo Casino, read more about the conference from Brian's blog.
This 2 day event will feature over 40 technology topics spread over 4 tracks. 

Come and join us: DogFood agenda and registration.

You can track me down at the conference during the "Ask the Experts" in the Executive Briefing Room (4th floor) from 2:30 to 3:40 on 11/12/2009 8800 Lyra Dr., Suite #400, Columbus OH 43240

Tuesday, September 8, 2009

COALMG Recorded Session: Application Lifecycle: Security!

Last time COALMG had Brent Huston talking about web application security, you may find the recording of the session on COALMG site

Wednesday, August 26, 2009

QSI Grok Talk: PEX

Developers at Quick Solutions have a monthly meeting known as "Grok Talk". The meeting typically takes place during lunch. The goal of the meeting is to share information on the topic of choosing. The most recent Grok has been done by Mel Grubb on PEX.
Here is the recording of the session:

Friday, August 14, 2009

QSI Tech Night: Code Generation with T4 Templates

Recently, Mel Grubb has presented Code Generation with T4 Templates at Quick Solution's Tech Nigh meeting. While we still finalizing the details on how to share those presentations with the community you may watch Mel's presentation from here:

Monday, August 3, 2009

Follow up questions from KY SDLC

After the SDLC presentation we had several questions that we were going tofollow through:

Q: How can I see all created Alerts for the selected TFS Project?
The answer is Yes and No. There is no an easy UI that will tell someone of all project alerts, but this information can be easily discovered by two methods:
Option 1: Query the underlying database (not recommended), all subscriptions are stored in
[TfsIntegration].[dbo].[tbl_subscription]. If soemone chooses this path my recomendation would be: LOOK, BUT DON'T TOUCH.
There is a reson on why there is ae extensive set of API asvaialble to us, modifying data in the table may lead into path of unpredictable problems with TFS.

Option 2: use TFS API web services to aggregate the information.
you will start by calling ReadIdentityFromSource method of the http://localhost:8080/services/v1.0/GroupSecurityService.asmx service to find out the list of all users that have access to a project, assuming that you know names of the Application Groups (like Contributors, Project Administrators, etc) then you can set factor as: AccountName, and factorValue as: {Account Group Name, ex. [DCVR]\Contributors]}

Now that you have a list of users that have access to the project, you may get each person's subscription by calling EventSubscriptions method of http://localhost:8080/services/v1.0/eventservice.asmx service.

if you are not sure on what Application Groups you have, you may find them by either looking at the "Group Memebership" option of the Team Project Setting in the Team Explorer or you can use TFS APIs:

http://localhost:8080/services/v1.0/CommonStructureService.asmx?op=ListProjectsx to get the Project URI
http://localhost:8080/services/v1.0/GroupSecurityService.asmx?op=ListApplicationGroups to get the list of the groups for the selected Project URI.

More information of the TFS API can be found at Buck Hodges blog

Q: I am having a problem with check-in 50MB file, is there a setting to increase a max size of checked in file?
There are no switches in TFS that will limit a person on the size of the check-in file. Mike and I were able to check-in 100+MB file without any problems. My recomendation will be to check IIS and Application Event logs for logged messages as a strating point to troubleshoot the issue.

An interesting fact is: if you are checking large files (>16MB) then TFS deltas mechanism that is used to figure out the difference between file versions will not be used, which means that the entire file will be checked into source control. Not a big deal unless you are working with a lot of large files and have a database disk constrain. To ensure that TFS deltas mechanism is used to store file revisions you will need to update the default value of "deltaMaxFileSize" key located in {TFS Install Folder}\Web Services\VersionControl\:

Another interesting fact: by default workitem attachments are limited to 4MB sizes. To change that value one will need to call the GetMaxAttachmentSize method of http://localhost:8080/services/v1.0/ConfigurationSettingsService.asmx service.

Q: Can recorded Web Tests be hooked to the external data source to provide input values?
Yes, web test can be easily configured to support input of the values from the external sources like: database, csv, or xml. You may find additional details from my previous post: http://govorin.blogspot.com/2009/07/data-driven-web-tests-with-vsts2008.html

Thursday, July 30, 2009

Data Driven Web Tests with VSTS2008

Recently, I was asked if a recorded WebTest can be link to the external datasource for data feed. For example if we would like to pass different search parameters into a search page to test the logic and data of the search, we definitely do not want to have multiple tests that do the same thing. It totally make sense to have a single test that will feed different data and will aggregate/reports results back to us.

My second attempt at the webcasting runs through example on how to accomplish data bounding to the web test:

Visual Studio Team System Testers Edition has an option of recording a Web Test, once the test is created we can easily add a data source to it, by doing following steps:

1. Right Click on the web test, Select Add Data Source.
From here you will a Wizard with multiple choices:

I think that you may want to use CSV,XML types:

  • if you want BA or End Users to easily provide you with a test data

  • if the amount of data is small

  • you need a version history of data evolution (the file can be checked in into Source Control and deployed as part of the build process).

The Database choice is good:

  • large amount of data (thousand/million data points).

  • re-use the same data across multiple test/projects/teams/environments.

Once the data source is created, all is left is to replace hard coded values for the data from bound source.

2. Find a Post Parameter by expanding Request Form Post Parameter

3. Select Properties by Right Click on ContentPlaceHolder

4. Select created DataSource by Clicking on the drop down menu of the Value property.

5. Expand Datasource and Navigate to the needed column.

This is it, you know can run web test and feed the data from the external source.

But what if you want to add Validation and Extraction rules to your test and be able to run positive and negative tests, how do you do it with external data source?

You may take a similar approach and try to bind the value properties of the rules to data source, but you may run into a problem of setting the "Pass if Found" Boolean property.

In my opinion it would be better to convert the test to coded version and then you will have control over all aspects of the test.

6. Select Generate Code by right Clicking on the web test.

7. Make changes to the "PassIfFound" property of the rule.

Web Test Coded file from my demo can be downloaded from here

Tuesday, July 28, 2009

Missing Demo from SDLC KY: Branching and Merging with TFS Source Control

This webcast is a brief demo of how one may use TFS Source Control and its rich set of features like: Branching, Merging, and Shelving to manage production and development code.

I have collapsed the 90 minute demo into 35 minute webcast.
This is my first webcast, so any feedback is appriciated.
At some point I will re-record it at lower resolution.

Sunday, July 19, 2009

Columbus Give Camp on June 17th - 19th.

Working with great number of people at Columbus Give Camp, check out our live feed.

Friday, July 17, 2009

KY SDLC Day 2 Summary

It was a pretty full day, it is very unfortunate that Mike and I have run out of time and were not able to cover all the topics in needed details. In the upcoming days (weeks), I will a set of the recordings to capture testing and source control in greater details, meanwhile you may visit Team System Cafe for a great variety of information on VSTS/TFS.

On Day 2 we have covered following topics:

1. VSTS Architect
We talked about Physical, Logical, and Deployment diagrams. In the demo we have used VSTS as architects (infrastructure & software) and build master to generate/validate diagrams; model the application and to have generated code based on our models.

2. VSTS Database Professional, aka "DataDude"
Is probably one of the most under-used edition of VSTS, which by the way, is now became a part of the VSTS Developer Edition. As a DBA we have covered topics of Managing, Developing, and Deploying database. We reviewed schema compare/validation/refactoring/deployment, data compare, data generation with Data Generation Plans, visioning of database, and creation of database unit tests.

3. VSTS Developer
Since were short on the time we have skipped demoing some of the development tools and concentrated demos on how the developer can use Code Coverage, Code Analysis, and Code Profiling (Instrumentation and Profiling) to troubleshoot and improve the quality of created code.

4. Creating Unit Tests, Test Driven Development, and Data Driven Tests.
In this portion of the SDLC presentation we have talked about the importance of testing and various ways one may start doing it. It can be as easy as "right click" and "generate test" (as I heard at the PDC08: Even a VP Can Do It), to getting into xDD (where x is Test/Behavior/Domain/etc Driven Development). TDD is all about Red-Green-Refactor!

In this section we have also expanded on Code coverage and demonstrated that hooking the test to data source can significantly reduce amount of tests a developer needs to write, while still maintaining a reasonable code coverage.

5. TeamBuild
On all the projects that I have a privilege to be part of, we have also setup a Continuous Server (CI) to establish an environment for automated code build and verification. I try to have a CI setup and go on day one of the project. TeamBuild is an excellent tool for creating and maintaining solution builds, we have demonstrated build can be setup under 2 minutes and perform all kings of tasks including test execution, code analysis, build failure notifications. Since TeamBuild sits on top of the MSBuild one may use a variety of created MSBuild tasks to perform additional actions like: code promotion to QA/Testing environments (only if it passes all other validations), creation of website, registration of DLL, file updates. Using Community MSBuild Tasks from TIGRIS, we were able to change the keys of the web.config file to reflect the changes between development and QA database connection strings. There are many other good collections of MSBuild tasks, like MSBuild Extension Pack.

6. VSTS Tester
Since we had limited time we showed only only Web and Load Tests in details. VSTS Tester edition has a set of powerful tools to allow us to create and manage a variety of test types. One of the greater features is an ability to capture user interactions between the browser and the server on the TCP layer stack and being able to replay it back as a WebTest or convert it to the .NET code.

I will be putting an additional posting to cover Testing in greater details, to cover other type of tests like: manual and ordered.

7. First look into VSTS 2010
Mike has given us a teaser into what Microsoft will be releasing soon, VSTS 2010, TFS 2010, .NET 4.0 all of those tolls has many new and improved features. You may get Mike's presentation from here.

You may find a lot of material on 10-4 (VSTS2010 and .NET4.0) on:

8. Advance Source Control, for the 4 people that waited patiently for it :)
We have talked about Branching and Merging strategies. We have run through a real-life example on how one may work on the production V1.0 code performing hot fixes, at the same time continue development of the V2.0 application , and how merge can be completed between application branches.

Since mostly of the people missed this demo due to time constrains, I will be putting a recording of it in a very close future.

Here is a great white paper on Branching Strategy

Thursday, July 16, 2009

KY SDLC Day 1 Summary

On the first day we have covered the following topics (SDLC deck):

1. Application Lifecycle Management
Mike has talked about the business value of the ALM, here is a link to the Power Point deck.

2. VSTS & TFS Overview
We have covered how Microsoft addresses the need for the robust set of tools for the ALM, the PowerPoint presentation is here.

3. Team Explorer Overview (Security, Collaboration, Alerts, Source Control)

  • Team Foundation Administration Tool was used to show how to simplify user management in TFS.
  • TFS Power Tools "Alerts Editor" was used to customize alert setup, a user interface to BisSubscribe.exe.
  • Team System Web Access and Work Item Web Access were briefly shown as alternatives to default sharepoint site and WIWA a free (no license required) workitem creation tool.
4. Customization / Setup
We have covered some of the popular TFS Templates for Agile Development
  • eSCRUM, used by some teams at Microsoft (by some reason the download link is broken, I do have a copy of it somewhere and will post the download link shortly)
  • VSTS Scrum on Codeplex, maintained by a group of MVPs, a light version of scrum implementation. It is a great starting point for customization.
  • SCRUM for Team Systems from Conchango, out of box fully implemented scrum template with a great set of features.

I have used TFS Power Tools "Process Editor" to modify template during my demos.

5. Work Item Management (Tools for Managing Requirements)
Besides showing a variety of ways one may create and manage work items in TFS (Team Explorer, Excel, Project, Web Access, WIWA) I also briefly demoed: TeamLook and TeamSpec.

Wednesday, July 15, 2009

What Software did I use for the SDLC presentation

to save time and to make the demos easily reproducible I have used a trial version of Visual Studio Team System 2008 Team Foundation Server SP1 VPC Image, you may download from here. The image will not expire till the end of 2009, so happy exploring!

After booting into it and applying all the security patches, I have also downloaded and installed additional software and tools:
1. Team Foundation Administration Tool - to simplify permission management
2. TeamLook, from Team System Solutions - an Outlook add-on for Work Item Management (will work with TFS2005/2008 and Outlook 2003/2007)
3. TeamSpec, from Team System Solutions - a Word add-on for managing Work Items in the word (again will work with TFS 2005/2008 and Word 2003/2008)
4. Ravenflow - great tool for round trip requirements and work items management.
5. Teamprise plugin for Eclipse - java development TFS integrated development toolset
6. Sparx Enterprise Architect, UML modeling tool.
7. I do not remember if TFS Power Tools were part of the image, but in case you are missing them you may get them from here
8. Tigris MSBuild tasks - a collection of MSBuild tasks to help with TeamBuild automations

9. I forgot to include VSTS 2008 Database Edition GDR R2 setup and
10. VSTS 2008 Database Edition Power Tools, I did not use any of the features during the demos, but it has a few great improvements.

Alternatively, if you want to try some of the demos/features for the VSTS2008 and TFS2008 you may want to try to use Team System Virtual Labs, it is truly a great resource.

Monday, July 6, 2009

A Two Day Event: SDLC in a Box on July 15-16, 2009

This 2 day event will focus on application life-cycle management, we will review how one may leverage TFS and VSTS on a project, from initial conception through requirements gathering, design, development, testing, build & review processes. We will demonstrate integration with non-Microsoft development and best-of-breed partner solutions & offerings for Visual Studio 2008 Team System.

For additional information please see http://www.sdlcinabox.com/

Target Audience:
This two day sessions is targeted for Developers, Architects, Project Managers, DBAs and Business Analysts looking for ALM and researching Team Foundation Server.

1. Alexei Govorine:
Co-Founder of the
Central Ohio ALM Group
ALM/.NET Practice Manager for Quick Solutions
2. Mike Gresley:
MS SLG Dev Tools team
David Baliles:
MS SLG Dev Tools team
Co-Founder of the SDLC in a Box program

Capitol Annex Bldg: Room 171, 700 Capital Avenue Frankfort, KY 40601

July 15-16, 2009 from 9-4:30 PM

Registration Link: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032418198&Culture=en-US

Draft Agenda of the event topics:
Day 1:

  1. Introductions
  2. SDLC in a Box: Background
  3. Application Lifecycle Management
  4. VSTS & TFS Overview
  5. Customization / Setup
  6. Team Explorer Overview (Security, Collaboration, Alerts, Source Control)
  7. Work Item Management (Tools for Managing Requirements)
  8. Architecture

Day 2:

  1. Database
  2. Development
  3. Unit Testing & Test-Driven (TDD)
  4. Code Promotion: Building & Deploying code
  5. Functional Testing
  6. Branching & Hotfix Demonstration
  7. Reports
  8. Q&A
  9. (optional) Lap Around VSTS 2010