Steve Lange @ Work

Steve Lange's thoughts on application lifecycle management, Visual Studio, and Team Foundation Server

  • Steve Lange @ Work

    VSTS For Database Professionals Among Jolt Award Winners for 2007 Announced at SD West Expo

    • 0 Comments

    I just attended the 2007 Jolt Awards at the SD West Expo in Santa Clara.

     

    In case you haven’t already seen it, Microsoft had quite a few nominations and received two “Productivity Awards” (honorable mentions), and one Jolt Award!  See below:

     

    Jolt Award Winner:

    • VSTS For Database Professionals - Database Engines and Data Tools category (Matt Nunn accepted)

    Productivity Awards:

    • Team Foundation Server – Change and Configuration Management  (winner was AccuRev)
    • IronPython – Development Environments  (winner was NetBeans IDE)

    There were other tools that won or were mentioned that complement, integrate, or support either Visual Studio or the .NET platform.

     

    For a complete list of nominees (and soon-to-be-posted winners):  http://www.joltawards.com/2007/

     

  • Steve Lange @ Work

    Released: Team Foundation Power Tools V1.2

    • 0 Comments

    In case you haven't seen this yet..

    Team Foundation Server is happy to announce the release of  version 1.2 of Team Foundation Power Tools (formerly known as Power Toys).  In this release we’ve added 2 new command line tools for the developer and 3 non-command line tools.   This version includes some bug fixes to previous Power Tools, support for Vista, and adds the following new functionality:

    • Workspace Command (tfpt.exe) - Use the workspace command for additional workspace operations not supported in the currently shipping Team Foundation Server command line (tf.exe).
    • Treeclean Command (tfpt.exe) - Use the treeclean command to see and optionally delete files in the current directory and all subdirectories that are not under version control.
    • Process Template Editor - A tool to provide UI for authoring work item types and some of the associated Process Template components. 
    • Check-in Policy Pack - A set of handy check-in policies to address needs customers have expressed.
    • Build Test Tools Task - A tool that allows running unit tests by simply specifying the DLLs or even specifying a file name pattern in TfsBuild.proj, instead of using .vsmdi files to specify tests to run.

    Please note that the Process Template Editor has some additional pre-requisites, they are identified on the download page. 

    You can locate the Team Foundation Power Tools V1.2 release here and you can get help on the forums for these tools here.

  • Steve Lange @ Work

    Why are all the links broken in the Team Foundation Server install guide?

    • 0 Comments

    I get asked this question a lot.  You download the latest and greatest version of the guide, open it, and you can't access any of the help items!

    TFS installation guide blocked content

    This is because the .chm file (the installation guide help file) is "blocked" for security reasons.  To resolve this, simply right-click on the file and select Properties.  You'll notice that there is an "Unblock" button at the bottom. 

    TFS Installation Guide file Properties

    Click that button, and click Ok to close the Properties dialog.  Lastly, re-open the installation guide and you should be set!

    TFS Installation Guide - fixed content

    To download the TFS installation guide, go here:  http://go.microsoft.com/fwlink/?linkid=40042

    The TFS install guide is quite comprehensive.  It covers walkthroughs & checklists for both single- and dual-server deployments, system requirements, security, and install guides for the Build Server, Proxy, and Team Explorer.

    Have fun!

  • Steve Lange @ Work

    Tag: I guess I’m it

    • 1 Comments

    Are you kidding me?  People are using blogging, this great communications medium, to play TAG?  So let me get this straight:  I mind my own business, don't over-blog because I try to only post meaningful stuff here, and now because I've been "tagged" I need to reveal 5 things about myself.  All thanks to Grace Francisco.

    1. I used to sing in a barbershop quartet.  Not the whole nine yards with the ‘stache and hat, but the tunes were the same.  It was in high school, and for that age, I believe we were quite good.  We called ourselves the Talismen (a “talisman” is a good luck charm), and placed 9th nationally in a collegiate competition (and beat out the other 2 high school entries so we could call ourselves #1 in the nation).
    2. My kid is the coolest kid on the planet.  No, seriously.  I’m sure yours is great, and I know I’m biased; but I don’t care. 
    3. When it comes to sports, I’m not a fair-weather fan.  I’m no more a Colts fan now than before they won the Super Bowl.  I grew up in Northern California as a 49ers fan, and I remain one to this day.  I’ve always been a Lakers fan, not just because I live in Southern California and they historically have done well, but because I like them.
    4. I can cross one eye at a time.  Tons of people can cross their eyes, but I can cross just one.  The fun part is looking right, then moving the right eye to the left (crossing the eyes), and finally moving the left eye out to the left (to finish up looking to the left).  You can cheat this by looking right, then crossing your eyes, then looking left.  The true test is to do it as slowly as possible.
    5. My single biggest pet peeve is people not being prepared in the security line at the airport.  If you haven’t flown since 9/11, then I’ll cut you some slack.  But if you’re obviously a semi-regular traveler, you’ve got to know that you’re going to have to remove all metal from your pockets, remove your shoes, take off your jacket, take out your laptop, etc.  So why can’t you do some/all of that before you get to the front of the line?  Seriously, I put all my metal stuff (phone, keys, cell phone) in my carry-on and remove my laptop before I even get in line.  That way all I have to do is remove my shoes when I get there.  I simply can’t understand it.

    In the interest of keeping my friends my friends, I’ll end the madness with me and not tag anyone else (at least for now).

  • Steve Lange @ Work

    Where's my old Borland blog?

    • 2 Comments

    I think the folks at Borland have finally removed my StarTeam blog.  With the inception of CodeGear, CG seemed to take over the blog server, and removed me. 

    I honestly haven't touched it since leaving Borland, but several former colleagues and customers have emailed me wondering if the content is still available somewhere (I had a lot of how-to's and SDK samples posted).  I honestly don't think it's archived anywhere, but I've asked the CodeGear folks via email, and will post the URL if it's still posted somewhere.

  • Steve Lange @ Work

    My 2 cents on Areas and Iterations in Team Foundation Server

    • 29 Comments

    There’s not a huge amount of best practice info out there regarding areas and iterations.  One interesting place to look at is a blog post that describes how the Visual Studio team uses them (http://blogs.msdn.com/ericlee/archive/2006/08/09/when-to-use-team-projects.aspx)

     

    So here are my 2 cents (you can see how much that's worth these days!) on Areas and Iterations. 

     

    Areas

    To me, areas are ways of tagging or organizing objects within a Team Project.  Typically, areas are used to define either logical, physical, or functional boundaries.  It’s a way to slice and dice a normally large project effort into more manageable, reportable, and easily identifiable pieces. 

     

    For example, let’s say we have a tiered web application managed in a single TFS project called “MySite”.  There are 3 major components to this app:  the web site, a web service, and a database.  If this is a decent-sized application, you might have 1,200 tasks in the system for this project.  But how do you know to which component a given task belongs?  What if I only wanted to see tasks for the web service piece?  Areas are a convenient way to handle this.  Set up areas like this:

     

    MySite

       \Web Site

       \Web Service

       \Database

     

    Now you can specify an area of assignment for each task (work item), making it easy to effectively filter what you want to look at/work on.  You can use areas in both queries and reports as well.

     

    You may optionally want to further dissect those major components to be even more specific:

     

    MySite

       \Web Site

          \Layout & Design

          \Navigation

          \Pages

             \Contact Us

             \Homepage

             \Links

       \Web Service

          \Performance

          \Security

       \Database

          \Performance

          \Security

          \Schema

     

    One final aspect of Areas to consider is security.  You can set security options on each Area node which can dictate not only who can change the areas, but also who can view or edit work items in a particular Area.

     

    Iterations

    So if you think of Areas as slicing and dicing by “space”, think of Iterations as slicing and dicing by “time”.  Iterations are like “phases” of a lifecycle, which can dissect the timeline of a project effort into more manageable time-based pieces. 

     

    So going back to the “MySite” example, say the project management team wants to split the entire project into 3 cycles, Phase 1, Phase 2, and Phase 3.  Thus, your Iterations can mirror that:

     

    \MySite

       \Phase 1

       \Phase 2

       \Phase 3

     

    These Iterations can be phases within the entire life of a project, or phases within a given release of a project.  So if “MySite” is going to have multiple releases over time, my Iterations might look lik this

     

    \MySite

       \Release 1.0

          \Phase 1

          \Phase 2

          \Phase 3

       \Release 2.0

          \Phase 1

          \Phase 2

          \Phase 3

     

    Now you have categorization options for both space and time (now if only we had a continuum..) for your project, allowing you to assign your tasks or other work items not only to the appropriate functional area (Area), but also to the phase (time cycle) of the project.

  • Steve Lange @ Work

    VSTS Database Professional Launch Events Coming Your Way!

    • 0 Comments

    Take a look to find the closest of the 23 cities hosting a launch event!

    http://www.teams-deliver.com/

  • Steve Lange @ Work

    Overview of ‘Data Dude’ aka Visual Studio Team Edition for Database Professionals

    • 1 Comments

    I would like to invite you to a webcast designed specifically for our customers in the West Region.  This event, presented by William Salazar  – Microsoft will cover Microsoft Visual Studio Team System and will include technical and solution overviews. 

    Microsoft® Visual Studio® 2005 Team System is the best integrated software development platform to build the mission-critical applications that businesses depend on. It extends Visual Studio’s integrated and productive experience from the developer to the entire development team by delivering powerful new role-based tools for software architects, developers, testers and project managers. It also includes an integrated team server and customizable processes to help teams drive predictability, visibility, and control into their software development process.

    Overview of ‘Data Dude’ aka Visual Studio Team Edition for Database Professionals
    11/29/06, Wednesday, 10:00 a.m. – 11:30 a.m., LiveMeeting
    Visual Studio Team Edition for Database Professionals delivers a market-shifting database development product designed to manage database change, improve software quality through database testing and bring the benefits of Visual Studio Team System and life cycle development to the database professional. This webcast will cover the main features of the Database Professionals product like:
    -   Schema Management
    - Controlling Database Change
    - Data Generation for Tests
    - Database Unit Testing
    - Improving Collaboration and Communication
    Presented by:  William Salazar, Microsoft
    Audience:  IT Managers and Professional Developers, DBAs, Architects and Testers
    Prerequisites:  Previous experience with Microsoft Visual Studio Tools and technologies
    Registration URL:  http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032316244
    Event ID:  1032316244

  • Steve Lange @ Work

    TFS Deployment Across Two Non-Trusted Domains

    • 0 Comments

    There isn't a lot of documentation out there that covers deploying Team Foundation Server across two non-trusted domains.  This is not to say that TFS simply won't work this, but that there is simply not a lot of deployment documentation to support this scenario. There is an MSDN forum post (http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=177844&SiteID=1) that discusses it, but no formal guidance. 

    The below is a diagram outlines a deployment configuration that should support this scenario.  Again, it's not formal documentation, but rather a visualization of a workable scenario. 

    The full-size image is attached to this post
    The full-size image is attached to this post.

  • Steve Lange @ Work

    Where can I download the TFS Workgroup edition from MSDN?

    • 0 Comments

    Login to your MSDN Subscribers area.  Go to downloads.  Expand the tree to:
    Developer Tools->Visual Studio 2005->English->Visual Studio 2005 Team Foundation Server Workgroup Edition (English)

    Now, to keep the download size somewhat manageable, you will also need to download SQL Server 2005 Standard Edition (also on MSDN).  The actual media for TFS should include this install.

  • Steve Lange @ Work

    What's this? Visual Studio Team System for Database Professionals?

    • 1 Comments

    Yep, we actually do consider database developers first-class citizens in the SDLC!

    http://msdn.microsoft.com/vstudio/teamsystem/products/dbpro/default.aspx

  • Steve Lange @ Work

    SoCal Team System Community Site

    • 0 Comments

    We've launched the SoCal Team System Community site (http://www.SoCalTeamSystem.com/).  Our goal is to provide a more centralized area for Team System-related information that's specific to Southern California.

    In the interest of time, the initial site leverages Office Live Beta (http://officelive.microsoft.com/).  We are planning to create a custom site to eventually replace it (with much more content, discussion forums, etc); but for now, you can still find general Team System information, SoCal events, and information about MS office locations.

    Enjoy!

     

  • Steve Lange @ Work

    But wait! I want the FULL version of Team Foundation Server, not a demo!

    • 0 Comments

    The Team Foundation Server bits which you can download from MSDN (find it here) represent the full product - complete functionality and connectivity.  The only difference is that there is a evaluation time limit of 180-days.  Once you obtain your product key, you can simply enter your product key and remove the time limit.

  • Steve Lange @ Work

    Where can I download Team Foundation Server from MSDN?

    • 0 Comments

    ogin to your MSDN Subscribers area.  Go to downloads.  Expand the tree to:
    Developer Tools->Visual Studio 2005->English->Visual Studio 2005 Team Foundation Server Trial Edition (English)

    Now, to keep the download size somewhat manageable, you will also need to download SQL Server 2005 Standard Edition (also on MSDN).  The actual media for TFS should include this install.


  • Steve Lange @ Work

    Where can I find the VSTS Virtual PC Image?

    • 0 Comments

    If you're looking for a quick way to "sandbox" Team System and Team Foundation Server, you can download a fully-configured VPC image from the MSDN Subscribers download area.

    Login to your MSDN Subscribers area.  Go to downloads.  Expand the tree to:
    Developer Tools->Visual Studio 2005->English->Visual Studio 2005 Team Suite Trial Edition (For Evaluation Only)
    Get the downloads for:
     Visual Studio 2005 Team System VPC – Part 1 of 2 (English)
     Visual Studio 2005 Team System VPC – Part 2 of 2 (English)

    That will give you a full Virtual PC image with TFS already installed and configured, and the Team Suite edition of Team System installed. 

     

  • Steve Lange @ Work

    Upcoming VSTS Webcasts by the West Region team

    • 1 Comments

    The western region DPE team is hosting twice-a-month webcasts from March through June.  The first Friday of each month will cover a general platform overview, and the third Friday of each month will feature a specific topic area.

    Upcoming sessions:

    March 17th (10AM PST) – Deep Dive on TFS Source Control - https://www.livemeeting.com/cc/microsoft/join?id=XST7PM&role=attend&pw=w%3D%3AjNFP5d
    April 7th – Team System Platform Overview - https://www.livemeeting.com/cc/microsoft/join?id=DKCD6B&role=attend&pw=x%3FM5%7EM%26Gt
    April 21st – Team Build - https://livemeeting.microsoft.com/cc/microsoft/join?id=3JSJ46&role=attend&pw=Q%5Dm6Cn4%5BD
    May 5th - Team System Platform Overview - https://www.livemeeting.com/cc/microsoft/join?id=QM2NMQ&role=attend&pw=zGfj%7B7%3D%3AX

    As Live Meeting information becomes available, I will try to update this post.

  • Steve Lange @ Work

    Team Foundation Server: Capacity Planning

    • 0 Comments
    A quite useful post from Buck Hodgeshttp://blogs.msdn.com/buckh/archive/2006/02/22/tfs_size_estimation.aspx
  • Steve Lange @ Work

    Who's using Team System?

    • 0 Comments

    Grace Francisco consolidates the most notable adoption case studies into a blog post:

    http://blogs.msdn.com/graceworld/archive/2006/02/06/526267.aspx

  • Steve Lange @ Work

    Is Team System Right for You?

    • 1 Comments
    Find out:  http://blogs.msdn.com/slange/articles/527711.aspx
  • Steve Lange @ Work

    Big news from Borland

    • 0 Comments

    Borland announced this morning two big moves:

    • The acquisition of Segue Software
    • The divesting of their IDE product lines.

    The purchase of Segue should help them better round out their ALM/SDO offering by being able to tout their own QA toolset.

    Borland is looking for a buyer of their IDE products, one that will keep the business unit intact and allow the tools to be further developed.  While this is sad news for those with Borland nostalgia, I think it'll be great for developers in the long run.  Borland admittedly lost some of their focus on developers (which was the main focus when the company was founded) over the past couple years.  A new infusion of attention and funds into the IDE's (C++Builder, C#Builder, JBuilder, and Delphi) should give the loyal followers something to cheer about.

    http://www.borland.com/us/company/news/Tod_Nielsen_customer_shareholder_letter_02-08-06.html

    This is a bold, but positive move for Borland.  The biggest challenge now is getting all of these products tightly integrated together - no clunky import/export or field-created utilities.  If that can get done in the short-term, along with Tempo, their story will be pretty compelling.

    Now, how does this affect Microsoft's Team System offering?  Not too much, actually.  VSTS is, and will continue to be, the premier offering for .NET development environments.  For one-stop, end-to-end SDLC solutions, Team System can satisfy all the major roles of the lifecycle.  Borland may still push a "Developer" role in their offering, but now it will be by way of integrating with 3rd parties (Microsoft, Eclipse, or wherever their IDE's land).

     

  • Steve Lange @ Work

    Do I have to use requirements for my project?

    • 0 Comments

    (this is a post moved from my old blog.  My old blog post now links to this one)

    I've been asked this a few times now:  "If I have a functional or technical requirement, why do I need tasks?  The requirement IS my task, right?"

    The answer is, as is the case for most topics of debate in the world of PM/RM/CM/SCM (enough already!), it depends!

    (NOTE: Before reading further, try to dissassociate these terms from actual physical entities in a tool.  By this I mean, don't think of MS Project whan I mention a "task", and don't think of a Word document when I discuss "requirements.")

    Requirements and tasks, while they both can be interpreted as instructions for work, inherently have attributes unique to themselves.  To explore and identify these attributes, let's look at the definition of each.

    Requirements

    A requirement, defined by our friends at dictionary.com is:

    1. Something that is required; a necessity.
    2. Something obligatory; a prerequisite

    Does this definition mention that this is an instruction for work?  Yes and no.  While a requirement doesn't necessarily state "Go do this," it does have that implication.  For example:

    FR 101:  The system shall provide a search mechanism.

    All vagueness aside, this requirement doesn't actually directly say, "Build a search mechanism".  It more simply states that in order for this project to be successful, there needs to be a search mechanism.  But the task itself is implied:  "The system shall provide a search mechanism[, so go make one]."

    Requirements are success criteria, answering "Why are we doing this?", and "What exactly is this thing going to be?"

    If you have a relatively small team, detailed requirements, and don't see the need to record work done against requirements implementation in much detail, then simply using requirements as "assignments of work" may be perfectly feasible.

    Tasks

    A task is defined as:

    1. A piece of work assigned or done as part of one's duties.
    2. A difficult or tedious undertaking.
    3. A function to be performed; an objective.

    Tasks, by definition, are much more explicit in their direction to a particular consumer.  They specifically attribute themselves to a consumer as a unit of work to be done.

    Tasks are work criteria, answering "What exactly am I supposed to do?"

    If you have a need for more granular work tracking, or your requirements are defined in a way that it may take multiple consumers or efforts to implement them, I'd recommend using tasks to at least some degree. 

    Using Requirements and Tasks Together

    The easiest way to see a marriage between requirements and tasks is by admitting that some requirements may need multiple things to be done to be implemented.  Take our earlier sample requirement:

    FR 101:  The system shall provide a search mechanism.

    Simple enough, right?  Well, to implement this requirement, perhaps a search dialog needs to be created.  A database query needs to be established.  The actual search operation itself may need to be threaded to minimize impact to the foreground application.  If you're a PM managing your development team, you may want to know more specifically what your developer is working on today than, "I worked 5 hours on FR 101".  You will see better reporting metrics if instead you can see, "I worked 2 hours on the search dialog, and 3 hours on the database query."

    So what?  Why does all this matter?  Whether or not you use both requirements and tasks, or just one type of artifact, is ultimately up to you.  But take a gander at user scenarios/needs that I've experienced, and you might get a better idea of what to do in your environment:

    Scenario/Need Possible Solution
    Small team, most with multiple roles.  Fast, "crank-it-out" style of develoment, with customer-defined requirements. Requirements.  You may not care about how the customer's needs break down into units of work, and your team is small enough that everyone pretty much knows everyone else's load.
    Medium-sized team, with BA's, PM, and developers.  Quick-churning style, but requirements are more refined, and are managed independently of development effort. Requirements + Tasks.  If requirements are managed separately from development, and are refined "on the fly", breaking requirements down into development tasks will better provide the PM control over the work assignments of his/her team.
    Large-sized team, with BA team, possibly more than one PM, dev leads, and developers. Requirements + Tasks.  A team of substantial size needs to have measures behind different phases of software delivery, for load-balancing, productivity tracking, cost allocating, and often regulatory compliance.  The PM, or even the VP of App Dev, will need metrics to see how requirements are being translated into workload in the development phase.
    Small- to medium-sized team.  Little or no customer-focus ("grassroots" application). Either, not necessarily both.  You can use requirements as elements of work, and capture overall implementation, or use tasks to simply define the work to be done (the task itself will imply the requirement).

    Well, that's my 2 cents.  I know there are many opinions out there (I'm sure there are even more approaches!) about this topic.  The beauty of having multiple solutions to an issue such as is this that it allows us PM's and SCM guys to keep jobs!

  • Steve Lange @ Work

    Group-based Permissions in Team Foundation Server

    • 1 Comments

    Two scenarios will be discussed in this post:  Single Hat and Multiple Hats.

     

     

    Base Scenario:

    You have 3 people:  Joe, Sally, and Dave

    You have 3 main roles: Developer, Tester, Reviewer

    You also have 3 projects: Project A, Project B, and Project C

     

     

    Scenario #1: Single Hats

    Team members wear only one hat in the enterprise.  A Developer for one project is a developer for all projects – the same for Tester and Reviewer.

     

    The roles that Joe, Sally and Dave play are the same for every project:

     

    Developer

    Tester

    Reviewer

    Project A

    Joe

    Sally

    Dave

    Project B

    Joe

    Sally

    Dave

    Project C

    Joe

    Sally

    Dave

     

    The simple setup for this in Team Foundation Server is to use generic role-based groups:

     

    Team Foundation Server

          \Developers

                \Joe

          \Testers

                \Sally

          \Reviewers

                \Dave

     

    When configuring your Team Project’s permissions, simply grant each group the desired rights.  This will allow any subsequent users to be added to the environment with ease (just add them to the group that fits their role).

     

     

    Scenario #2: Multiple Hats

    Your team may have roles that vary by project.  A good way to support this in Team Foundation Server is to create role-based groups on a per-project basis.

     

    The roles that Joe, Sally and Dave play vary with each project:

     

    Developer

    Tester

    Reviewer

    Project A

    Joe

    Sally

    Dave

    Project B

    Dave

    Joe

    Sally

    Project C

    Sally

    Dave

    Joe

     

     

    The inherent problem with using generic role-based groups (as in Scenario #1) is that in this scenario, everyone would have full rights to each of the three projects because each person belongs to each group:

     

    Team Foundation Server

          \Developers

                \Joe

                \Sally

                \Dave

          \Testers

                \Joe

                \Sally

                \Dave

          \Reviewers

                \Joe

                \Sally

                \Dave

     

    A more practical approach is to use project-specific, role-specific groups.  This adds several extra groups, but more effectively manages access control at the project level:

     

    Team Foundation Server

          \Project A - Developers

                \Joe

          \Project A - Testers

                \Sally

          \Project A - Reviewers

                \Dave

          \Project B - Developers

                \Dave

          \Project B - Testers

                \Joe

          \Project B - Reviewers

                \Sally

          \Project C - Developers

                \Sally

          \Project C - Testers

                \Dave

          \ Project C - Reviewers

                \Joe

     

     

  • Steve Lange @ Work

    Integrating Project Server and Team System

    • 0 Comments
    There is a GotDotNet Workspace that is developing an integration between Project Server and TFS:  http://www.gotdotnet.com/workspaces/workspace.aspx?id=b9f69ea5-ace1-4a21-846f-6222a507cc9c
  • Steve Lange @ Work

    Team Foundation Server: Beta 3 Refresh vs. CTP

    • 2 Comments
    Which to use for evaluation?  Well it depends on you ultimately might use the evaluated TFS install as your production server.  Keep this important note in mind.  The Beta 3 Refresh version carries a go-live license, which means that Microsoft will provide a supported migration path to the RTM version of TFS.  The CTP version does NOT carry the same promise.
  • Steve Lange @ Work

    Web Interface to Team Foundation Server

    • 1 Comments
    Here's a promising one in the works:  http://www.devbiz.com/teamplain/default.aspx
Page 14 of 15 (353 items) «1112131415