290 likes | 422 Views
Enterprise Development on a Shoestring Budget. 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.
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