PHP Development Best Practices: The Untold Story of Geekville An Atlassian & Zend Webinar January 19 th, 2010
Housekeeping All phone lines are muted Submit the questions via WebEx Q&A window any time Q&A at the end Recording will be available
Douglas Butler Atlassian Jesse Gibbs Atlassian Joshua Solomin Zend
Geekville Project Geekville Geekville2.0 Our new goal:
Meet the Geekville Team Project Manager Developers Jon Lisa Eric Fred QA Engineers Ann Sam
How They Develop Each build their own stack Different editors Sources on a shared drive
How They Test Ann the geekonomics module isn t working Did you reboot?
Is There Anything Wrong With That? What do you mean when you say there s some risk of possible uncertainty as to the release date of 2.0?
Challenges Are we ready to go live? Can you define go live?
Is There a Better Way? IDE Issue Tracking Source Control YES!
Why Use an Integrated Development Environment (IDE)? Easier to write code Templates, code generation, content assist, Easier to produce quality code Syntax error highlighting, code analyzer, Easier to debug Profiling, remote debugging, Easier to understand and navigate code Type hierarchy, context aware search, Easier to collaborate Integrations with issue tracking, source control, task-focused programming It s all about better productivity!
Why Use a PHP Web Application Server During Development? Simple set up Installs all runtime components, preintegrated and tested Consistency of the PHP runtime environment Reduces number of issues stemming from different configurations Root cause analysis made simple Advanced debugging capabilities, e.g. code tracing You can get it for free Zend Server Community Edition
DEMO IDE & Web Application Server (Zend Studio & Zend Server)
Issue Tracking Why do you need it? Release Planning What s going into the release? (Visibility) Who s responsible? (Accountability) Task & Defect Management Workflow (Accountability) Notifications (Visibility) Dashboards and Reporting Stay on top of day-to-day status (Accountability) Keep stakeholders informed of true project status (Visibility)
JIRA Release Planning Agile Planning (w/ Greenhopper) Project Tracking OpenSocial Dashboards Email/RSS notifications Custom Workflows and Issue Types Bug, New Feature, Support Issue, etc. Different fields, workflows, default assignees Web or IDE-based interfaces
DEMO Issue Tracking (JIRA)
Source Control Why do you need it? Eliminate the fear of losing code Version tracking, tagging Maintain a stable version of your code Branching / Forking Keep every developer on the same codebase Central code repository scales with team size and distribution Check in / Check out prevents overwriting of changes, lost work First step towards enabling a consistent build/test/deploy process Builds deployments run from the central source control system
Subversion Open source - Free and can be customized if necessary More mature and feature rich than most commercial products Works on Linux, Windows, Mac, and Solaris Widely used and supported Integrated into many development tools Flexible in its implementation
Zend Studio, Zend Server, JIRA & SVN: How They All Play Together
DEMO Source Control (Subversion)
Our new goal: Geekville Geekville2.0 Results WE DID IT!!!
What have we learned? Cowboy coding from the Geekville team = high risk! Adopting best practices reduces the risk, and gets the project out on time! An IDE to code, profile, and debug faster and more reliably A PHP web application server to provide a consistent and unified PHP stack An issue tracking system to identify what needs to be done and who needs to do it A source control system to make sure everyone works from the same code tree without stepping on each other s changes
What s Next? Start building your professional development environment Zend Server - http://www.zend.com/products/server Zend Studio - http://www.zend.com/products/studio JIRA & JIRA Studio - http://www.atlassian.com/php Subversion - http://subversion.tigris.org Stay tuned for our next webinar on PHP automated testing & Continuous Integration
Q&A