Work Flow for Solo Developers and Small Teams@emmajanehwhttp://drupalize.mehttp://developerworkflow.com/Problem: Developers...
Agenda• What problems version control can solve for you• Work flow examples• Branch management strategies• Q&A / therapy se...
What’s your role?
What are your tasks?downloadworkcreatesnapshotsharework
What’s your workflow?
What’s your branch management strategy?
How do we make Git do that?Git Shell, cross-platform
Git is 90% process and 10% technology.• If you can diagram the problem you are trying to solve; you are ready to startplay...
Version control (sort of) makes automation easier• Backup and restore• Synchronize across multiple platforms• Short-term “...
Terminology: locations• remote repository• trunk or main• head or tip• local repository• client• working copy
Terminology: actions and tasks
Set the stage!Before we can set our workflow we need to know who we’re dealing with andwhat they’re supposed to be doing.
Who’s on your code team?Write down a list of all of the people on your code team. This list mayinclude:• developers• desig...
Where do you fit in?Maybe you do everything. Maybe you only do some things. Write a list of allthe tasks you are actually r...
What are your tools and restraints?Often there are other things we need to fit into our workflow. Create a third listof any ...
What’s your workflow?With the team members identified, it’s time to sketch out how these people(ideally) work together.
Solo developer workflow
Partner workflow with no central server
Centralized workflow with no local commits
Decentralized with human gatekeeper
Decentralized with automated gatekeeper
Sketch out your workflow• Identify the roles on your team.• Identify the relationships between the team members.• Draw arro...
How will you manage your branches?With the workflow described, it’s time to look at how the code will besegregated into diff...
Popular strategies• http://nvie.com/posts/a-successful-git-branching-model• http://scottchacon.com/2011/08/31/github-flow.h...
Work flow and branch management
Work flow and branch management
Work flow and branch managementpeer review
Work flow and branch managementpeer reviewpublic / liveserver
Work flow and branch managementpeer reviewpublic / liveserver
Work flow and branch managementpeer reviewpublic / liveserverdev / testingserver
Work flow and branch managementpeer reviewpublic / liveserverdev / testingservermastermastermaster
Work flow and branch managementpeer reviewpublic / liveserverdev / testingservermastermastermasterdevdevdev
Work flow and branch managementfeature featurehotfix featurpeer reviewpublic / liveserverdev / testingservermastermastermast...
Work flow and branch managementfeature featurehotfix featurpeer reviewpublic / liveserverdev / testingservermastermastermast...
Sketch out your branch management strategy• Identify the roles on your team.• Identify the relationships between the team ...
Q&A + Git Therapy Session
You can make Git do what you want...now that youknow what you want.@emmajanehwhttp://drupalize.mehttp://developerworkflow.c...
Upcoming SlideShare
Loading in...5
×

Work Flow for Small Teams and Solo Devs

546

Published on

