When there is a critical path within a sprint that is contained within the agile team developing that sprint there are additional challenges compared to a sprint where there are no dependencies between the tasks. This becomes even more of a challenge when there are dependencies on another team, in another organisation, who are not running an agile project. How should these types of dependencies be managed effectively while maintaining an agile sprint orientated approach at home?

Suppose the next sprint contains 60 points worth of work for the team and one of those tasks is to test a web-service interface. In our sprint we're developing the client and we have a milestone in the critical path plan stating that the service will be ready for unit testing on date X. The testing is estimated at 10 points and the sprint is 30 days long so at a push we don't want to be forced to complete this in 5 days or less.

At the outset its best to organise the sprints in such a way that we are able to start this testing as early in our sprint as early as possible. If we have a sprint that starts 5 days or so before date X that will fit just fine. Similarly if we have a sprint that ends 10 or 5 days after date X we may want to wait until the next sprint to start the testing. That depends on how much testing is required of course and I guess we're assuming there may be a little re-work to account for so we don't want to have the unnecessary complication of not completing it within the sprint - although that may not be entirely within our control.

The next problem comes when the third party misses their milestone. This is another reason to plan the milestone early into our sprint. Suppose we have estimated the task at 5 ideal days - as the milestone is missed the burn-down chart may indicate that we're behind - certainly towards the end of the sprint. There is a danger here of using the sprint to gold plate other stories which must be avoided and this is achieved by declaring an early end to the sprint. This is preferable to extending the sprint as we don't know how long to extend it by - but we do know when to end it. This task can be added into the next sprint which can start early to accommodate the extra task.