Modern Project Management. Brendan Bartels

Similar documents
Teaching Reproducible Research Inspiring New Researchers to Do More Robust and Reliable Science

PLANNING YOUR ONLINE UNIT

Moodle 2 Assignments. LATTC Faculty Technology Training Tutorial

1 Use complex features of a word processing application to a given brief. 2 Create a complex document. 3 Collaborate on a complex document.

What s in Your Communication Toolbox? COMMUNICATION TOOLBOX. verse clinical scenarios to bolster clinical outcomes: 1

Building Mutual Trust and Rapport. Navigating the Intersection of Administrators and Faculty in Short-Term Program Planning

Schoology Getting Started Guide for Teachers

The Multi-genre Research Project

Individual Differences & Item Effects: How to test them, & how to test them well

Justin Raisner December 2010 EdTech 503

Tutor Guidelines Fall 2016

TEACH WRITING WITH TECHNOLOGY

Computer Science and Information Technology 2 rd Assessment Cycle

Teachers: Use this checklist periodically to keep track of the progress indicators that your learners have displayed.

How to make an A in Physics 101/102. Submitted by students who earned an A in PHYS 101 and PHYS 102.

Discovering Statistics

Introduction to Causal Inference. Problem Set 1. Required Problems

Designing a case study

The Moodle and joule 2 Teacher Toolkit

FAU Mobile App Goes Live

CLASS EXPECTATIONS Respect yourself, the teacher & others 2. Put forth your best effort at all times Be prepared for class each day

Welcome to the session on ACCUPLACER Policy Development. This session will touch upon common policy decisions an institution may encounter during the

Adult Degree Program. MyWPclasses (Moodle) Guide

Collaboration: Meeting the Library User's Needs in a Digital Environment

S H E A D AV I S C O L U M B U S S C H O O L F O R G I R L S

Meet Modern Languages Department

Colleges And Universities Civil Engineering Practice Teaching Family Planning Materials. Civil Engineering Graduate Design Typical Example: Road And

Notetaking Directions

Extending Learning Across Time & Space: The Power of Generalization

Shared Leadership in Schools On-line, Fall 2008 Michigan State University

Conference Paper excerpt From the

Taste And Sight Anatomy Study Guide

Market Economy Lesson Plan

Multiple Intelligence Teaching Strategy Response Groups

Ministry of Education, Republic of Palau Executive Summary

Analysis of the Process of Encoding Guidelines: An Evaluation of GLIF3

A NOTE ON UNDETECTED TYPING ERRORS

Getting Started with MOODLE

The Process of Evaluating and Selecting An Option

Please find below a summary of why we feel Blackboard remains the best long term solution for the Lowell campus:

What Teachers Are Saying

Education: Integrating Parallel and Distributed Computing in Computer Science Curricula

B. How to write a research paper

School of Innovative Technologies and Engineering

Supporting flexible collaborative distance learning in the CURE platform

Team Dispersal. Some shaping ideas

Sharing Educational Knowledge and Best Practices in Edu-Sharing

CLASSROOM PROCEDURES FOR MRS.

The Foundations of Interpersonal Communication

2 Any information on the upcoming science test?

Speak Up 2012 Grades 9 12

Academic Integrity RN to BSN Option Student Tutorial

ASTRONOMY 2801A: Stars, Galaxies & Cosmology : Fall term

TEACHING IN THE TECH-LAB USING THE SOFTWARE FACTORY METHOD *

Using the CU*BASE Member Survey

Your web browser (Safari 7) is out of date. For more security, comfort and the best experience on this site: Update your browser Ignore

MMC 6949 Professional Internship Fall 2016 University of Florida, Online Master of Arts in Mass Communication 3 Credit Hours

UC Santa Cruz Graduate Research Symposium 2016

Pod Assignment Guide

The College Board Redesigned SAT Grade 12

NCSAC THE VOICE HANDBOOK. Student Administrative Council. Niagara College. student life defined

K-12 EAD NEWSLETTER. Michigan State University INSIDE THIS ISSUE 1. ANNOUNCEMENTS 2. EAD EVENTS. American Education Research Association

Running head: FINAL CASE STUDY, EDCI Addressing a Training Gap. Final Case Study. Anna Siracusa. Purdue University

TIM: Table of Summary Descriptors This table contains the summary descriptors for each cell of the Technology Integration Matrix (TIM).

An Introduction and Overview to Google Apps in K12 Education: A Web-based Instructional Module