Problem: Developers face a steep learning curve when they choose to adopt version control.S
Solution: There is a version control strategy to suit your workflow, even if you've always thought it was too hard to bother.
Is your project folder filled with files like this: page.old.2.bak.php? Does Git make you angry inside? Do you resent that everyone except you regularly visits the magical place referred to as "The Command Line"? Are you afraid of the vagrant who stole your puppet? In this session you will get a gentle introduction to working efficiently as a developer in small teams, or as a solo developer. We'll focus on real world examples you can actually use to make your work faster and more efficient.
Yes, this is an introductory session. This is for people who feel shame that they don't know how to "just cd into yer root durrr" and get mad when people say "just diff me a patch" as if it's something as easy as making a mai thai even though you have no rum. No, you don't have to have git installed to attend. You don't even need to know where the command line is on your computer.

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
546
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Work Flow for Small Teams and Solo Devs

  1. 1. Work Flow for Solo Developers and Small Teams@emmajanehwhttp://drupalize.mehttp://developerworkflow.com/Problem: Developers face a steep learning curve when they choose to adopt version control.Solution: There is a version control strategy to suit your workflow, even if youve alwaysthought it was too hard to bother.Is your project folder filled with files like this: page.old.2.bak.php? Does Git make you angryinside? Do you resent that everyone except you regularly visits the magical place referred toas "The Command Line"? Are you afraid of the vagrant who stole your puppet? In this sessionyou will get a gentle introduction to working efficiently as a developer in small teams, or as asolo developer. Well focus on real world examples you can actually use to make your workfaster and more efficient.Yes, this is an introductory session. This is for people who feel shame that they dont knowhow to "just cd into yer root durrr" and get mad when people say "just diff me a patch" as ifits something as easy as making a mai thai even though you have no rum. No, you dont haveto have git installed to attend. You dont even need to know where the command line is onyour computer.
  2. 2. Agenda• What problems version control can solve for you• Work flow examples• Branch management strategies• Q&A / therapy session
  3. 3. What’s your role?
  4. 4. What are your tasks?downloadworkcreatesnapshotsharework
  5. 5. What’s your workflow?
  6. 6. What’s your branch management strategy?
  7. 7. How do we make Git do that?Git Shell, cross-platform
  8. 8. Git is 90% process and 10% technology.• If you can diagram the problem you are trying to solve; you are ready to startplaying with software. If you can’t draw the picture, you’re not ready for thetoolkit.Out of the box, Git does basically nothing for you. It’s your processes that will allow you toapply the tools you need to make version control work for you.
  9. 9. Version control (sort of) makes automation easier• Backup and restore• Synchronize across multiple platforms• Short-term “undo” to test implications of changes• Long-term “undo” to reverse bugs or regressions• Track changes to see why/how software evolved• Track ownership to give “credit” to change makers• Sandbox code to test changes without affecting other people and systems
  10. 10. Terminology: locations• remote repository• trunk or main• head or tip• local repository• client• working copy
  11. 11. Terminology: actions and tasks
  12. 12. Set the stage!Before we can set our workflow we need to know who we’re dealing with andwhat they’re supposed to be doing.
  13. 13. Who’s on your code team?Write down a list of all of the people on your code team. This list mayinclude:• developers• designers• project managers• clients
  14. 14. Where do you fit in?Maybe you do everything. Maybe you only do some things. Write a list of allthe tasks you are actually responsible for. This might include:• Writing code.• Reviewing code.• Pushing tested code to the server.• Fixing broken code.
  15. 15. What are your tools and restraints?Often there are other things we need to fit into our workflow. Create a third listof any tools and restraints you are aware of. This list might include:• Version control software (we’ll always assume Git)• Code hosting system (Bitbucket, GitHub, self-hosted)• Server ecosystem (dev / staging / live)• Code editors & integrated developer environments (vim, Dreamweaver,Sublime, PHPstorm)• Automated testing systems or review “gates”
  16. 16. What’s your workflow?With the team members identified, it’s time to sketch out how these people(ideally) work together.
  17. 17. Solo developer workflow
  18. 18. Partner workflow with no central server
  19. 19. Centralized workflow with no local commits
  20. 20. Decentralized with human gatekeeper
  21. 21. Decentralized with automated gatekeeper
  22. 22. Sketch out your workflow• Identify the roles on your team.• Identify the relationships between the team members.• Draw arrows to show how code flows between team members.
  23. 23. How will you manage your branches?With the workflow described, it’s time to look at how the code will besegregated into different branches.
  24. 24. Popular strategies• http://nvie.com/posts/a-successful-git-branching-model• http://scottchacon.com/2011/08/31/github-flow.html
  25. 25. Work flow and branch management
  26. 26. Work flow and branch management
  27. 27. Work flow and branch managementpeer review
  28. 28. Work flow and branch managementpeer reviewpublic / liveserver
  29. 29. Work flow and branch managementpeer reviewpublic / liveserver
  30. 30. Work flow and branch managementpeer reviewpublic / liveserverdev / testingserver
  31. 31. Work flow and branch managementpeer reviewpublic / liveserverdev / testingservermastermastermaster
  32. 32. Work flow and branch managementpeer reviewpublic / liveserverdev / testingservermastermastermasterdevdevdev
  33. 33. Work flow and branch managementfeature featurehotfix featurpeer reviewpublic / liveserverdev / testingservermastermastermasterdevdevdev
  34. 34. Work flow and branch managementfeature featurehotfix featurpeer reviewpublic / liveserverdev / testingservermastermastermasterdevdevdev
  35. 35. Sketch out your branch management strategy• Identify the roles on your team.• Identify the relationships between the team members.• Draw arrows to show how code flows between team members.• Time: 10 minutes
  36. 36. Q&A + Git Therapy Session
  37. 37. You can make Git do what you want...now that youknow what you want.@emmajanehwhttp://drupalize.mehttp://developerworkflow.com/

×