A Guideline for Project Management
In the recent years, the number of research projects within our team has grown consistently, which is good news. Currently, we have 12 funded research projects, and 6 more in the pipeline. Up to now, I struggled to manage all these projects, but I’ll be on sabbatical leave in 2025, and I’ll need your support to run the projects smoothly in my absence. I believe you can do a better job than I have, since you are the ones doing the actual work in the projects.
As you know, our team was reluctant to use MS Teams, so we decided to organize our work in GitHub ODTU Team, and you can find the relevant project and people account links from Powerlab/Project repo.
Since the days of using Trello, I aimed to organize your work into weekly tasks, which is one of the main principler of Kanban project management (details below). While I am not an expert in project management, I try to follow these few principles of Kanban project management:
- Visualize the Workflow (which we do during the weekly meetings and project boards)
- Limit the work in Progress (by dividing the research projects into smaller chunks)
- Measure and Manage Flow (by keeping a track of the completed tasks)
- Continuous Improvement (by coming up new ideas and creating new tasks, unfortunately up to now, new tasks were mainly assigned only by me)
I would like to define the project teams and leaders for each research project. You can find the draft plan from this link. If you are confused about your roles, you can find more explanation below.
Kanban vs. Scrum
I personally like the Kanban style more but Scrum is also a very popular agile project management method. I’ll leave it to project teams to choose the best suitable method for themselves, but please have a look at the following links before you start (more resources available below):
- Kanban Guide
- What is Scrum in Project Management?
- Kanban vs. scrum: which agile are you?
- Professionalize your Team Work Using Scrum
- Kanban Management
Product Owner
There are different names for this role such as Service Request Manager (SRM) but this person is the one that coordinates the workflow and assign tasks. He/she will prioritize the workflow, and set limits on current work in progress task by assigning tasks to each team member. Monitoring progress and completion of the tasks are also within his/her responsibility.
You can have a look at the following for more details:
- What are the Key Responsibilities of a Kanban System’s Roles?
- The 18 Characteristics of a Great Product Owner
- Become a Better Product Owner with Kanban
- Does Kanban have a product owner?
- Kanban Roles: Everything you need to know
- Kanban Roles and Responsibilities Explained in Full
One of the primary responsibilities of the product owner is to assign issues and monitor their progress to ensure milestones are completed on schedule. GitHub’s “Milestones” feature is an excellent tool for linking issues to specific milestones, enabling you to track progress and assess whether the project is on track.
As the product owner, please regularly review the project to confirm it is progressing as planned. If there are any deviations or potential delays, do not hesitate to reach out to me or the Scrum Master so that we can implement necessary adjustments as early as possible.
The following links may be helpful:
- How to organize with GitHub Milestones
- GitHub Crash Course: Projects and Milestones
- How to use Project Roadmaps
- Using labels and milestones to track work
Scrum Master
Not exactly equivalent but scrum master is also called agile coach or service delivery manager (SDM). It is usually the person who facilitates the flow, communication and ensures the team stick to Kanban principles. Although, they may not do the actual work, they help the team by removing obstacles and adjusting team capacity accordingly by analyzing project progress and main metrics.
- You don’t need Scrum. You just need to do Kanban right.
- What is a Product Owner: Key Roles and Responsibilities Explained
- Characteristics of a Great Scrum Master
Team Members
Of course there is a big responsibility for team members as well. We don’t have a strict authority and ranks in our research team, and therefore you should do your best to share the responsibility and contribute to the project. There are a few management issues that I observed in the past years, and I believe we can improve these:
Documentation
Documentation is critical aspect in our research projects so that everyone can be on the same page. These are the main issues I see in our team members:
- Not backing up your files, keeping everything in random folders in different local PCs
- Choosing arbitrary file names, not using proper version control tools, and keeping several unnecessary files just in case
- Insufficient comments/explanations in your codes, or not using a proper naming convention in variables/functions etc.
- Not using README.md files in your GitHub repos or in your main folders that will help external people to understand your work
Please follow the basic rules below, and have a look at all the links below for a systematic approach.
- Keep all your files in your GitHub repositories, and make at least 3 commits per week to keep your repo up-to-date
- If a file is redundant or have a newer version delete the unnecessary versions. Renaming files and keeping multiple copies in the same folder is not a proper file versioning method
-
Have backups of all your files. Although GitHub repos should be your primary directory, we have a NAS (network-attached-storage) in ARC-301, and you can use synchronization tools such as Syncthing for large files, or backing up your PC etc. You can also access all of the previous projects from this NAS. Please contact me or Özgür if you don’t have an account.
- Good enough practices in scientific computing
- How to organize files and folders
- Best Practices for Folder Structure in Project Management
- Research Data Management
Deadlines
One of the issues in our research group is the frequent missing of deadlines. I understand, the research work is inherently unpredictable and often takes longer than anticipated. However, the primary purpose of breaking a large project into smaller, manageable weekly tasks is to reduce uncertainty and provide motivation by achieving progress in these smaller, incremental steps.
In my experience, missed deadlines are mostly due to procrastination and time management issues. One of the main reasons for procrastination is the lack of motivation. Although, I try my best to increase your motivation, it is essential for each of you to identify your personal reasons and goals in your life. The links below can help you to understand and strengthen your motivation.
- Start with Why
- Inside the Mind of a Master Procrastinator
- A few nice reads
- Procrastination is the thief of time
- The Procrastination Monster: Taming the Beast and Unleashing Productivity
Another reason for missed deadlines is the lack of time management. There are specifically two methods that I wound useful GTD (Getting Things Done) and Pomodoro technique. These may not be the most useful method for you, but I think it is a good starting point:
- GTD for Academics
- This Simple Method Just Doubled Down My Productivity
- The Pomodoro Technique and other methods to get more done
- Time Management & Productivity Tools For PhD Students
- Dealing with distraction in academic work
Extra Links
Scrum
Kanban
GitHub Projects
- Best Practices for Projects
- Iteration Fields
- Rules to Better Scrum using GitHub: Issues and Projects
- Effectively Integrating Interns into Research Teams
If you have any suggestions, please feel free to make a push request.