We’ve got part of our Project API down; now we need to use that to calculate a projected completion date. The requirement is to calculate the project’s end date based on the number of tasks finished in the last three weeks. We’ll appropriate the agile term “velocity” to describe the rate of task completion. To make this work, we need to distinguish between tasks that concluded in the last three weeks and tasks that did not.
That means we have to deal with dates.
Programming with dates and times is the worst. Time is especially problematic in testing because tests work best when each test run is identical. However, owing to the nature of the universe, the current time inexorably changes from test run to test run. This ...