Enterprise Development on a Shoestring Budget

2,258 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,258
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Enterprise Development on a Shoestring Budget

  1. 1. Enterprise Development on a Shoestring Budget EMAIL: CHRIS@CTANKERSLEY.COM TWITTER: @DRAGONMANTANK 1
  2. 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. 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. 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. 5. How do you become Enterprise?  Pass (parts) of the Joel Test  Project Management  Managed Environments  Automated Processes  Standards! 5
  6. 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. 7. Project Management  Pick a project management style  SCRUM  Kanban  Generate a functional and technical spec  Formal documents  User stories  Stick with it You can‟t do work unless you know what needs to be done 7
  8. 8. Project Management Tools  Basecamp HQ  Planbox  Spreadsheet  Whiteboard/Corkboard 8
  9. 9. Scheduling and Budgets  Take your specs, build a schedule  Take your specs, and put a price on your time 9
  10. 10. Fast Cheap Right You can only pick two, and these affect your schedule and budget. 10
  11. 11. Managed Environments 11
  12. 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. 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. 14. 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 14
  15. 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. 16. Production 16
  17. 17. Managing Environments  Virtualization  Configuration Management 17
  18. 18. Software 18
  19. 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. 20. 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 20
  21. 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. 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. 23. Continuous Integration Software  Jenkins  http://jenkins-php.org/  phing and xinc 23
  24. 24. What about the real world? I‟VE PAINTED A WONDERFUL PICTURE, BUT PUTTING IT INTO PRACTICE IS SOMETHING ELSE 24
  25. 25. Get the pieces into place  Get Proper Specs  Get Source Control  Get Task/Bug Tracking  Get Environments  Get the tools 25
  26. 26. 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 26
  27. 27. 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 27
  28. 28. Questions? 28
  29. 29. Thank You!  chris@ctankersley.com  @dragonmantank  https://joind.in/9091 29

×