Bamboo has a neat feature where it will use the previous build times to give an estimation of time remaining on a build. This seems pretty easy to do; basically:
- Take the last 5 successful builds for a (buildable, build plan) combination and get the amount of time they took
- Calculate the average and render it out to some hidden field on the page
- When rendering the page, also output the current time elapsed
- Use some fancy Javascript to calculate the initial remaining time and count it down as time passes
- Display some fancy progress bar based on this