130 likes | 208 Views
Project Management. The Joel Test http://www.joelonsoftware.com/articles/fog0000000043.html. Do you use source control? Can you make a build in one step? Do you make daily builds? Do you have a bug database? Do you fix bugs before writing new code? Do you have an up-to-date schedule?
E N D
The Joel Testhttp://www.joelonsoftware.com/articles/fog0000000043.html • Do you use source control? • Can you make a build in one step? • Do you make daily builds? • Do you have a bug database? • Do you fix bugs before writing new code? • Do you have an up-to-date schedule? • Do you have a spec? • Do programmers have quiet working conditions? • Do you use the best tools money can buy? • Do you have testers? • Do new candidates write code during their interview? • Do you do hallway usability testing?
Before you code • Environment • Quiet working conditions • Minimize distractions • IM • email • web browsing • Preparation • Up front cost repaid very quickly • Always have a proper specification • Always have the best tools you can get access to • Divide the specification into tasks and assign tasks to developers based on the relative risk/ and value of the task • High risk high value first • High risk low value should probably be ignored entirely
Source Control - Subversion • Central database of all versions of your code • New files are added • Current files are ‘checked out’ (reserved) • Modified files are ‘checked in’ Free O’Reilly book on subversion: • http://svnbook.red-bean.com/
Build Tools Automatically compile every part of the software • Make • Been around forever in UNIX land • Ant • Java build tool http://ant.apache.org/ • Nant • .NET build tool based on Ant http://nant.sourceforge.net/
Bug Tracking • A database - Nothing less will do • Your memory is not good • Your post-its will get lost • Lots of commercial bug tracking software available. More on this later with DrProject • 4 parts to a proper bug report • Steps to reproduce • What you expected to see • What you saw instead • A priority based on a risk/value assessment
Bug cost • The cost of fixing a bug grows exponentially with time • Always fix bugs before you write new code and always have an automated test to make sure it stays fixed • Always address the root cause and not the specific case. Addressing cases instead of causes will lead to hacks and will degrade the quality of the application
A high score cheaply and easily http://www.third-bit.com/drproject Includes Source Control (Subversion) Bug Tracking Milestones Wiki Mailing Lists
Bug Tracking • Assign bugs and tasks to specific developers • Track progress to milestone (your schedule)
Team Communication • Check-in notes • Wiki • Mailing List
Installationhttp://www.third-bit.com/drproject/All/wiki/DrProjectInstallInstallationhttp://www.third-bit.com/drproject/All/wiki/DrProjectInstall On Ubuntu, start synaptic and install the following packages: • python2.4 • python-devel • python-xml • python2.4-subversion • subversion • apache • doc-utils • sqlite3
Installation • Download DrProject source and unpack • Go to the folder where you unpacked the source and run these 2 commands: • sudo python setup.py develop • drproject-server --debug --port 8080 --auto-reload --create /tmp/drproject • DrProject should now be running. • Troubleshooting: http://www.third-bit.com/drproject/All/wiki/DrProjectTroubleshoot
One last thing - Users Here are the complete steps required to get authentication working: [a] Suppose I unpacked the source to a directory call /drp_source [b] go to the directory /drp_source/src and type 'make'. This willbuild a script called 'validate' which will authenticate users againstthe shadow file. I believe some warnings might appear when making the script, but for now these can be ignored. [c] Suppose I created an environment in a directory call /drp_env [d] Open the file /drp_env/conf/drproject.ini using some editor.Find the section called 'trac' set the key 'validate_path' as follows: [trac] ... validate_path = /drp_srouce/src/validate ... [e] You should now be able to authenticate users that have asystem level account.