VS Live is Coming to Chicago this May! Special Discount for ALM User Group & Friends

by Angela March 01 2013 10:29

email header2

So in case you haven’t noticed, Visual Studio Live is coming back to Chicago after many, many years of not being here.  This makes me very happy because a) I don’t have to pay for a flight and hotel in L.A. or Seattle, and b) well, see a) because cost is one factor that makes attending great conferences like this so hard to do for some of us.  Regular price of admission is $1,995 for the full 4 days, which isn’t bad when you think of all the awesome content you get.  Early bird registration ends soon and saves you $300 but wait, there’s more! Actually it’s more discount that I can give you.

In case you did not make it out to the last Chicago Visual Studio ALM User Group you may have missed out on the discount code that I was able to get for all of you.  Sign up right now using the links in this email (or the code UGCH1) and you’ll save $500 off of the $1995 registration too, so it would be only $1495 for the full 4 day pass! 

  • Visual Studio Live! Chicago tracks include:
  • ASP.NET
  • Azure / Cloud Computing
  • Cross-Platform Mobile
  • Data Management
  • HTML5 / JavaScript
  • SharePoint / Office
  • Windows 8 / WinRT
  • WPF / Silverlight
  • Visual Studio 2012 / .NET 4.5

 

So no travel costs, no hotel stay, AND save 25%. How can you NOT go? Hope to see you at our next meeting, and at VS Live Chicago this May!

Tags:

ALM | Application Lifecycle Management | Azure | Entity Framework | MSDN | TFS 2012 | Visual Studio 2012 | git | development | Visual Studio | Team Foundation Server | Cloud Computing | HTML5 | Silverlight | .NET 4.5 | VS Live

How to Fail a Build without a Code Review

by Jacob Maki December 11 2012 02:40

I recently had the opportunity to create a build that would fail if certain file types did not have a passing code review in TFS.  For those who would like to do something similar, I’ll detail the way I accomplished it.

Handling Code Reviews

Obviously, the first step in this process is having a way to keep track of the code reviews themselves.  For that, I used the Scrum 2.0 template that comes with TFS2012.  For those not using TFS2012 yet, you can import the Code Review Request and Code Review Response work item types in to a TFS2010.  If you’re not using Visual Studio 2012, then you’ll need to modify the layouts of those work item types so that all the inputs aren’t read only.  Once this part is done, this will associate a change set to a code review.

Creating the Custom Build Activity

The custom activity will need a few parameters to work its magic.  First, it’ll need an instance of IBuildDetail to fail the build if there is non-reviewed code.  An instance of a team project collection is needed as well – it’ll be used to get the work item store to check for code reviews.  It’ll also need a list of change sets in the build to check.  Lastly, it’ll take what file types to check (for example, “.sql,.cs” or blank for all) and a Boolean specifying if the build should be failed or not (it’s a lot easier to change that variable than to remove the activity from the build if a situation arises where the code review can be skipped).  Here’s what the parameters look like:

///<summary>
/// Gets or sets the build detail
///</summary>
[RequiredArgument]
[Browsable(true)]
public InArgument<IBuildDetail> BuildDetail { get; set; }

///<summary>
/// Gets or sets the team project collection.  Use Microsoft's GetTeamProjectCollection activity.
///</summary>
[RequiredArgument]
[Browsable(true)]
public InArgument<TfsTeamProjectCollection> TeamProjectCollection { get; set; }

///<summary>
/// Gets or sets the changesets to check for code reviews
///</summary>
[RequiredArgument]
[Browsable(true)]
public InArgument<IList<Changeset>> Changesets { get; set; }

///<summary>
/// Gets or sets the comma separated list of files types to check (for example, ".sql,.cs").  An
/// empty string means all files require review.
///</summary>
[Browsable(true)]
public InArgument<string> CommaSeparatedFileTypes { get; set; }

///<summary>
/// Gets or sets a value indicating whether the build will fail if there is non-reviewed code
/// matching the specified file types.
///</summary>
[Browsable(true)]
[RequiredArgument]
public InArgument<bool> FailBuildOnNonReviewedCode { get; set; }

An Overview of the Process

At a high level, the execute method of the custom activity will check all the change sets to see if there is any code without a passing code review, output the files that don’t have a passing review, and optionally fail the build.  Here’s what the execute method looks like:

