Best Practice For The Sole Developer

Post on 18-May-2015

567 views 1 download

Tags:

description

As a single developer, I needed to learn how to work better. I want to share what I learned, and how I improved.

Transcript of Best Practice For The Sole Developer

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: john@johncongdon.com

PLEASE RATE ON JOIND.IN

https://joind.in/8156

25Friday, May 17, 13

JOHN CONGDON• twitter : @johncongdon • email: john@johncongdon.com• irc: freednode.net (#sdphp)

PLEASE RATE ON JOIND.IN

https://joind.in/8156

25Friday, May 17, 13

THANK YOU!!!!

26Friday, May 17, 13