Tuesday, May 19, 2015

TFS Build vNext: Mind Your P's and Q's

With the recent movement of the new TFS Team Build (also known as Build.vNext) into public preview, a lot of excitement is building in the ALM community about the features, ease of use and improved experience that the new build system is bringing.  There are blog posts and articles starting to surface about how to set up agents and builds, deploy applications to Azure and set up continuous integration and continuous delivery pipelines.
This is not one of those posts.
Instead, I want to focus on one of the behind-the-scenes features that make vNext tick.  Specifically, I’m talking about minding your P’s (agent pools) and Q’s (agent queues).  Queues are what process incoming messages (triggers) for build requests, and pools are collections of build agents that are available to process the requests coming in from the queue.
There isn’t any official guidance from Microsoft on how queues and pools should be established.  That’s not to say there should be, per se: the queue/pool setup is pretty straightforward and maintains a 1:1 relationship.  That being said, it may behoove you to set up separate queues in certain situations.  For example, you may want to create queues per application to funnel triggers toward a specific pool of agents for development teams or products.  You might also want to split up queues by operating system, in the event you are building apps with cross platform capabilities, and require the native OS components to build them.  In my walkthrough “Building Cross Platform Apps with Apache Cordova and Build.vNext“, I decided to use the OS approach to illustrate how multiple queues would work, as well as helping to isolate the OS-specific functions needed to complete the tutorial.  FrankenQueues
Does that mean you have to do that?  Nope.  In fact, for a lot of situations you could just stick with the default queue/agent pool setup and allow the build agents to be selected based on the requirements laid out in the Demands section:
The demands listed (such as visualstudio, vstest, and java) will route the build to any agents that are online and able to satisfy those demands.  There are other settings that also factor into what agent is selected, but the easiest way to control what build goes where is to set up the demands section to have specific needs that match up with agents you have in your build ecosystem.

Sunday, May 10, 2015

TFS Storyboarding: Give your Vision a Visual!

While the concept of storyboarding has been around for quite some time, it’s not entirely clear that the practice outweighs the theory when it comes to usage in the field. In addition, some tools can be costly and may not be able to integrate well with your SDLC. One tool that is free of charge, and integrates nicely into an existing SDLC with a minimal learning curve, is the TFS storyboarding add-in for PowerPoint.
The add-in allows you to leverage PowerPoint to put together a step-by-step flow of your concept that is easy to understand and gives developers and other technical colleagues a reference point when reviewing PBIs. Having that visual helps quite a bit when you are trying to establish work items to go along with those PBIs, and gives all parties involved a better sense of security that requirements are being properly conveyed to the team whose responsibility it is to bring them to life.  While not true of every organization, many companies do have Office 2007 or greater, which is half the battle.  In order to install and use the TFS storyboarding add-in you must also have a copy of Visual Studio Premium, Ultimate or Test Professional (2012 and 2013 are supported currently).
You do not need to have TFS in order to use this add-in.  It relies more on Visual Studio than it does TFS or Visual Studio Online.  You can launch storyboarding from both of these platforms, though, which is convenient.  You can also link a storyboard directly to a TFS work item.  A great overview of how to use the add-in can be found on the Microsoft Developer Network’s site.  One of the key features of this add-in is the ability to create, import and export custom storyboarding shapes.  These can be anything from your company logo to screen mock-ups that are specific to internal applications you work with to icons and device types.  There are some great community-backed shapes posted in the Visual Studio Gallery, including iPad/iPhone shapes, Windows 8 shapes and even a nifty branching and merging shape which could be used to storyboard existing or new branching/merging strategies for your code base.  You can also find some re-sizable storyboard shapes in the Microsoft Visual Studio Team Foundation Server 2013 Power Tools extension.
Despite there being a slight learning curve on using the add-in and getting storyboarding started for your team, I guarantee that once you do, figuring out what the customer wants will no longer be a gamble and will more likely be a sure bet.