/// <summary>
/// Performs the execution of the activity
/// </summary>
/// <param name="context">The execution context under which the activity executes</param>
protected override void Execute(CodeActivityContext context)
{
    #region Validate arguments and parameters

    if (context == null) { throw new ArgumentNullException("context"); }

    TfsTeamProjectCollection teamProjectCollection = context.GetValue(TeamProjectCollection);
    if (teamProjectCollection == null) { throw new ArgumentException("Team Project Collection cannot be null."); }

    IBuildDetail buildDetail = context.GetValue(BuildDetail);
    if (buildDetail == null) { throw new ArgumentException("Build Detail cannot be null."); }

    IList<Changeset> changesets = context.GetValue(Changesets);
    if (changesets == null) { throw new ArgumentException("Changesets cannot be null."); }

    #endregion

    ICollection<string> filesTypesRequiringReview = ParseFileTypesRequiringReview(context.GetValue(CommaSeparatedFileTypes));
    bool failBuildOnNonReviewedCode = context.GetValue(FailBuildOnNonReviewedCode);

    WorkItemStore workItemStore = teamProjectCollection.GetService<WorkItemStore>();
    IEnumerable<Change> nonReviewedChanges = DoesBuildHaveNonReviewedCode(workItemStore, changesets, filesTypesRequiringReview);

    bool anyNonReviewedChangesets = false;
    foreach (Change nonReviewedChange in nonReviewedChanges)
    {
        anyNonReviewedChangesets = true;
        HandleChangeWithoutPassingReview(context, failBuildOnNonReviewedCode, nonReviewedChange);
    }

    if (anyNonReviewedChangesets && failBuildOnNonReviewedCode)
    {
        buildDetail.Status = BuildStatus.Failed;
    }
}

Checking for Non Reviewed Code

To check for non-reviewed code, the code will loop through all the change sets and check each change to see if the file matches the file types requiring review.  If it does, it then checks to see if there’s a passing code review.  If the change doesn’t have a passing review, it’s returned so the build can output all the files that still need a review.  Here’s the code:

/// <summary>
/// Determines if the build has any changesets that have not been reviewed
/// </summary>
/// <param name="workItemStore">Work item store</param>
/// <param name="changesets">Changesets</param>
/// <param name="filesTypesRequiringReview">File types requiring review (empty collection means all)</param>
/// <returns>Changes without a passing review</returns>
private IEnumerable<Change> DoesBuildHaveNonReviewedCode(WorkItemStore workItemStore, IList<Changeset> changesets, ICollection<string> filesTypesRequiringReview)
{
    foreach (Changeset changeset in changesets)
    {
        // The changeset object passed in may not contain the associated changes (depending on how this is executed - workflow versus unit test)
        Change[] changes = changeset.Changes.Length > 0 ? changeset.Changes : changeset.VersionControlServer.GetChangesForChangeset(changeset.ChangesetId, false, int.MaxValue, null);

        foreach (Change change in changes)
        {
            bool matchingFileToCheck = DoesChangeRequireReview(change, filesTypesRequiringReview);

            if (matchingFileToCheck)
            {
                bool hasPassingCodeReview = DoesChangesetHavePassingReview(workItemStore, changeset);

                if (!hasPassingCodeReview)
                {
                    yield return change;
                }
            }
        }
    }
}

Determining if the Change Requires a Review

 A change requires a review if the file type matches the file types passed in (or if none were passed in, then every file requires a review).

/// <summary>
/// Determines if the change requires review
/// </summary>
/// <param name="change">Change</param>
/// <param name="fileTypesRequiringReview">File types requiring review</param>
/// <returns>True if a passing review is required, else false</returns>
private static bool DoesChangeRequireReview(Change change, ICollection<string> fileTypesRequiringReview)
{
    bool matchingFileToCheck = fileTypesRequiringReview.Count == 0;

    foreach (string fileType in fileTypesRequiringReview)
    {
        if (change.Item.ServerItem.EndsWith(fileType, StringComparison.CurrentCultureIgnoreCase))
        {
            matchingFileToCheck = true;
        }
    }

    return matchingFileToCheck;
}

Determining if the Change Set Requires a Review

This is the crux of the code.  To determine if the change set has a passing review, we query the work item store based on the change set ID.  In Visual Studio / TFS 2012, code reviews aren’t linked to the change set as one might expect.  This is because code reviews can be associated with a change set or a shelve set.  As a result, the change set objects passed in to the code won’t have the associated code review work items.  Instead, we have to check the context field.  Here’s the code:

