Introduction to GitHub Projects
Teach me how to use Github Projects
~One day on Zoom~
You: Hey Ben, ready to get working on Navigator? You seemed really excited about it literally last week…
Me: Wow thanks so much for just coming right in here and reminding me! Let me drop everything and do that with you.
Me: Ok, now what?
You: ….well I mean, it’s your project right? What do you want to do?
Me: Well, I guess we should probably start by programming.
You: I….I do agree, but maybe let’s take a step back first and think about this. Have you ever used the projects tool?
Me: No, Github has too many features and it scares me.
You: Fair enough, but the projects feature is pretty cool and useful! It’ll help us plan the steps to slowly build out your project. Click the projects tab, then click the big green “new project” button.
You: Alright, go ahead and name the project, give it a brief description, and choose “Basic kanban” from the template dropdown menu.
Me: What’s basic kanban? It sounds like a sandwich.
You: It’s just a pre-made layout to help you organize tasks easier. Go ahead and press “Create project”.
Me: Don’t tell me I have to read all of the stuff on those cards.
You: You should! It’s useful info. But for our purposes, let’s go and get them out of the way. Hit the dots on each card and select delete after you’ve read them.
Me: Didn’t read them.
You: No big deal, we’re just going to work through one task together and you’ll see how easy it is. Create a new card with the + button on the To Do column.
Me: Done, now it wants me to type something.
You: Let’s use some markdown to set up our first card. I recommend following that link and doing GitHub’s tutorial if you’re unfamiliar with markdown.
Me: …follow what link?
You: Don’t worry about it! The first item on the task will be the “User Story”, or the feature that we’re adding to the project. This doesn’t need to be huge, for now let’s just start with making the landing page for the app.
You: Now add another heading called “Effort” and leave it blank — we’ll come back to it later.
Me: That’s what I always say, but I believe it when you say it.
You: Now for the fun part. In order to make that feature, what work do you have to do? Add those steps as checkboxes under another heading called “Tasks”.
You: Now going back to the “Effort” section. Have you ever heard of a Fibonacci sequence? It’s a series of numbers where the the next number is determined by the two previous ones, like this —
0 , 1, 1, 2, 3, 5, 8, 13, 21…..
Me: Cool man. What does that have to do with the “Effort” section?
You: If you’d let me FINISH I’d tell you Ben, God you talk a lot. Anyway, we’re going to use them to gauge the time — in hours — it takes to complete each of those tasks. The sum of those tasks is the number of “Effort Points” it takes to finish the whole card.
Me: Honestly each of those tasks are pretty easy, I would say they’re both 1, if even that. So then a total of 2 effort points?
You: Exactly. And remember — it’s always better to overestimate how long it’ll take you than underestimate it. This will help us get a somewhat accurate idea of how long each of these features will take to complete, and will also help us gauge your productivity. Fill that out and click “Add”.
You: And now we can start programming. Drag it into the “In Progress” column while we work on it and follow the Git workflow. Once all the boxes have been checked, and we’ve made the feature you described in the user story, we can move it over to the “Done” column!
You: Now if you want to measure your productivity, all you have to do is divide a chunk of work time by the amount of effort points in the “Done” column. For example, let’s say you wanted to measure your productivity over a 2 week period, or 14 days, and you’d completed 20 points of effort
20 points / 14 days => ~1.4 points per day
You: This is your velocity over that two week span….it’s rather slow, but that’s the point of measuring. It allows us to have a discussion about how to increase your velocity and how to overcome any obstacles that popped up.
Me: Ah I see. So now all I have to do is make cards like this for every feature I want to add?
You: Yep. The cool part is that this actually makes it very easy to pop in and work on your project whenever you get the chance — it lowers the barrier of entry to your work.
Me: Well hey, thanks so much for this super useful tool. I’m going to kick you now, have a good day.
You: Wait are you seri —
Me: WHO’S VELOCITY IS SLOW NOW? Hehe, you showed him Ben. Now, back to work…
Credit to Alex Mata’s awesome blog post on Git workflow and to Toul Cranmer’s very informative post about DevOps workflow (check out the bit about using Scrum near the end of the article).
Check out my Github to work on Navigator with me or to see what else I’m working on.
Visit my LinkedIn if you’d like to connect with me.