Home >Technology >Enterprise Development on a Shoestring Budget

Enterprise Development on a Shoestring Budget

Date post:28-Nov-2014
View:1,834 times
Download:0 times
Share this document with a friend
No matter what language you use, developing code is the same ñ spec, code, deploy, maintain. The “Big Boys” have teams to manage each task, but what happens when you don’t? I’ll go over some different methods for maintaining internal and external programs that are cheap, open source, and make your life easier. PHP has a plethora of tools for us to use to effectively code and maintain our projects; and the best part is that they are generally inexpensive or even free. The trick is finding and using these tools effectively in a workflow that the developer can use.
  • 1. Enterprise Development on a Shoestring Budget EMAIL: [email protected] TWITTER: @DRAGONMANTANK 1

2. 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 2 3. 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 $$$$$$$$$$$$$$$$$$$$$$$$$$$ 3 4. 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 $$$$$$$$$$$$$$$$$$$$$$$$$$$ 4 5. How do you become Enterprise? Pass (parts) of the Joel Test Project Management Managed Environments Automated Processes Standards! 5 6. The Joel Test 1. Do you have a spec? 2. Do you use source control? 3. Can you make a build in one step? 4. Do you make daily builds? 5. Do you have an up-to-date schedule? 6. Do you have a bug database? Or at least the relevant parts 6 7. Project Management Pick a project management style SCRUM Kanban Generate a functional and technical spec Formal documents User stories Stick with it You cant do work unless you know what needs to be done 7 8. Project Management Tools Basecamp HQ Planbox Spreadsheet Whiteboard/Corkboard 8 9. Scheduling and Budgets Take your specs, build a schedule Take your specs, and put a price on your time 9 10. Fast Cheap Right You can only pick two, and these affect your schedule and budget. 10 11. Managed Environments 11 12. 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 12 13. Development Here Be Dragons Code here is never considered stable Can be any machine (local, a VM, space on a server, wherever) 13 14. Quality Code should always work here (ignoring bugs) This is where your QA testers live Should be as close to Productions setup as possible Should have logging and debugging on 14 15. Integration Production-lite Used to catch deployment bugs Uses production data Should be EXACTLY the same as Production Same OS, configuration, and version levels 15 16. Production 16 17. Managing Environments Virtualization Configuration Management 17 18. Software 18 19. 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 19 20. Source Control Pick One, it doesnt matter But dont pick Visual Source Safe Make sure that it works with your other tools When in doubt, use git 20 21. 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 21 22. 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 22 23. Continuous Integration Software Jenkins http://jenkins-php.org/ phing and xinc 23 24. What about the real world? IVE PAINTED A WONDERFUL PICTURE, BUT PUTTING IT INTO PRACTICE IS SOMETHING ELSE 24 25. Get the pieces into place Get Proper Specs Get Source Control Get Task/Bug Tracking Get Environments Get the tools 25 26. Automate as much as possible Every step (but the specs, scheduling, and budget) can be automated You dont have to automate all of the steps Some automation is better than nothing Start small 26 27. Development Get a good IDE/Text Editor that you are familiar with Use the QA tools to make sure your code isnt breaking Theres a reason TDD/BDD keeps coming up at conferences Keep track of bugs, and be strict about people following the process 27 28. Questions? 28 29. Thank You! [email protected] @dragonmantank https://joind.in/9091 29

Popular Tags:

Click here to load reader

Embed Size (px)