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

No comments: