title: TFS2010 build queue sometimes has multiple InProgress builds and sometimes not - what is the logic?
body: <p>My fairly-large project uses gated builds, with a heavily-customized process template (XAML). For reasons beyond the scope of this question, our process has a single SharedResourceScope, so multiple builds don't run in parallel (I know you're supposed to do that with an Agent scope, but we switch agents in the middle, so wrapped everything with the SharedResourceScope).</p>
  
  <p>Now, if there are several check-ins in queue, all of them go into "In Progress" state, and all but one wait on the SharedResourceScope. This means that:</p>
  
  <ul>
  <li>People can't know which build is actually running</li>
  <li>Even if I set a new queued check-in to be high-priority, it can't overtake all those who are in progress and waiting on SharedResourceScope, so the whole priority setting has little meaning.</li>
  </ul>
  
  <p>I've experimented using DefaultProcessTemplate.XAML, and I see that usually only one build is In Progress (though Occasionally I see 2 builds).</p>
  
  <p>Questions:</p>
  
  <ol>
  <li><p>When exactly does a build start, and therefore goes into "In progress" mode? What prevents all builds from starting immediately, and blocking on AgentScope / SharedResourceScope?</p></li>
  <li><p>Is there something I can author in my XAML to prevent all builds to go in progress?</p></li>
  </ol>