Recent work on the Countdown Widget for VSTS
Countdown Widget is one of the oldest Ranger extensions. This extension was part of the first batch of extensions developed for VSTS to showcase the new extensibility mechanisms. Over time it has become a valued (top 25) extension with well over 6000 VSTS installations. However, there were several feature requests that have remained unaddressed for a while. Over the last couple of weeks we have pushed a number of changes in Countdown Widget in order to address these requests. Because of the reactions we got in response to the changes, we want to share in this blog what we have done, and why. We also want to look forward and share some of the future work we intend to do.
Countdown and time zones
Right from the start, creating countdown widget got us into a well-known area of trouble: time zones. Showing the number of days remaining to a certain date and time did not always produce the result expected by our users.
Some users were expecting the number of days to round up or down to full days. Other were expecting the widget to account for the local time and to include the current day (or not) in the count, depending on the number of work hours left on the local day.
Due to this difference in expectations, we have been receiving feedback for over a year that the countdown widgets were not displaying the remaining number of days to a deadline correctly, especially for teams that are distributed over multiple time zones.
To address this issue, we decided to display the number of days remaining with a fraction as shown in Figure 1. We believed that this would clearly demonstrate that the widget shows the total time remaining to the deadline.
Within hours after we started displaying fractions for the number of days remaining we began receiving feedback from the community. First a bug was reported via Twitter: when the number of days remaining became larger than 100, the number would be truncated. Luckily, we were able to release a fix for the issue within the day, mostly thanks to a reliable CI/CD pipeline that we have come to trust.
After this fix, new feedback came in. A number of users did not want the widget to display the number of days remaining in more detail at all. This issue was reported on our GitHub repository and two days later we had the first pull request from a contributor outside of the Rangers!
For us, this proves that the Countdown Widget is still a gap filling solution that is providing value to the community and that we should continue supporting it.
However, we also learned that we had to be careful when it comes to changing the way an existing extension works. All VSTS users of the extension will always get the latest version automatically and cannot upgrade at their own discretion. For us this meant that we must make sure we do not change existing behavior, and thus surprise our users.
The engagement from the community showed us that the Countdown Widget was valuable and that we needed to do more work on it. So next to displaying a fraction, we have made a small number of other changes to Countdown Widget in response to user requests:
- We expanded the color choice to no longer allow just eight predefined colors, but to allow selection of any other color
- We added a choice to change the background color of the Countdown Widget when a deadline gets closer than a specified number of hours or days
Here we applied our lessons learned, designing both these changes to only add new options and in no way change existing behavior, to prevent breaking users' dependencies on existing behavior again.
Next in addition to the changes already made, we are considering making two more changes to the Countdown Widget that we would like to share:
- Expand the rounding options when displaying the number of days left. Currently you have the possibility to either round the number of days to the closest whole number or display the number of days with one decimal. We intend to add two more options, namely to always round the number up or to always round down.
- We are also considering piloting an addition to the Countdown Widget. We intend to add a new, third widget to the extension: A fancy countdown as shown in figure 2. This will be an animated countdown of the time remaining to either the end of the sprint or to a custom date and time.
Figure 2 – Fancy countdown
Here we are again applying the lessons learned: The reason we are pushing this new look as a new, third widget is to prevent breaking existing user dependencies on Countdown Widget.
Thanks to the reviewers of this post: Lia Keston, Niel Zeeman