Jeff Walker Office location: Science 476C (I have a phone but is preferred) 1 Course Information. 2 Course Description

Facilitating Difficult Dialogues in the Classroom. We find comfort among those who agree with us, growth among those who don t. Frank A.

10 Tips For Using Your Ipad as An AAC Device. A practical guide for parents and professionals

GACE Computer Science Assessment Test at a Glance

Moodle Goes Corporate: Leveraging Open Source

An Introduction to the Minimalist Program

Clerical Skills Level II

QLWG Skills for Life Acknowledgements

Blogs for Corporate Learning

STUDENT MOODLE ORIENTATION

Using E-portfolios and Voice Thread With Elementary Students Presented by Lillian Salama and Basma Salem Cairo American College

Lesson M4. page 1 of 2

Blackboard Communication Tools

Section 2 Command Economies Study Guide Answers

ACADEMIC AFFAIRS GUIDELINES

Author: Fatima Lemtouni, Wayzata High School, Wayzata, MN

Consonants: articulation and transcription

Unit 1: Scientific Investigation-Asking Questions

REFERENCE GUIDE AND TEST PRODUCED BY VIDEO COMMUNICATIONS

Go fishing! Responsibility judgments when cooperation breaks down

Telekooperation Seminar

Why Pay Attention to Race?

4. Long title: Emerging Technologies for Gaming, Animation, and Simulation

Me on the Map. Standards: Objectives: Learning Activities:

essential lifestyle planning for everyone Michael W. Smull and Helen Sanderson

Common Core Exemplar for English Language Arts and Social Studies: GRADE 1

E-Portfolio for Teacher Educators at EIU. February 2005

The Rise and Fall of the

2014 Free Spirit Publishing. All rights reserved.

SULLIVAN & CROMWELL LLP

IT Project List. Description

Strands & Standards Reference Guide for World Languages

Chamilo 2.0: A Second Generation Open Source E-learning and Collaboration Platform

Introduction to World Philosophy Syllabus Fall 2013 PHIL 2010 CRN: 89658

Getting Started with Deliberate Practice

Transcription:

Modern Project Management Brendan Bartels

You Need To Manage Tasks Technical Conversation File Changes Project Documentation

You Need To Manage Tasks Technical Conversation File Changes Project Documentation

You Need To Manage Tasks Technical Conversation File Changes Project Documentation

What is Git? Tool that allows you to keep something like a diary of all your file changes over time https://git-scm.com/

What is Gitlab? A web application that allows you to integrate with Git organize tasks track work document changes in the process you get a rich record of all your work (for free) https://about.gitlab.com/

How To Manage Tasks Technical Conversation File Changes Project Documentation

How To Manage Tasks Technical Conversation File Changes Project Documentation

Managing Tasks You will have tasks How will you coordinate them? Word of mouth? Not great: Verbal communication is volatile; tasks are not Just let everyone figure out what to do? Not good: This is essentially a team without a leader Trello? Pretty good

Managing Tasks Suggestion: Use Gitlab Issues Tasks correlate nicely with Gitlab Issues Gitlab also has a board to render Issues as cards Trello-esque + seamless integration with Gitlab

How To Manage Tasks Technical Conversation File Changes Project Documentation

How To Manage Tasks Technical Conversation File Changes Project Documentation

Managing Technical Conversation You will be having technical conversations There s a looming problem in the world: People don t know how to do things Knowledge is hard to find, or impossible to find You will become experts of information associated with your senior design project Your decisions will either contribute to or prevent this problem

Managing Technical Conversation What form of communication will you use to relay technical questions and details? IM (i.e. Slack)? Bad: It s inherently disorganized and exclusive It s a black hole for information

Managing Technical Conversation The event horizon of the Slack black hole

Managing Technical Conversation What form of communication will you use to relay technical questions and details? IM (i.e. Slack)? Bad: It s inherently disorganized and exclusive It s a black hole for information Email? Bad: It s inherently disorganized and exclusive

Managing Technical Conversation Suggestion: Use Gitlab Issues Post questions on relevant Issue threads Post updates on relevant Issue threads Mention any team members that you want to contribute the conversation @netid

mention team members that you want to join the discussion in any post, and they will get an email notification

Managing Technical Conversation Other Examples: https://git.ece.iastate.edu/danc/microcart/issues/1 https://github.com/jooq/jooq/issues/2536

Okay Managing Technical Conversation Sometimes Slack can be good for quick technical discussions Just copy and paste the discussion into a relevant Issue thread when the conversation is finished

This text was copied from a Slack conversation

