100 likes | 200 Views
The Joel Test Q1. Do you use source control? Use it for your CS682-3 project. Submit all of your CS680 programming assignments to a Subversion repository. Email submissions NOT allowed for programming assignments. Contact Zhimin Wang (wangzm@cs.umb.edu) and let hime know hour email address.
E N D
The Joel Test Q1 • Do you use source control? • Use it for your CS682-3 project. • Submit all of your CS680 programming assignments to a Subversion repository. • Email submissions NOT allowed for programming assignments. • Contact Zhimin Wang (wangzm@cs.umb.edu) and let hime know hour email address.
The Joel Test Q2 • Can you make a build in one step? • Use a single build script that • configures all settings (e.g., class paths and a directory to generate binary code), • compiles all source code from scratch, • generates binary code, and • test compiled code • You should do this for all CS680 programming assignments and CS682-3 projects. • DO NOT use any other ways for configurations and compilation. • Setting class paths manually in a GUI window (e.g., Eclipse) • Clicking a compile button manually • Setting an output directory manually in a GUI window
Fully automate configuration and compilation process to • speed up your configuration/compilation process. • remove potential human-made errors in your configuration/compilation process. • Make it easier for other people (e.g., code reviewers, team mates) to understand your code/project. • Use Ant for this automation. • Use JUnit for unit tests. • Unit testing is the most fundamental among various testing schemes.
The Joel Test Q3 • Do you make daily builds? • Do this for your CS682-3 project. • Toward the end of a project, make builds more often. • Share every build information among team members. • Project web site and email • Each team needs to define a “protocol.” • When to make a daily build? • Who makes a daily build? (“buildmaster”) • Who ensures a build is clean (not-broken)? • How to rotate the buildmaster role among team members? • What if a build is broken? • How and who fix a broken build?
Why daily builds? • Edit-Compile-Test loop • Report-Fix-Retest loop • = Report-(Edit-Compile-Test)-Retest loop • Daily builds can shorten this loop. • Shorten the integration phase • Decrease integration risk • Continuous testing as the project proceeds. • Good to get some peace of mind.
The Joel Test Q4, Q5 and Q6 • Do you have a bug database? • Do this for your CS682-3 projects. Important! Share bug information among team members. • Excel, Wiki • Bug tracking software like Bugzilla • Do you fix bugs before writing new code? • Do this for your CS682-3 projects. Important! • Do you have an up-to-date schedule? • Important! Good idea to try in your CS682-3 projects.
The Joel Test Q7 and Q10 • Do you have a spec? • A spec includes architecture models, design models, and comments in code. • Do you have testers? • Important, in general. Difficult for your CS682-3 projects. • Every team member should involve testing. • Perform unit test and integration test through daily builds. • Never underestimate testing!
Swedish Navy • What were wrong?
No specifications • Designs not explicitly written. • Designs not communicated among shipwrights. • Designs not recorded for future projects. • Testing underestimated • No prioritization on tasks/requirements • Didn’t know how to say “no” to the customer.
HW3 • Learn what Subversion is. • You will submit all of your programming assignments to a Subversion (SVN) repository. • Choose a svn client software and learn how to use it (read its manual) • TortoiseSVN • RapidSVN • Contact my TA to get access to the CS680 svn repository! • Read SP 11 to 15. • Due: Sept. 20