BEST PRACTICES FOR THE SOLE DEVELOPER 1 Friday, May 17, 13
May 18, 2015
BEST PRACTICES FOR THESOLE DEVELOPER
1Friday, May 17, 13
JOHN CONGDON
2Friday, May 17, 13
JOHN CONGDON
•PHP Developer Since 2003
2Friday, May 17, 13
JOHN CONGDON
•PHP Developer Since 2003• SDPHP User Group Organizer
2Friday, May 17, 13
JOHN CONGDON
•PHP Developer Since 2003• SDPHP User Group Organizer• Sr PHP Developer for Networx Online
2Friday, May 17, 13
JOHN CONGDON
•PHP Developer Since 2003• SDPHP User Group Organizer• Sr PHP Developer for Networx Online•PhoneBurner.com
2Friday, May 17, 13
JOHN CONGDON
•PHP Developer Since 2003• SDPHP User Group Organizer• Sr PHP Developer for Networx Online•PhoneBurner.com•MeetingBurner.com
2Friday, May 17, 13
JOHN CONGDON
•PHP Developer Since 2003• SDPHP User Group Organizer• Sr PHP Developer for Networx Online•PhoneBurner.com•MeetingBurner.com• FaxBurner.com
2Friday, May 17, 13
JOHN CONGDON
•PHP Developer Since 2003• SDPHP User Group Organizer• Sr PHP Developer for Networx Online•PhoneBurner.com•MeetingBurner.com• FaxBurner.com•Over 8 Years Being a Sole Developer
2Friday, May 17, 13
TYPES OF SOLE DEVELOPERS
3Friday, May 17, 13
TYPES OF SOLE DEVELOPERS
• The “IT” Guy
•Works for a small company, but is the only developer
3Friday, May 17, 13
TYPES OF SOLE DEVELOPERS
• The “IT” Guy
•Works for a small company, but is the only developer
• The Entrepreneur
•Works for him/herself on their own project
3Friday, May 17, 13
TYPES OF SOLE DEVELOPERS
• The “IT” Guy
•Works for a small company, but is the only developer
• The Entrepreneur
•Works for him/herself on their own project
• The Remote Developer
•Works with others, but by themselves
3Friday, May 17, 13
Don’t Do It *IT Guy
4Friday, May 17, 13
HAVE A SET SCHEDULE *Remote, Entrepreneur
5Friday, May 17, 13
http://www.scrollinondubs.com/2007/05/08/you-dont-know-what-you-dont-know/
Learn To Know What You Don’t Know *Everyone
6Friday, May 17, 13
PARTICIPATE IN COMMUNITY
7Friday, May 17, 13
PARTICIPATE IN COMMUNITY
National
Conferences
7Friday, May 17, 13
PARTICIPATE IN COMMUNITY
National
ConferencesRegional
Conferences
7Friday, May 17, 13
PARTICIPATE IN COMMUNITY
National
ConferencesRegional
Conferences
User Groups
7Friday, May 17, 13
PARTICIPATE IN COMMUNITY
National
Conferences
IRC
RegionalConferences
User Groups
7Friday, May 17, 13
CONFERENECS
• PHP|Tek (You’re here :)
• ZendCon
• CodeWorks
• SunshinePHP
• LoneStar PHP
•MidWest PHP
• SDPHP (Coming soon)
8Friday, May 17, 13
Comment Your Code
9Friday, May 17, 13
Comment Your Code
9Friday, May 17, 13
COMMENTS MUST BE USEFUL
10Friday, May 17, 13
COMMENTS MUST BE USEFUL
if ($a >= 21){ // if age is over 21 // beer is allow $b = true;}
10Friday, May 17, 13
COMMENTS MUST BE USEFUL
if ($a >= 21){ // if age is over 21 // beer is allow $b = true;}
// The current legal age to drink// is 21 years old
if ($users_age >= 21){ $beer_allowed = true;}
10Friday, May 17, 13
11Friday, May 17, 13
Use a Coding Standard
12Friday, May 17, 13
A coding standard helps everyone on the team read code more easily.
if (DEBUG){ file_put_contents( $file_handle, $object->getErrorMessage() . PHP_EOL, FILE_APPEND );}
13Friday, May 17, 13
Issue Tracking
14Friday, May 17, 13
Issue Tracking
14Friday, May 17, 13
Many Options, Choose One And Use It
Issue Tracking
14Friday, May 17, 13
Many Options, Choose One And Use It
•Trello•Pivotal Tracker
•GitHub Issues•BitBucket Issues
•BugZilla•Mantis
Issue Tracking
14Friday, May 17, 13
PROJECT MANAGEMENT
• Breakdown your tasks
• Track progress
• Stay Focused
• Sense of accomplishment
15Friday, May 17, 13
STAY FOCUSED
• Track time
• Try the Pomodoro Technique
•Work 25 minutes, stand and stretch for 5 minutes
• Every 4th break, make it a little longer, 15-30 minutes
• Lather, rinse, and repeat
16Friday, May 17, 13
Version Control
17Friday, May 17, 13
How I Got Started With Version Control
18Friday, May 17, 13
How I Got Started With Version Control
• I used two directories on the same server (it’s a starting point)• I learned to use the Git-Flow workflow• http://nvie.com/posts/a-successful-git-branching-model/
18Friday, May 17, 13
How I Got Started With Version Control
• I used two directories on the same server (it’s a starting point)• I learned to use the Git-Flow workflow• http://nvie.com/posts/a-successful-git-branching-model/
Starting in my production codegit initgit add -A git commit -m “Initial import”
18Friday, May 17, 13
How I Got Started With Version Control
• I used two directories on the same server (it’s a starting point)• I learned to use the Git-Flow workflow• http://nvie.com/posts/a-successful-git-branching-model/
Starting in my production codegit initgit add -A git commit -m “Initial import”
I then created a dev directorygit clone /path/to/production .
code, commit, and test here
18Friday, May 17, 13
How I Got Started With Version Control
• I used two directories on the same server (it’s a starting point)• I learned to use the Git-Flow workflow• http://nvie.com/posts/a-successful-git-branching-model/
Starting in my production codegit initgit add -A git commit -m “Initial import”
I then created a dev directorygit clone /path/to/production .
code, commit, and test here
Time to deployGo to production directorygit remote add dev /path/to/developmentgit pull dev master
18Friday, May 17, 13
Unit Testing
19Friday, May 17, 13
BILLING AND INVOICING
20Friday, May 17, 13
BILLING AND INVOICING
• It’s easy to end up working for free :-(
20Friday, May 17, 13
BILLING AND INVOICING
• It’s easy to end up working for free :-(
•Don’t let it happen to you
20Friday, May 17, 13
BILLING AND INVOICING
• It’s easy to end up working for free :-(
•Don’t let it happen to you
• I recommend freshbooks.com
20Friday, May 17, 13
BILLING AND INVOICING
• It’s easy to end up working for free :-(
•Don’t let it happen to you
• I recommend freshbooks.com
• Track invoices (especially outstanding ones)
20Friday, May 17, 13
BILLING AND INVOICING
• It’s easy to end up working for free :-(
•Don’t let it happen to you
• I recommend freshbooks.com
• Track invoices (especially outstanding ones)
• Accept payments
20Friday, May 17, 13
BILLING AND INVOICING
• It’s easy to end up working for free :-(
•Don’t let it happen to you
• I recommend freshbooks.com
• Track invoices (especially outstanding ones)
• Accept payments
• Track estimates / expenses / time
20Friday, May 17, 13
Continuous Integration
21Friday, May 17, 13
Contribute to Open Source
22Friday, May 17, 13
Hire a Consultant
23Friday, May 17, 13
Any Questions?
24Friday, May 17, 13
JOHN CONGDON
PLEASE RATE ON JOIND.IN
https://joind.in/8156
25Friday, May 17, 13
JOHN CONGDON• twitter : @johncongdon
PLEASE RATE ON JOIND.IN
https://joind.in/8156
25Friday, May 17, 13
JOHN CONGDON• twitter : @johncongdon • email: [email protected]
PLEASE RATE ON JOIND.IN
https://joind.in/8156
25Friday, May 17, 13
JOHN CONGDON• twitter : @johncongdon • email: [email protected]• irc: freednode.net (#sdphp)
PLEASE RATE ON JOIND.IN
https://joind.in/8156
25Friday, May 17, 13
THANK YOU!!!!
26Friday, May 17, 13