How To Manage Tasks Technical Conversation File Changes Project Documentation

How To Manage Tasks Technical Conversation File Changes Project Documentation

Managing Files You will have shared project files that your team will modify locally What tool will you use to coordinate changes to these files across your team?

Managing File Changes Suggestion Use Git Use a Branch-Review-Merge workflow

Managing File Changes Suggestion Use Git Use a Branch-Review-Merge workflow

Intro to Git Git is a timeline of snapshots snapshots = commits timeline = branch Initial commit Add README Implement framework for https://git.ece.iastate.edu/danc/microcart/blob//documentation/ how_to_use_git.md#how-do-i-make-changes

To start tracking a project with git, enter the directory and use the git init command

Hint: Use git status to get a hint about what you should do

[85762b0] Initial commit

[85762b0] Initial commit

[85762b0] Initial commit

[85762b0] Initial commit

[85762b0] Initial commit

[85762b0] Initial commit [d0f2f54] Replace greeting with question

[85762b0] Initial commit [d0f2f54] Replace greeting with question

Use git help to learn about commands and get help on those specific commands. [85762b0] Initial commit [d0f2f54] Replace greeting with question

Now we need to get your local changes to the central remote host for the team Local Computer Remote Host [85762b0] [d0f2f54]

Local Computer [85762b0] Remote Host [85762b0] [d0f2f54] [d0f2f54]

Let s say someone else added a commit to the remote host, such that your local copy is obsolete Local Computer [85762b0] Remote Host [85762b0] [d0f2f54] [d0f2f54] [bbf92ad]

Local Computer [85762b0] Remote Host [85762b0] [d0f2f54] [d0f2f54] [bbf92ad] [bbf92ad]

Managing File Changes Suggestion Use Git Use a Branch-Review-Merge workflow

Managing File Changes Suggestion Use Git Use a Branch-Review-Merge workflow

Branch-Review-Merge Motivation Workflow Traditional workflows involve everyone making changes to a central branch/trunk Not Great Changes are delicate because everyone is working on the stable branch Changes are often made without notice, which can lead to team member confusion

Big Idea: Branch-Review-Merge Workflow 1. Create your own personal branch (copy of ) This gives you a safe environment to make your changes 2. When finished, create a merge request for your branch This gives your teammates a chance to review your code and offer feedback before changes become final 3. After approval, merge your changes into And then delete your personal branch

Create a new branch that is a copy of Local Computer [85762b0] [d0f2f54] [bbf92ad] improve-comments [85762b0] [d0f2f54] [bbf92ad]

Local Computer [85762b0] [d0f2f54] [bbf92ad] improve-comments [85762b0] [d0f2f54] [bbf92ad] [8e656ec]

Recall the state of our remote host Local Computer [85762b0] [d0f2f54] [bbf92ad] improve-comments [85762b0] [d0f2f54] [bbf92ad] [8e656ec] Remote Host [85762b0] [d0f2f54] [bbf92ad]

Local Computer Remote Host improve-comments improve-comments [85762b0] [85762b0] [85762b0] [85762b0] [d0f2f54] [d0f2f54] [d0f2f54] [d0f2f54] [bbf92ad] [bbf92ad] [bbf92ad] [bbf92ad] [8e656ec] [8e656ec]

Branch-Review-Merge Workflow Now that we have your branch on the remote host, open a Merge Request for your branch to be merged into

mention team members that you want to review your changes in the description of your merge request, so that they get an email

Branch-Review-Merge Workflow Use the inline code comments to give specific feedback on changes

Branch-Review-Merge When your teammates have reviewed and approved your code, merge it! Workflow Local Computer Remote Host improve-comments improve-comments [85762b0] [85762b0] [85762b0] [85762b0] [d0f2f54] [d0f2f54] [d0f2f54] [d0f2f54] [bbf92ad] [bbf92ad] [bbf92ad] [bbf92ad] [8e656ec] [8e656ec]

Branch-Review-Merge When your teammates have reviewed and approved your code, merge it! Workflow Local Computer Remote Host improve-comments improve-comments [85762b0] [85762b0] [85762b0] [85762b0] [d0f2f54] [d0f2f54] [d0f2f54] [d0f2f54] [bbf92ad] [bbf92ad] [bbf92ad] [bbf92ad] [8e656ec] [8e656ec] [8e656ec]

