Let the group project commence!

Slides:



Advertisements
Similar presentations
Timetable TaskDate Project SelectionThursday Oct 11 / Monday Oct 15 Outline Project SpecificationMonday Oct 22 Progress ReportMonday Nov 19 Mid-project.
Advertisements

Bring Success in Beliefs. You don’t have to wait for someone to accept, to promote, to select... to somehow "discover." Access is nearly unlimited;
Version Control 1.  Version control (or revision control) is the term for the management of source files, and all of the intermediate stages as development.
SOFTWARE REVISION CONTROL WITH SUBVERSION Evan Dickinson & Andy Huang – 9 March 2011.
Source Control in MATLAB A tool for tracking changes in software development projects. Stuart Nelis & Rachel Sheldon.
2/6/2008Prof. Hilfinger CS164 Lecture 71 Version Control Lecture 7.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Software Development Methods And Some Other Stuff.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
CS4723 Software Validation and Quality Assurance Lecture 9 Bug Report Management.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
Introduction to Version Control
Version Control with Subversion Quick Reference of Subversion.
Lecture 3 Title: Web blog By: Mr Hashem Alaidaros.
Git – versioning and managing your software L. Grewe.
Listen and learn!. * “READ THE BOOKS. I don't understand why some kids think they can take a test on a book they have never read. That is actually crazy,
Branching. Version Control - Branching A way to write code without affecting the rest of your team Merge branches to integrate your changes.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Six Tips for Talking Technical When Your Audience Isn’t By Janis Robinson Presenter: Samir Chahid.
(Sub)Version Control. 2 Keep large teams working on the same code Back up your work so you don't lose it all Compare changes to previous versions Revert.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
Sample Video Game & Sound. The Plan 1.Game Theme 2.Game Structure 3.Sprites 4.Trackers 5.Collisions 6.Score 7.Levels 8.Splash Screens 9.Design 10.Implementation.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
1 Theme 2: Thinking Like a Tester, Continued. 2 Thinking Like a Tester Lesson 20: “Testing requires inference, not just comparison of output to expected.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Version Control and SVN ECE 297. Why Do We Need Version Control?
June REU 2003 How to Conduct Research Some Rules of Thumb.
Benjamin Day Get Good at DevOps: Feature Flag Deployments with ASP.NET, WebAPI, & JavaScript.
© Trustees of Indiana University Released under Creative Commons 3.0 unported license; license terms on last slide. Take Group Projects to the Next Level.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Chapter 1 My Role on the Team. Chapter 1 My Role on the Team.
Project Workflow.
CompSci 230 Software Construction
Version Control CS These slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Version Control with Subversion
Sample Wiki Comments?.
A Simple Introduction to Git: a distributed version-control system
SVN intro (review).
Source Control Dr. Scott Schaefer.
Version Control CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Project Workflow.
CISC/CMPE320 - Prof. McLeod
Version Control System
Hao Zhong Shanghai Jiao Tong University
Get Good at DevOps: Feature Flag Deployments with ASP
The Five Stages of Writing
Artist’s Statements.
CSE 303 Concepts and Tools for Software Development
Git CS Fall 2018.
BIT 286: (Web) Application Programming
Real World Scrum with TFS & VSTS / Azure DevOps
Blackboard Tutorial (Student)
Artist’s Statements.
Git started with git: 2018 edition
CS5123 Software Validation and Quality Assurance
Artist’s Statements.
Systems Analysis and Design I
Artist’s Statements.
Artist’s Statements.
1. GitHub.
How l learned to work with others instead of working around them.
Presentation transcript:

Let the group project commence! Lecture 3

So where do we start? Start coding, right? **NO!** A little time spent planning is well worth your time. You should address several issues before coding.

Question #1: What are we making? Make sure everyone in the group is sharing a common vision. Some ideas: A design document In Jason’s opinion, a massive tome (aka “design bible”) is wasted effort* A one-page vision statement (bonus points for pictures) is better Sketches Sample Levels (again, sketches) …in other words, a pitch. But a refined pitch document. Take this to the bank: “If no one reads it, a document has no value.” *If we were working under the supervision of a seasoned lead programmer, this might make sense. But we’re not that lucky…

Question #2: How will we communicate? In class, F2F (face-2-face) is ideal. Issues we need to coordinate: What are our short-term and long-term deliverables? We also need to consider long-term milestones. Who is working on what? Is it getting us closer to a deliverable? How do the different jobs connect to each other? E.g. which methods does classA call of classB, and when? Often called an API (Application Programming Interface) Bugs that need fixed. In addition to F2F, here are some tools to consider: A daily / weekly standup (scrum) A google document (again, no value if no one reads it) Scrumy.com [Show it] Other alternatives: Trello, Slack (The school may not have the $$ for these…)

Question #3: How will we share files? Some initial thoughts (and problems): Flash-drives Very fragile What if two people edited the same file? Manual merge. Dropbox or similar Someone could accidentally delete / modify something they shouldn’t have Still have to do manual merges

Q3, continued. Enter Version Control Advantages over other methods: Many protocols: CVS, SVN, Git, Perforce, … Hosting: on atlas (Perforce, SVN), bitbucket, github, … Advantages over other methods: Logging (who did what, when) Ability to “check out” a particular revision Branching (e.g. a trunk for most development, branches for experimental stuff) Semi-automated merging (sometimes the diff tool needs help) Reports (e.g. ranking by commits, what changes have been made to file x, …) [Insert SVN demo here]

Question #4: code style Design Philosophy, two extremes: Loosey-goosey (normal python, little error checking) Very structured (more like Java, lots of error checking) In a large project, it needs to be maintainable How this is met depends on the team dynamic, the language, etc. Code Structure (often in a Technical Document*) Classes? Modules? Don’t try to plan everything… xkcd *again, I’m not sure this has a lot of value for us (like the Design Bible) – just talk it out

Question #5: People-skills Working in a group is hard. Everyone is passionate about this, but we have very different opinions Some behaviors to avoid: “The Hero”: Tries to do everything Be willing to let others work on something even if it’d take longer than you “The Hermit”: Afraid of wrecking something Version control should remove some pressure “The Perfectionist”: Won’t commit anything until it’s 100% perfect Integrating early is much easier than later. “The Procrastinator”

Question #6: Conflict Resolution It will come up. We’re all individuals that love gaming but have different opinions We’re all at different skill levels It’s actually a healthy thing Advice that (maybe) makes it better: Be professional and courteous Make sure criticism is constructive E.g. “What if tried ___” rather than “____ is a bad idea” E.g. “Could you explain ____” rather than “____ broke my code.” Don’t shut anyone out or make anyone feel useless Even if you are the greatest Rockstar programmer in the world (hint: you’re not) Attempt to resolve conflicts yourself. Talk to Jason in private if you see a problem arising.

Question #7: Where to start Shoot for a MVP (Minimal Viable Product) asap. Try to plan and code all essential features. See if it’s fun. Sometimes called a Whitebox Level Since often the final art isn’t ready Players, tiles, etc. are just boxes (some of them white) If the games fun now, it’ll be that much more fun with music, actual art, etc.

Let the games begin!