/// <summary>
/// Determines if the changeset has a passing code review associated with it
/// </summary>
/// <param name="workItemStore">Work item store</param>
/// <param name="changeset">Changeset</param>
/// <returns>True if the changeset has a passing review, else false</returns>
private static bool DoesChangesetHavePassingReview(WorkItemStore workItemStore, Changeset changeset)
{
    Query query = new Query(workItemStore,
        string.Format(CultureInfo.InvariantCulture,
        "SELECT [Id] FROM WorkItemLinks WHERE "
        + "[Source].[System.WorkItemType] = 'Code Review Request' "
        + "AND [Source].[Microsoft.VSTS.CodeReview.Context] = '{0}' "
        + "AND [System.Links.LinkType] = 'Child' "
        + "AND [Target].[System.WorkItemType] = 'Code Review Response' "
        + "AND ([Target].[Microsoft.VSTS.CodeReview.ClosedStatusCode] = 1 OR [Target].[Microsoft.VSTS.CodeReview.ClosedStatusCode] = 2) " // 1 = Looks Good, 2 = With Comments
        + "mode(MustContain)",
        changeset.ChangesetId)
        );

    return query.RunCountQuery() > 0;
}

Outputting Files without a Review

If the build fails because there is code without a passing review, it’s extremely helpful to know what files still need to be reviewed.  The DoesBuildHaveNonReviewedCode method returns the list of non-reviewed changes.  Depending on whether or not we’ll be failing the build, the code outputs those files accordingly:

/// <summary>
/// Takes the appropriate actions when a changeset does not have a passing review
/// </summary>
/// <param name="context">Context</param>
/// <param name="treatAsError">True if the message should be treated as an error, else it will be a warning</param>
/// <param name="change">Change</param>
private static void HandleChangeWithoutPassingReview(CodeActivityContext context, bool treatAsError, Change change)
{
    if (treatAsError)
    {
        WriteBuildError(context, string.Format(CultureInfo.CurrentCulture, UnreviewedFileMessageTemplate, change.Item.ServerItem));
    }
    else
    {
        WriteBuildWarning(context, string.Format(CultureInfo.CurrentCulture, UnreviewedFileMessageTemplate, change.Item.ServerItem));
    }
}

Adding the Activity to the Build Template

Next we need to place the custom activity in our build definition.  The “Associate Changesets and Work Items” activity produces a list of change sets in the build.  We’ll need that along with a GetTeamProjectCollection activity.  Here’s the placement:

Passed Parameters

I made file types and Boolean to fail the build with non-reviewed code parameters.  This way I can modified what file types require review and if the build should fail or not without having to update the XAML.

Results

Here’s what it looks like when run the build when it’s set to fail on non-reviewed code:

And here’s what it looks like when you treat it as a warning: 

Tags:

ALM | Application Lifecycle Management | development | Team Foundation Server | TFS | TFS 2010 | TFS 2012 | Visual Studio | Visual Studio 2012 | VS 2010

So You Were Forced to Use the dreaded TFS Collection /Recover Command, Now What?

by Angela October 11 2012 08:23

Since we have used Recover on a production database and lived to tell the tale I thought I would share our experiences. If you read this post you will know that one of my client’s got themselves into a world of hurt where we needed to restore a nightly backup that was not detached.  I know, I know, detached backups, or using the TFS Database Backup Power Tool to backup and Restore, are the way to go.  Well, now THEY know that too Winking smile  Nonetheless, sometimes you may find yourself needing to recover a TFS Team Project Collection (TPC) database, and if you’ve read the MSDN documentation you’ll know this is not an ideal situation. The Recover command is very lossy, BUT you get your data back. And in our case it was worth the risk.

So here is the backstory…  Someone deleted a Test Plan with a month’s worth of data in it, and if you know MTM you know there is no “undelete”. Restoring a backup was our only hope. BUT our nightly backups are SQL backups of the entire SQL Server instance, so undetached (we are addressing this NOW). The TFS Backup Power Tool does not detach the databases before backing them up, but it automates something a bit more complicated to allow you to restore single collections from a full backup. Plucking one TPC out of what we had, and attaching it to the TFS instance was just not an option.  You cannot attach a collection that thinks it is already attached.  Trust me, I know. And unfortunately we did not have extra hardware sitting around to allow us to restore the entire thing to a different instance to detach it properly.  So here is what we did:

  1. Restore the backed up TPC from the nightly backup into our dev TFS environment
  2. Used the TFSConfig /Recover command, followed by TFSConfig /Attach to get it attached in dev
  3. Used the TFSConfig /Recover command to get the TPC into the proper state
  4. Detach the hosed TPC from production
  5. Restore that detached version of the TPC to production
  6. Attach the backup to production (we actually hit an interesting bug in TFS 2010 at this point, so the attach was quite harrowing and involved an emergency hotfix to our TFS sprocs, I may blog about later.)

Now, I would love to say everything was perfect but the recover command did blow away some things that we had to get back into place before people could use the TPC again.  What we lost:

  1. All the security setting ever!
    • Collection level groups and permissions
    • Team Project (TP) level groups and permissions in every TP in the TPC
    • Permissions around Areas and Iterations in every TP in the TPC
    • Permissions around Source Control in every TP in the TPC
  2. SharePoint settings  (in every TP in the TPC). Settings on the SharePoint server themselves will be fine of course but you will probably see a “TF262600: This SharePoint site was created using a site definition…” error when you try to open the portal site that was once attached to those TPs. You will need to fix this in 2 places.
    • Go to TFS Admin Console, select the TPC you just restored and make sure the SharePoint Site settings for the TPC are correct. It will probably be set to “not configured” now.
    • Open team explorer (as an Admin user), and for each TP go to “Team Project Settings | Portal Settings” and verify everything there is correct. Ours were just plain gone so we had to enable the team project portal and reconfigure the URL.
  3. SSRS Settings – this will probably be fine if you restored the database as-is but we also renamed it as part of the restore, and so had to update the Default Folder Location through the Admin Console for the TPC in order for this to work again.

So word to the wise, make sure you understand what the settings above are for all of the TPs in your TPC BEFORE you perform a Recover command because chances are you will have to manually set them all back up. And please, PLEASE backup your TFS databases properly.

Tags:

ALM | Application Lifecycle Management | MSDN | MTM | Microsoft Test Manager | Microsoft Test Professional | TFS | TFS 2010 | Team Foundation Server | VS 2010 | Visual Studio | TFS Administration

Visual Studio 2012 Launch Event Coming to Chicago in September!

by Angela August 29 2012 04:50

You might have heard that the official launch of Visual Studio 2012 is coming soon! Alas we cannot all afford to hop on a plane and head out to Washington State to party with the product team. BUT, lucky for you, there are also going to be local launches held at major cities across the U.S. You might not have noticed because all the marketing jazz has been heavily focusing on the Windows Azure part of that event, but there is going to be some great content around the development tools as well. Now you know!

Join Polaris Solutions at this free launch in Oak Brook, IL (about 20 miles west of Chicago) event to check out some of Microsoft’s newest leading-edge tools, including Microsoft Visual Studio 2012, Windows Azure, Windows Server 2012, and Microsoft System Center 2012. You'll get the opportunity to engage with the experts (like me), get hands on with the new technology, and learn how to build modern applications both on-premises or in the cloud using the Microsoft platform.

A special Visual Studio 2012 launch track was recently added to the CHICAGO event with a keynote from Brian Harry himself. I know, cool right?! Smile In his talk, you will learn about how Visual Studio 2012 can help you evolve your development practices to maintain relevancy, adapt to change and deliver on the needs of the business, rise to the challenge of the “New Normal”, and elevate your skills to keep pace with the fast changing world of application development and delivery. Be sure to stop by after the keynote and visit us at the Polaris Solutions booth as well!

At the event, you will also be able to participate in a raffle for a chance to win an Xbox 360 + Kinect Bundle.  Get registered soon before it sells out:  https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032521310&Culture=en-US&community=0

Tags:

ALM | Application Lifecycle Management | Microsoft Test Manager | Microsoft Test Professional | SDLC | TFS 2012 | TFS | Team Foundation Server | Visual Studio | Visual Studio 2012

August Chicago ALM User Group - Announcing Git Integration with TFS

by Angela August 16 2012 10:43

I know, Microsoft supporting non-.NET developers and non-Windows folks? Inconceivable! ::gasp:: 

