Due date as an attribute
This page highlights the thinking and solution for sequencing of tasks
Problem Statement
Often times, an objectives has a sequence of initiatives/ key results/ tasks to be achieved for its achievement. An objective owner should be able to quickly view how these things add up and a potential delay in one might lead to delay of an objective.
Eg: O: Launch of Grocery in an e-commerce company by end of March
KR1: Lot managed inventory capability by supply chain - mid March KR1.1: To build a tech platform for lot managed inventory - end Feb KR1.2: Hire/ Ramp up the field ops capacity -end Feb KR1.3: Training for the new tech platform for the field ops -mid March KR2: Invoicing and accounting for Lot managed inventory -mid March
Currently we do not have any structural way of solving this as someone may or may not write timelines in the objective title text.
Solution
Sequencing of things means having a start date and end date. Once people have a due date, it's up-to them to work backwards from there. Just having due date solves a large part of this planning and hence we would only have a due date and not a timeline view (start and end date)
We propose having due-date as an attribute in the OKR card
Due-date will not be an optional column like team
While tagging a due-date to an OKR card, you can only tag today/ future dates but not expiry dates.
Alert
If a KR's due-date is beyond the parent objective's due-date, we would show a marker on the parent Objective's due-date attribute. Hovering on this will show:
At least one of the key results is beyond your due-date
Note that the alert is part of the attribute state and hence would show up at both places- the OKR card as well as the activity details page.
When does the alert vanish?
Once, an objective date is greater than all KR due-dates, the marker gets removed. Otherwise, it remains there.
Activity Feed updates on due-date
Due-date is also an attribute in the OKR card and hence any changes to this should reflect in activity feed as well. [Please use the status change template for this change as well]
Special Case (Moving an objective which is of longer duration under an O)
Perform the move action, check for all due-date conditions & send alert if needed.
Filter on Due-Date
We also need filters to have conditions that helps users get what's due at the moment. Hence we would be having the following filter conditions in this category (Due by) --
OverdueOKRs- shows all objectives which have a due date < current dateDue this week- shows all objectives which are due for this week. The "week" end is marked by Sunday by default.Due next week- shows all objectives which are due for this week and the upcoming week.Due this month- shows all objectives which are due for this month end. Month end will be marked by end of month (30/31 for regular months , 28/29 for feb)Custom date selection: A user can pick a date in the filter and we would show all objectives which are due by this date. We would capture the timelines and improve our overall filter conditions on this attribute as we go forward.
Sorting filter results
For now we would keep the sorting logic same (default sorting logic for filter output) as we would soon build sort as a feature to handle all essential sorting criteria. Refer to the sorting logic here:
Notification for Due-date changed (Both in-app and email)
We would update parent owner when a KR owner changes a due-date of any KR. "XYZ" changed the due-date from "ABC" to "PQR" for "Objective" (use the status change template for the above)
Due-Date based reminders (to be scoped out)
We would show Report for overdue and due this week;
Reporting requirements
We would want to see:
% cases where due-date for KR's is beyond Objectives?
We want to capture the date the use takes an action as well as the date that the user inputs into the field to get better filter conditions.
Open Questions?
How will an international client use this feature? Will they see accurate dates? If so is frontend going to handle it? We need to provide support for different timezones for this feature.
Last updated
Was this helpful?