With the advent of such rich open source tools such as Subversion, Git, Trac, CruiseControl, and Review Board, managing software projects of any size has become much easier than ever. But how do you best use these tools in your organization? In this talk we'll look at how these tools can fit into any software project, helping you make your team more efficient than before.
6. Building A Process Having a process makes choosing tools much more effective
7. How to build a process Evaluate where you are now Address the good and bad of the current way of doing things Make a plan of where you think you should be Starting making strides towards going there Look for tools to support the process Implement the tools Evaluate to see what's working, what's not.
9. Product Management These are the stakeholders ( or their surrogates )for your project Needs: Need to be able to build out requirements for features ( use cases, screen mockups, etc ) Must have a collaborative environment so that these requirements are easy to keep updated Must be kept in the loop on the progress of the project
10. Development Management Manages the developers working on the project Needs Need to allow multiple developers to work easily together ( version control ) Need to keep the codebase under control ( code review ) Need to deal with bugs in the project ( issue tracking ) Need to be able to track progress of features being developed ( feature tracking ) Need to be able to collaborate with Product Management on requirements
11. Release Management Balances the needs of the stakeholders and the abilities of the developers to make the release successful. Needs Setting timelines for a release. Scheduling feature development iterations Measuring development team velocity Evaluating product needs and decide on what’s in and what’s out Need to provide proper QA for the project ( unit testing, functional testing, manual testing )
13. Picking the tools to use Do pick tools that … … you can get up and running with quickly ( for those new to all of this ). … compliments your process. … are easy for your team to adjust to. Don’t pick tools that ... … attempt to fix a problem that isn’t broken. … that are distracting or too cumbersome for your process. … you and/or your team are not ready for.
14. For teams new to all of this… Version Control: Subversion, maybe Git/Mercurial/Bazaar/Monotone Issue/Feature Tracking: Spreadsheet ( Excel,Google Docs ) Collaboration: Google Docs Communication: IM, IRC, Email, Meetings
15. After your team is comfortable with using tools… Version Control: Subversion, also consider Git/Mercurial/Bazaar/Monotone. Issue/Feature Tracking: Trac, Mantis, JIRA Collaboration: Google Docs, Wiki Code Review: No formal tools; utilize Peer Review and/or Pair Programming Communication: IM, IRC, Email, Meetings Less big, formal meetings; more smaller “water cooler” meetings Resource Management: Spreadsheet ( Excel, Google Docs )
16. Tools well refined teams will use… Version Control: Subversion, Git, Mercurial, Bazaar, Monotone Preference towards DVCS Integrated Software Project Management:Trac, Mantis, JIRA, Teamwork, eGroupWare, RedMine Contains functionality for Bug Tracking, Collaboration, and Resource Management Another solution is to build links between the Intermediate level tools to help the workflow Communication: IM, IRC, Email, Meetings Less big, formal meetings; more smaller “water cooler” meetings Sandbox environment for previewing new features. Code Review: Review Board, Crucible, Code Collaborator, etc
17. Tools well refined teams will use…(cont) QA Automation Functional Testing ( Watir, Selenium ) Unit Testing ( jUnit, phpUnit, etc ) Continuous Integration: Hudson, CruiseControl Documentation Code Level ( Doxygen ) End-user ( Wiki, Word, Google Docs, etc )
18. Summary Importance of developing a process that works for you, rather make your team work in the process of a tool. One shoe doesn't fit all - what works in one team may not in another. Make small strides in making your team more efficient, not large leaps. Re-evaluate your processes regularly to see if the current tools are meeting your needs.
20. Thanks for coming! Tell me how you liked this talk… Submit feedback on this talk to http://joind.in/1302 Who I am: John Mertic Email: jmertic@php.net Blog: http://jmertic.wordpress.com Twitter: jmertic Who I work for: SugarCRM – http://www.sugarcrm.com