Skip to content

6 ‐ Project Management

Mark Dannemiller edited this page Aug 22, 2023 · 3 revisions

If you are looking to adopt an efficient workflow for project management for your group, then this section is worth the read. Here we have compiled a list and description of the tools that the Nautilus team used during our project lab 1 semester. For task allocation and collaboration on Microsoft Office deliverables, we used Microsoft Teams. This also allowed us to have a shared file system for pictures, resources, paper materials, etc. Additionally, for code history and source control between team members, we used the very popular Git / GitHub solution. VS Code has GitHub build into the app, so cloning this repository and pushing changes after developing features on our local machines allowed for us all to share the same Verilog source files and work on the project collaboratively. While most of the code was written by myself (Mark), my team members wrote about 50 lines each and having GitHub was invaluable for sharing code during the project and now for making our code base open source.

Microsoft Teams

TEAMS_TASKS

We used Microsoft Teams to aggregate our non-code lab work. Presentations and their supporting materials made up much of the material uploaded to Teams. Putting all these materials in one place will be extremely convenient, as you will need to reference your work in the various reports that make up much of your grade, as well as reducing the need for in-person meetings. Keeping all your work in a shared space will also help mitigate potential team conflicts and time crunches near report and presentation deadlines. MS Teams is powerful in that you can add the files in your Teams SharePoint folder to your personal computer's file system, much like OneDrive. Be sure to take pictures and videos before, during and after the implementation of each major feature to document your progress.

We wound up meeting up 1-2 times per week and collaborating in-person instead of more remote options provided by Teams. If one of us was unable to meet, they would simply upload their contribution to the relevant folder on our Teams file page. By default, the documents shared on teams can be edited by all members simultaneously. We used this feature to divide up slides and work on them before class each week.

We found that assigning and maintaining the Task tab was often too much work and a potential source of conflict and found a simple Gantt Chart with general timelines to be a better alternative. Your group should meet often during the week so that each member knows their duties. If you choose to use more of a remote approach, then the Tasks/Planner option on MS Teams is useful to you. What MS Planner/To Do is good for is as the name suggests, to "plan" your duties in a system that everyone can see. As someone who used MS To Do on my computer, phone, and any device that I own to sync all of my To Do lists, I highly recommend that you check the app out. No matter how organized you are or how good your memory is, it is important to have a tracking system for all of your tasks and ambitions.

TO_DO

MS Teams and Lab Notebook

If you are using an iPad, tablet, or PC with tablet capabilities, how about a shared lab notebook with your teammates through Teams? OneNote can be used in sync with Teams and at the top as a channel you can add a notebook channel to share a single notebook with your team. See below for how that notebook looks in the Teams view. In your OneNote app, as long as you are signed in with your TTU account then you can add this notebook to any of your devices running OneNote. You may find that writing on paper is better for you when documenting the project's progress, but OneNote was my preferred solution due to being able to type, insert screenshots, and add photos taken from my phone.

TEAMS_NOTEBOOK

GitHub and VS Code

We recommend for teams that are working collaboratively on code to use a source control solution like Git. By storing your repository on GitHub, as we have done here, you can also share your code with the world and GitHub is the easiest place to store your repository for you and your teammates. This video continues to be my favorite resource when showing others how Git and GitHub works.

What is the easiest way to set up your GitHub workflow? Start by creating an account and then a repository through GitHub for your project lab 1 code. You will also need to download Git from the official website to your local machine. Many of you that use VS Code may not know that it has built in GitHub functionality. I would suggest this creator's video for initialization of your repository through VS Code. I would also recommend installing the GitLens extension, which will allow you to see who made changes to each individual line of code through the VS Code IDE. It comes with many visual features that really bring all of GitHub to your machine and turns VS Code into a great collaboration tool.

VS CODE VIEW Here is the view of our Verilog HDL in VS Code. While Vivado is the main tool for creating and deploying your code to the Basys board, you can use VS Code for source control and quick edits on any machine to the code without having to launch Vivado. Additionally, by storing your local clone of the repository to your Dropbox or Onedrive, you have doubled up source control and cloud functionality! I use both a desktop and a laptop, so all of my code was stored on Dropbox and the Git functionality is unaffected.

Vivado lets you add sources to your project from anywhere on your machine, which means that all .v files can be stored on the GitHub repository and added to each team member's Vivado project through the "add sources" feature in Vivado. There is no harm in moving all the sources that you have already created inside of the Vivado project file system into a repository later if you do not choose to use source control but decide later that it is useful for your team. Do not use Git to store the entire Vivado project because that method of sharing should not work on your teammate's machines (but I guess you can try and let me know if I am wrong!). It is better for each team member to set up their own Vivado project and add the shared sources afterwards.

GITHUB_FILE_STRUCTURE

Nautilus Team

More About This Group

Logan Barkowsky

Brett Fiscbuch

Clone this wiki locally