290 likes | 433 Vues
Chris Tankersley shares his extensive experience in PHP and enterprise development from Zendcon 2013. Learn how to create robust and powerful software tailored to your needs without breaking the bank. Discover essential project management techniques, the importance of managed environments, and automation strategies that enhance productivity. Get insights on proper specifications, source control, and quality assurance to ensure your projects are successful. Optimize your resources and achieve enterprise-level development with limited funding.
E N D
Enterprise Development on a Shoestring Budget Zendcon 2013 Email: Chris@ctankersley.com Twitter: @dragonmantank
Who Am I? • Chris Tankersley • Been Doing PHP for 9+ Years • Lots of projects no one uses, and a few that some do: • https://github.com/dragonmantank • Worked in and with “enterprise” developers Zendcon 2013
So what is “Enterprise”? What you think you are getting: • Robust, Powerful software • Structured to meet your needs • Standardized development and best practices What most of them really are: • Overly complicated • Unrealistic • $$$$$$$$$$$$$$$$$$$$$$$$$$$ Zendcon 2013
So what is “Enterprise”? What you think you are getting: • Robust, Powerful software • Structured to meet your needs • Standardized development and best practices What most of them really are: • Overly complicated • Unrealistic • $$$$$$$$$$$$$$$$$$$$$$$$$$$ Zendcon 2013
How do you become Enterprise? • Pass (parts) of the Joel Test • Project Management • Managed Environments • Automated Processes • Standards! Zendcon 2013
The Joel Test Or at least the relevant parts • Do you have a spec? • Do you use source control? • Can you make a build in one step? • Do you make daily builds? • Do you have an up-to-date schedule? • Do you have a bug database? Zendcon 2013
Project Management You can’t do work unless you know what needs to be done • Pick a project management style • SCRUM • Kanban • Generate a functional and technical spec • Formal documents • User stories • Stick with it Zendcon 2013
Project Management Tools • Basecamp HQ • Planbox • Spreadsheet • Whiteboard/Corkboard Zendcon 2013
Scheduling and Budgets • Take your specs, build a schedule • Take your specs, and put a price on your time Zendcon 2013
Fast Right Cheap Zendcon 2013 You can only pick two, and these affect your schedule and budget.
Managed Environments Zendcon 2013
Managed Environments • A work area with a specific purpose • Should have at least these three areas: • Development • Quality • Production • If you can, add ‘Integration’ before Production • Code always moves up, not down, the chain Zendcon 2013
Development • Here Be Dragons • Code here is never considered stable • Can be any machine (local, a VM, space on a server, wherever) Zendcon 2013
Quality • Code should always work here (ignoring bugs) • This is where your QA testers live • Should be as close to Production’s setup as possible • Should have logging and debugging on Zendcon 2013
Integration • Production-lite • Used to catch deployment bugs • Uses production data • Should be EXACTLY the same as Production • Same OS, configuration, and version levels Zendcon 2013
Production Zendcon 2013
Managing Environments • Virtualization • Configuration Management Zendcon 2013
Software Zendcon 2013
Love your IDE • Pick an IDE (or a good text editor) and learn it • For text editing I prefer vim or SublimeText • For IDEs I prefer Zend Studio or PHPStorm • Pick what you use based on the power it gives you Zendcon 2013
Source Control • Pick One, it doesn’t matter • But don’t pick Visual Source Safe • Make sure that it works with your other tools • When in doubt, use git Zendcon 2013
Quality Assurance Setting up QA automation will help you find things that break • PHPUnit/Behat • Selenium/phantomjs + casperjs • PHPLOC • PHP Mess Detector • PHP_CodeSniffer • PHP Copy/Paste Dectector Zendcon 2013
Continuous Integration • Act of automating build tasks • How is a PHP project built? • Check out the source code from the SCM • Run the unit tests • Run any code helpers • Build documentation • Packaging Zendcon 2013
Continuous Integration Software • Jenkins • http://jenkins-php.org/ • phing and xinc Zendcon 2013
What about the real world? Zendcon 2013 I’ve painted a wonderful picture, but putting it into practice is something else
Get the pieces into place • Get Proper Specs • Get Source Control • Get Task/Bug Tracking • Get Environments • Get the tools Zendcon 2013
Automate as much as possible • Every step (but the specs, scheduling, and budget) can be automated • You don’t have to automate all of the steps • Some automation is better than nothing • Start small Zendcon 2013
Development • Get a good IDE/Text Editor that you are familiar with • Use the QA tools to make sure your code isn’t breaking • There’s a reason TDD/BDD keeps coming up at conferences • Keep track of bugs, and be strict about people following the process Zendcon 2013
Questions? Zendcon 2013
Thank You! • chris@ctankersley.com • @dragonmantank • https://joind.in/9091 Zendcon 2013