OK, so if you’ve been paying attention for the past couple of years, you might already know that this has been happening slowly. But recently there have been some seriously MAJOR developments. First, Microsoft made Entity Framework open source, and now they have added MVC, ASP.NET and more to that list. Dogs and cats, living together, mass hysteria…and all that.  Then when you thought it couldn’t get crazier, they announced TFS integration with Git!  My head just exploded a little, how about yours?

Come to the Chicago Microsoft office on August 29th and meet one of the TFS product team members, you heard it, ONE OF THE DUDES WHO WRITES CODE FOR TFS ITSELF! Edward Thomson will be discussing how to take advantage of the new git-tf tool to synchronize a local git repository with Team Foundation Server.  This cross platform bridging tool is especially useful for cross-platform developers, such as iOS developers on Xcode.

Edward Thomson is a Software Development Engineer at Microsoft, where he works on cross-platform version control tools for Team Foundation Server.  Before joining Microsoft, Edward worked on numerous source code control tools for Microsoft and Unix platforms.

Register now to make sure you get a spot. Building security also requires it, and it helps me not order gobs of food no one will show up to eat.  So help a girl out huh?

Tags:

ALM | Application Lifecycle Management | MSDN | SDLC | TFS | Team Foundation Server | VS 11 Beta | Visual Studio | Open Source | git | TFS 2012

Microsoft Test Manager (MTM) Tip O’ the Day–Filtering test lists

by Angela July 03 2012 07:41

Now, I am no @ZainNab, the guru of “Tips and Tricks”, but I occasionally run across features that have been staring me in the face for YEARS and yet somehow went completely unappreciated, sometimes unnoticed.  And then one day it hits me and OMG my life is easier, and I want to tell everyone.  Sure, it’s a bit embarrassing to admit sometimes given that I worked at Microsoft for 5.5 years focusing on the Visual Studio tools, but who hasn’t done that?  Not you? Really?  I am skeptical…  There are after all, a bajillion commands to try and remember. For real, if you don’t believe me, look at the entire book that Sara Ford and Zain wrote about it. It’s worth every penny and Amazon has a great deal on it, pick up a copy! Smile

So, back to my point. I was sitting in MTM, looking at a fairly daunting list of PBI based test suites, thinking “now which PBI’s were the ones where I had test cases to run again?”  I started thinking about writing a query, but that only helps is YOU are assigned to the test case, it doesn’t really help with test RUN assignment. Then it all came flooding back.  Wait, there’s this FILTER button to sort that out.  And conveniently it’s right there in front of my face ::face palm::  I felt a little better when no one else admitted to noticing it was there either. Maybe they were just being nice to me.  Either way, in case you didn’t notice it, check it out. Before:

Untitled

After, I have MUCH fewer test suites that I have to look at:

Untitled2

That’s my Microsoft Test Manager tip o’ the day!  I won’t be posting them every day like Zain has been doing on his blog around Visual Studio 2010 for the past couple of years, of course I also don’t mainline 5 hour energy like he does Smile  I will do them whenever I can.  Hope this was helpful! Feel free to post any tips of your own or shoot me a note if you have other questions or comments.

June ALM User Group Meeting–Acceptance Testing Using SpecFlow!

by Angela May 17 2012 06:12

Get ready, we have a packed summer full of great topics at the Chicago Visual Studio ALM user group! Be sure to join us in beautiful downtown Chicago at the Aon Center in June for this next session on how to improve your user acceptance testing practices using SpecFlow! Be sure to pre-register on our user group site so we can get you entered into the security tool, and please do keep us posted if you have to cancel! We don’t like throwing away food and it helps me to order the right amount.

Topic Description:

Imagine a project you’ve worked on in the past. Whether or not you or your organization makes use of Agile processes, you probably spent a good deal of time going back and forth with business stakeholders on the fine detail of how the software you’re building should behave. It’s possible you had to dedicate effort simply to producing a demo that the business will appreciate and understand. It’s even more likely that at some point, you and the business had disagreement(s) on whether something was “working”, “finished”, or “done”. Those types of discussions can leach away at your team’s time, expend effort, and impact morale as well as create tension between development teams and the business.