Branch-Review-Merge When your teammates have reviewed and approved your code, merge it! Workflow Local Computer [85762b0] [d0f2f54] [bbf92ad] improve-comments [85762b0] [d0f2f54] [bbf92ad] [8e656ec] Remote Host [85762b0] [d0f2f54] [bbf92ad] [8e656ec]

Local Computer [85762b0] [d0f2f54] [bbf92ad] [8e656ec] improve-comments [85762b0] [d0f2f54] [bbf92ad] [8e656ec] Remote Host [85762b0] [d0f2f54] [bbf92ad] [8e656ec]

Local Computer [85762b0] [d0f2f54] [bbf92ad] [8e656ec] Remote Host [85762b0] [d0f2f54] [bbf92ad] [8e656ec]

Local Computer [85762b0] [d0f2f54] [bbf92ad] [8e656ec] Remote Host [85762b0] [d0f2f54] [bbf92ad] [8e656ec]

Branch-Review-Merge Other Examples: Workflow https://git.ece.iastate.edu/danc/microcart/ merge_requests/11

Branch-Review-Merge Workflow What about merge conflicts? Local Computer Remote Host hello-earth hello-earth [e98ad66] [0d46dbf] [e98ad66]

Local Computer Remote Host hello-earth hello-earth [e98ad66] [0d46dbf] [e98ad66] [0d46dbf]

Local Computer Remote Host hello-earth hello-earth [e98ad66] [0d46dbf] [e98ad66] [0d46dbf]

Local Computer Remote Host hello-earth hello-earth [e98ad66] [0d46dbf] [e98ad66] [0d46dbf]

Local Computer Remote Host hello-earth hello-earth [e98ad66] [0d46dbf] [e98ad66] [0d46dbf]

Local Computer Remote Host hello-earth hello-earth [e98ad66] [0d46dbf] [e98ad66] [0d46dbf]

Git will likely open a text-editor (vim) for the commit Use :q to just quit and use the commit message as is Local Computer Remote Host hello-earth hello-earth [0d46dbf] [0d46dbf] [e98ad66] [e98ad66] [1e52485]

Local Computer Remote Host hello-earth hello-earth [0d46dbf] [0d46dbf] [0d46dbf] [e98ad66] [e98ad66] [1e52485] [1e52485]

Local Computer Remote Host hello-earth hello-earth [0d46dbf] [0d46dbf] [0d46dbf] [e98ad66] [e98ad66] [1e52485] [1e52485]

Local Computer Remote Host hello-earth hello-earth [0d46dbf] [0d46dbf] [0d46dbf] [e98ad66] [e98ad66] [e98ad66] [1e52485] [1e52485] [1e52485] [3a24661]

Local Computer hello-earth Remote Host [0d46dbf] [e98ad66] [1e52485] [0d46dbf] [e98ad66] [1e52485] [3a24661]

Local Computer hello-earth Remote Host [0d46dbf] [e98ad66] [1e52485] [3a24661] [0d46dbf] [e98ad66] [1e52485] [0d46dbf] [e98ad66] [1e52485] [3a24661]

Local Computer [0d46dbf] [e98ad66] [1e52485] [3a24661] Remote Host [0d46dbf] [e98ad66] [1e52485] [3a24661]

Local Computer [0d46dbf] [e98ad66] [1e52485] [3a24661] Remote Host [0d46dbf] [e98ad66] [1e52485] [3a24661]

Branch-Review-Merge Workflow What about files generated by software? (not directly written by you) Still use Git, but keep in mind the diffs will be unmanageable, don t bother examining them Resolve merge conflicts with git checkout ours or git checkout theirs (This essentially ignores all of one team member s changes, so it is best to avoid this scenario. Coordinate with your teammates so that only one person is ever working on binary files at a time.)

How To Manage Tasks Technical Conversation File Changes Project Documentation

How To Manage Tasks Technical Conversation File Changes Project Documentation

Managing Project Documentation You might need to make tutorials, how-to s, or orientational documents Where should these go? Google Docs? Wiki Pages? Okay. But both can easily get decoupled from the other project files.

Suggestion Managing Project Documentation Add Markdown files directly into your Git project, which will be rendered as pages on your Gitlab project Markdown is a very simple and natural syntax It s quite easy to add links, pictures, code snippets Gitlab s Markdown Reference: https://docs.gitlab.com/ee/user/markdown.html

Review How to Manage Tasks Define and track tasks with Gitlab Issues Technical Conversation Ask questions and give updates on appropriate Gitlab Issue threads File Changes Use Git and Gitlab Merge Requests Project Documentation Use Markdown files committed directly into your Git project

Questions?