Avoiding Overload: Strategies for Effective Time Management
How Not to Drown in Projects? Discoveries of Systemic Thinking in Time Management. Join the journey to optimize workflows and increase productivity!
In our work, we often encounter the overuse of time and resources, especially when a large-scale project lands on our plate. I recently faced such a scenario, which compelled me to rethink my approach to time and project management. In this post, I want to share the lessons that have helped me improve how I organize tasks and projects.
Using the Creative Pipeline
For a long time, I successfully used what I called a "creative pipeline" to organize my work. This system included:
Time investment and tracking
Systematic slow reading
Thinking through writing
Organizing leisure
Creating a conducive environment
Strategizing
Planning
This approach is rooted in the practices taught at the School of Systemic Management, specifically in the "Self-development Practices" course. However, when a major project came my way, I realized that my current methods were inadequate for the scope of my tasks.
Challenges with a Large-Scale Project
During the large project, my regular, smaller tasks came to a standstill. They didn’t progress for two weeks, posing a serious issue. Not only did I end up working non-stop by the project's end, but I also had to catch up on routine tasks afterward. Clearly, this isn’t a healthy or sustainable approach.
Rethinking Work Methods:
Review of Checklists and Work Volume Assessment Techniques: To avoid such situations in the future, I started by reviewing my checklists and work volume assessment techniques for my main activities. Honestly, I had no formalized checklists for planning work volumes before this. Now, even in their first iteration, these checklists are incredibly helpful. They allow me to better understand the real scope of tasks and plan my time accordingly. The core idea was inspired by Atul Gawande’s book "The Checklist Manifesto."
Weekly Strategic Review: During the weekly strategic reviews, I began to pay more attention to assessing available resources of time and money. These reviews are detailed weekly audits based on the GTD method described by David Allen.
The Importance of Assessing Total Resource Volume:
One of the key changes in my approach was adding a new step in my weekly strategizing - assessing the total volume of resources and expected outcomes. At this step, I evaluate whether I have enough time for planned projects and adjust my plans as necessary, postponing or pausing less urgent tasks.
Often, we take on more than we can handle, leading to adverse outcomes. I’ve learned that it’s sufficient to estimate work volumes broadly, without excessive detail, which can be done using project management software with Gantt charts, etc. For me, it’s enough to:
Estimate the necessary time for the project overall, roughly planning for 1 to 3 tasks ahead, no more.
Plan the next steps for only the upcoming week during our weekly review. Even this step clarifies the situation and avoids uneven workloads. It’s essential to match the results of the weekly analysis with your schedule or your production capacity for the upcoming week. I have pre-calculated it in the form of a schedule, estimating the amount of time available for the week considering time slots.
For time analysis, I automatically compile a table and calculate metrics using the Dataview plugin.
To gather this information, I use notes tagged with 'Project' and the following properties:
Date review - the date of the weekly review when I plan to review the project’s outcome.
Planned time for the first stage, hours
Planned budget, RUB - rubles are optional :)
Expected result.
Additionally, in the note where the query code is executed, I have a 'Date' property where I indicate the current date when I conduct the weekly review. The code itself looks like this:
const { DateTime } = dv.luxon;
const today = dv.current()["date"];
//const today = DateTime.now();
const startOfWeek = today.startOf('week');
const endOfWeek = today.endOf('week');
const startOfLastWeek = startOfWeek.minus({ weeks: 1 });
const endOfLastWeek = endOfWeek.minus({ weeks: 1 });
// Getting pages with the "Project" tag
const projects = dv.pages("#Project")
.filter(p => p.Status === "1.Priority" && p.file.name !== "_Templates");
// Function to determine the review date
const getReviewDate = (project) => {
const reviewDate = project["Date review"];
if (reviewDate) {
const date = DateTime.fromISO(reviewDate);
if (!date.isValid) {
return null;
}
return date;
}
return null;
};
// Splitting projects into two groups and sorting
const thisWeekProjects = [];
const nextWeekProjects = [];
projects.forEach(project => {
const reviewDate = getReviewDate(project);
if (reviewDate) {
if (reviewDate <= endOfWeek) {
thisWeekProjects.push({ project, reviewDate });
} else {
nextWeekProjects.push({ project, reviewDate });
}
}
});
// Sorting by review date
thisWeekProjects.sort((a, b) => a.reviewDate - b.reviewDate);
nextWeekProjects.sort((a, b) => a.reviewDate - b.reviewDate);
// Function to check if the review date is before last Sunday
const isReviewBeforeLastSunday = (reviewDate) => {
return reviewDate && reviewDate < endOfLastWeek.plus({ days: 1 });
};
// Calculating the total planned time and budget for this week's projects
let totalPlannedTime = 0;
let totalPlannedBudget = 0;
thisWeekProjects.forEach(({ project }) => {
totalPlannedTime += parseFloat(project["Planned time for the first stage, hours"]) || 0;
totalPlannedBudget += parseFloat(project["Planned budget, rub."]) || 0;
});
// Getting the value of the "Normal work week hours" property from the "Invested time" note
const investedTimeNote = dv.page("Invested time");
const normalWorkWeekHours = investedTimeNote ? investedTimeNote["Normal work week hours"] : null;
const plannedTimePercentage = normalWorkWeekHours ? ((totalPlannedTime / parseFloat(normalWorkWeekHours)) * 100).toFixed(2) : "Value not found";
// Displaying the table of projects for this week
dv.header(5, "Projects for the planned week");
dv.table(["Projects", "Planned time for the first stage, hours", "Planned budget, rub.", "Expected result"],
thisWeekProjects.map(({ project, reviewDate }) => [
isReviewBeforeLastSunday(reviewDate) ? `⚠️ ${project.file.link}` : project.file.link,
project["Planned time for the first stage, hours"],
project["Planned budget, rub."],
project["Expected result"]
])
);
// Displaying totals
dv.paragraph(`Total planned time for the first stage: **${totalPlannedTime} hrs. - ${plannedTimePercentage}%** of ${normalWorkWeekHours} hrs. (file Invested time)`);
dv.paragraph(`Total planned budget, rub.: ${totalPlannedBudget}`);
// Displaying the table of projects for next week
dv.header(5, "Projects for the next weeks");
dv.table(["Projects", "Review date", "Planned time for the first stage, hours", "Planned budget, rub.", "Expected result"],
nextWeekProjects.map(({ project, reviewDate }) => [
project.file.link,
reviewDate.toFormat('yyyy-MM-dd'),
project["Planned time for the first stage, hours"],
project["Planned budget, rub."],
project["Expected result"]
])
);
Conclusion
Changes in my approach to managing time and projects have significantly boosted my productivity and helped me avoid overloads. These methods are not only useful for individual work but also for managing a team, especially in environments where resources are limited and tasks are numerous. I hope my experience will help you make your work more organized and less stressful.