Now imagine if you could instead pour that blood, sweat, and tears into developing your application’s functionality. Imagine a scenario where new features are authored test-first, by non-tech staff in a plainly understandable, shareable, and versionable text format. Imagine a situation where the same set of specifications can be shared to drive a browser-based test suite at the same time that the specifications drive an integration test suite. These are the types of scenarios that tools like SpecFlow are particularly well-suited to address.

Unit tests are great for verifying atomic pieces of software functionality, but they are very poor at capturing and communicating specifications at any other resolution than fine-grained. They’re also completely useless to a non-technical user attempting to understand a system’s functionality.

This is where acceptance testing enters the picture. Although commonly classified as BDD (Behavior-driven design), tools and frameworks like SpecFlow serve to bridge the gap between proving the correctness of a piece of code from the inside, micro perspective and the correctness of an application as a whole from the outside perspective.

In this talk, we’ll go over what acceptance testing is, when it should be used, and how to add acceptance testing into an existing application using SpecFlow. We’ll also talk a bit about DSLs (domain-specific languages), the pyramid of returns vs. effort when it comes to different types of testing, techniques for authoring and designing tests and bindings, and finally, because this *is* a group about ALM, how to integrate SpecFlow into a CI environment and why you or your organization should do so.

If attendees wish to follow the demo on their laptops, they can save time by pre-installing the VS tooling for SpecFlow – http://specflow.org. The download there adds some tooling support within the VS IDE, and is not needed to run SpecFlow.

 

Speaker Bio:

Josh Elster is the founder and principal of his independent production and consulting company, Liquid Electron. With clients ranging from small media design shops to multi-billion dollar corporations, Josh’s experience spans a number of different sectors, projects, and roles. In February of 2012, Josh joined the community advisors board for Microsoft’s Patterns and Practices team for the CQRS journey project (http://cqrsjourney.github.com), as well as being a contributor. Like the common cold, but without the whole being ill aspect, it is Josh’s hope that he can infect others with his passion for software development. When not serving as Patient Zero, Josh can be found reading, playing video games or guitar, or coding. His website can be found at http://www.liquidelectron.com. His Twitter handle is @liquid_electron. His most recent demonstration project, the PostcardApp, can be found at http://www.postcardsfromskyrim.net.

Tags: , , , , , , , ,

Agile | ALM | Application Lifecycle Management | SDLC | Testing | User Acceptance Testing | VS 2010 | SpecFlow | domain-specific languages | DSL

An interesting Quest (pun intended)…into Agile testing!

by Angela May 09 2012 08:57

So there is a fantastic little conference gaining steam in the Midwest called Quest, which is all about Quality Engineered Software.  If you’ve never heard of it, you should seriously check it out next year regardless of your role.  As I have always said, Quality is NOT the sole responsibility of the testers, and this conference has something for everyone.  I was fortunate enough to be introduced to the local QAI chair who runs the conference the first year it ran (2008), which lucky for me also happened to be in my back yard.  I was with Microsoft at the time, and we had opted in as the biggest conference sponsor, cause let’s be real - who on earth in QA ever thought “Yeah, Microsoft has some awesome testing tools”.  ::crickets::  Right.

At the time VSTS (remember THAT brand? Smile with tongue out) was still new-ish, and the testing tools were focused almost entirely on automated testing. Yeah, I know, TECHNICALLY there was that one manual test type but let’s not even go there.  I know a few, like literally 3, customers used the .MHT files to manage manual tests in TFS, but it wasn’t enough. The automated tools were pretty awesome, but what we found was that MOST customers were NOT doing a lot of automation yet. Most everyone was still primarily doing manual testing, and with Word and Excel, maybe SharePoint. We had a great time at Quest talking to testers and learning about what they REALLY need to be happy and productive, we got the word out on VSTS and TFS, and started planning for the next year.  I was able to be part of Quest as a Microsoftie in early 2009 as well, when the 2010 tools (and a REAL manual test tool) were just starting to take shape, and then the conference spent a couple of years in other cities.  Fast-forward to 2012 when Quest returned once again to Chicago.

I was no longer a Microsoftie, but if you’ve ever met me you know that working a booth and talking to as many people as possible about something I am passionate about is something I rock at, and enjoy! So I attended Quest 2012 again this year, this time as a guest of Microsoft.  I worked the Microsoft booth doing demos and answering questions about both the 2010 tools and the next generation of tools, and WOW did we get some great responses to them.  Particularly the exploratory testing tools.  I am pretty sure the reverse engineering of test cases from ad-hoc exploratory tests, and 1-click rich bug generation that sent ALL THE DATA EVER to developers gave a few spectators the chills. I certainly got a lot of jaws dropping and comments like “THIS is a Microsoft tool?!” and “I wish I had this right now!”. It was pretty great.

I was also fortunate enough to also get to attend a few pre-conference workshops, keynotes and a session or two.  I have to say, WOW, the conference is really expanding, and I was very impressed with the quality of the speakers and breadth of content.  As a born again agilista, I was so pleasantly surprised to see an entire TRACK on Agile with some great topics.  I was able to attend “Transition to Agile Testing” and “Test Assessments: Practical Steps to Assessing the Maturity of your Organization“ and learned quite a bit in both sessions.  One disappointment, there is even more FUD out there in the QA world than what I see in the developer world when it comes to Agile, what it actually means and how it SHOULD be practiced.  I’m not about being a hard core “to the letter” Scrummer or anything, but I also am not about doing it wrong, calling it Agile, and blaming the failure on some fundamental problem with Agile.  There are lots of Agile practices that can be adopted to improve how you build, test and deliver software, without going “all in”, and that was something I kept trying to convey whenever I spoke up.

I heard “Agile is all about documenting as little as possible”, “Agile lacks discipline”, “Agile is about building software faster”, and all of the usual suspects you would expect to hear.  No, it’s about "documenting only as much as is necessary; there is a difference!  Agile requires MORE discipline actually.  People on Agile teams don’t work faster, they just deliver value to the business SOONER than in traditional waterfall models, which sure, can be argued is “faster” in terms of time to market.  The only thing that will make me work faster would be a better laptop and typing lessons.  I still look at the keyboard, I know :: sigh::   I am highly considering doing a session next year on Mythbusting Agile and Scrum, to help people understand both the law and the spirit of Agile practices.  Overall it was great to see that the QA community is also embracing Agile and attempting to collaborate better with the development side of the house. We just need the development side to do the same Winking smile  I also met at least a dozen certified Scrum Masters in my workshops as well, which was great to see! 

One of my favorite parts of the conference was of course getting to catch up and talk tech with Brian Harry.  He was the first keynote presenter of the conference, and spoke on how Microsoft “does Agile”, the failures and successes along the way, and even spent some time talking about his personal experiences as a manager learning to work in an Agile environment. I.LOVED.THIS. Yeah, I’m a bit of a Brian Harry fan-girl, but it really was a fantastic talk, and I had many people approach me in the booth later to comment on how much they enjoyed it. My favorite part was Brian admitting that at first, even HE was uncomfortable with the changes. It FELT like he was losing control of the team, but he eventually saw that he had BETTER visibility and MORE control over the process, and consequently the software teams.  It was brilliant.  So many managers FEAR Agile and Scrum for just those reasons. It’s uncomfortable letting teams self organize, trusting them to deliver value more often without constant and overwhelming oversight by project managers, and living without a 2 year detailed project plan - that in all actuality is outdated and invalid as little as a week into the project.  Wait, WHY is that scary? Sorry, couldn’t let that get by.

And so off I go again, into the software world, inspired to keep trying to get through to the Agile doubters and nay-sayers, and to help teams to adopt Agile practices and tooling to deliver better software, sooner.

Tags:

Agile | ALM | Application Lifecycle Management | TFS 2010 | SDLC | Team Foundation Server | Testing | Test Case Management | User Acceptance Testing | VS 11 Beta | VS 2010 | Visual Studio | development

May Chicago Visual Studio ALM User Group–Let’s talk about TFS Service, VS 11 and TFS 11

by Angela April 27 2012 05:39

Due to very popular demand to hold a VS 11 session out the the burbs, we are repeating the session held at the Aon Center in February, and are tweaking it a bit. Topics to be covered will include (but are not excluded to):

  1. ALM Ranger Guidance
  2. TFS Service Preview, a.k.a. TFS in the Cloud – what is it all about?
  3. New Agile Planning Tools
  4. Client Feedback Tool
  5. Story Boarding tool
  6. Team Explorer Changes (the code review feature is pretty hot!)

We may add some more items to that list, or refine it a bit, so be sure to check back closer to the meeting for more specifics.  And certainly let me know if you have any special requests!

Location: Microsoft Office - 3025 Highland Pkwy, Ste 300, Downers Grove, IL

When: Wednesday May 23rd, 6:30PM dinner followed by presentations and demos

Register here!  Please do register, as the security desk REQUIRES a list of folks to allow into the building at least 24 hours in advance.   And do keep in mind that we do our best to order food based on the number of attendees. IOW, if you need to cancel PLEASE let us know so we can adjust the food order so as not to waste our limited funding, well and of course food. Let’s NOT be wasting food.

Speakers

Prasanna Ramkumar is a Senior Consultant for Magenic Technologies and a VS ALM Ranger. He has extensive experience in implementing custom solutions using Microsoft development technologies for Magenic’s clients and provides ALM consulting to them using TFS. He has led and mentored several client projects using Scrum and is well versed in Agile methodologies. As a Ranger, Prasanna has been creating the hands on labs for the upcoming TFS11 Project Guidance and is actively reviewing other projects guidance.

Jim Szubryt is the TFS Product Manager and ALM Team Manager for the Enterprise Workforce at Accenture in Chicago. Jim’s TFS Team supports 1,300 developers in the global development centers. The ALM Team provides ALM guidance and assessments of the internally developed applications. Jim is also in the VS ALM Rangers program and has worked on the CodedUI guidance, TFS11 Upgrade guidance and TFS11 guidance on Teams. Prior to Accenture Jim worked at Magenic Technologies where he implemented TFS for clients and worked on a wide range of development projects.

Angela Dugan is the ALM Practice Manager for Polaris Solutions. Prior to joining Polaris, Angela Dugan was a technology evangelist with Microsoft focusing on Visual Studio and TFS group for over 5 years, and a software developer and architect for a small consulting firm in the western suburbs of Chicago for 8 years before that.

Tags:

ALM | Agile | Application Lifecycle Management | SDLC | TFS | Team Foundation Server | Test Case Management | User Acceptance Testing | VS 11 Beta | Visual Studio | Testing | Work Item Tracking | development | TFS Rangers

Sneak Peek of Visual Studio 11 - Coming to a City Near You!

by Angela April 24 2012 06:34

You may have noticed a little hoopla lately around the coming version of Microsoft Visual Studio’s ALM product line. I’ve been using it for a few months now, and it’s pretty rad! I came across a great set of events coming soon to several cities across the Midwest, to give you a sneak peek at the new ALM capabilities in Visual Studio 11 and Team Foundation Server 11.

This half-day event of presentations and demos will be delivered by your local Microsoft Technical Specialist. In case you are thinking, “my Microsoft whosit?”, 6 months ago this would have been me, so maybe that helps if you knew me before I was a Polarisian, Polarisite, uhhh, I’ll work on that one.  Click below for the city schedule in your area and to view full session descriptions for each event:

Date

Location

Registration URL

5/9/2012

Indianapolis

AM Session - Visual Studio 11

5/11/2012

Chicago

AM Session - Visual Studio 11

5/15/2012

Milwaukee

AM Session - Visual Studio 11

5/17/2012

Downers Grove

AM Session - Visual Studio 11

LOOKING TO EXPERIENCE WINDOWS AZURE? Join us in the afternoon at the same location for a BONUS event. Who doesn’t like a bonus?!  After each ALM event noted above, a Hands-On Experience with Windows Azure will also be happening, where Microsoft will explore how to leverage the Windows Azure platform for your own applications. Microsoft experts will show off the platform's powerful features, walk through tools to get started, and guide you in building and deploying your first cloud based application. The great news for MSDN subscribers is that you get Windows Azure cloud computing benefits for free every month with your subscription. Click below to register for the afternoon session!

Date

Location

Registration URL

5/9/2012

Indianapolis

PM Session - Hands On with Windows Azure

5/11/2012

Chicago

PM Session - Hands On with Windows Azure

5/15/2012

Milwaukee

PM Session - Hands On with Windows Azure

5/17/2012

Downers Grove

PM Session - Hands On with Windows Azure

Visual Studio 11 Beta!

Prepare for the next generation of development. You can’t predict the future, but you can get there first! TRY the Visual Studio 11 Beta Today!

Tags:

ALM | Agile | Application Lifecycle Management | MSDN | TFS | SDLC | Team Foundation Server | Testing | User Acceptance Testing | VS 11 Beta | Visual Studio | Work Item Tracking | Azure | Cloud Computing