every developer needs to start right now<br />10 Practices<br />
Proaction//noun 1.the process or state of acting or of being active: The machine is not in action now. 2.something done or...
*<br />Caleb<br />* I’m here to help.<br />
Building teams that engineer better software<br />Development ∙ Team Work ∙ Process<br />
Development<br />
Development<br />
Development<br />Repeatable<br />Testable<br />Scalable<br />Reliable-able<br />Maintainable<br />
Development<br />Repeatable<br />Testable<br />Deliverable<br />Extensible<br />Scalable<br />Workable<br />Reliable-able<...
Development<br />Object Orientation<br />
Development<br />Object Orientation<br />It’s amazing how many people write procedural code in an OO environment<br />
Development<br />Encapsulation<br />Object Orientation<br />It’s amazing how many people write procedural code in an OO en...
Development<br />Encapsulation<br />Inheritance<br />Object Orientation<br />It’s amazing how many people write procedural...
Development<br />Encapsulation<br />Inheritance<br />Polymorphism<br />Object Orientation<br />It’s amazing how many peopl...
Development<br />Encapsulation<br />Inheritance<br />Polymorphism<br />Object Orientation<br />Use Right Tool for the Righ...
Development<br />Encapsulation<br />Inheritance<br />Polymorphism<br />Object Orientation<br />Use Right Tool for the Righ...
Development<br />Encapsulation<br />Inheritance<br />Polymorphism<br />Object Orientation<br />Use Right Tool for the Righ...
Development<br />Encapsulation<br />Inheritance<br />Polymorphism<br />Object Orientation<br />Use Right Tool for the Righ...
http://developingUX.com/di/<br />
Development<br />Object Orientation<br />SOLID<br />
Development<br />Object Orientation<br />SOLID<br />Patterns<br />
common<br />proven<br />Scenarios<br />Answers<br />common<br />Vocabulary<br />Patterns<br />
More<br />More<br />More<br />More<br />Data<br />UI<br />Component<br />Component<br />UI<br />UI<br />MVP<br />MVVM<br /...
Data<br />Component<br />UI<br />MVP<br />Repository<br />Abstract Factory<br />Patterns<br />
http://dimecasts.net/<br />Patterns<br />
Development<br />Object Orientation<br />SOLID<br />Patterns<br />
Development<br />Object Orientation<br />SOLID<br />Patterns<br />Secure Coding<br />
http://developingux.com/2010/02/10/secure-coding-101/<br />Secure Coding<br />
No Silver<br />Bullets<br />
Use .NET<br />Don’t Use Passwords<br />Input is Evil<br />Secure Coding<br />
http://xkcd.com/327/<br />
http://msdn.microsoft.com/security/<br />Secure Coding<br />
Development<br />Object Orientation<br />SOLID<br />Patterns<br />Secure Coding<br />
Team Work<br />
Team Work<br />      Communication<br />     Friction<br />
Team Work<br />      Communication<br />     Friction<br />Silos<br />     Throughput<br />
Team Work<br />      Communication<br />     Friction<br />Silos<br />     Toe Stepping<br />     Coordination<br />     T...
Team Work<br />Automated Tests<br />
Do<br />you <br />Test<br />Your<br />?<br />code<br />
Do<br />you <br />Test<br />Unit<br />Your<br />?<br />code<br />
Do<br />you <br />automated<br />Test<br />Unit<br />Your<br />?<br />code<br />
what’s the difference?<br />
Traditional Test<br />
Unit Test<br />
Automated Test<br />
TDD / BDD<br />
of Testing<br />
I test my app<br />of Testing<br />It compiled didn’t it?<br />
I test my app<br />I test units of work<br />in my app<br />of Testing<br />It compiled didn’t it?<br />DI + Mock are my b...
I test my app<br />I test units of work<br />in my app<br />I run automatedunit tests<br />of Testing<br />CI FTW!<br />It...
I test my app<br />I test units of work<br />in my app<br />I run automatedunit tests<br />I test first<br />Red, Green, R...
I test my app<br />I test units of work<br />in my app<br />I run automatedunit tests<br />I test first<br />I write execu...
Team Work<br />Automated Tests<br />Source Control<br />
of Source Control<br />
I back up my code<br />of Source Control<br />Thumb drives are awesome!<br />
I back up my code<br />File Share<br />Network Share is +1 from thumb drive<br />of Source Control<br />Thumb drives are a...
I back up my code<br />File Share<br />VSS was free<br />Network Share is +1 from thumb drive<br />of Source Control<br />...
I back up my code<br />File Share<br />VSS was free<br />Branch + Merge <br />Release<br />Strategy<br />Network Share is ...
I back up my code<br />File Share<br />VSS was free<br />Branch + Merge <br />Release<br />Strategy<br />AutomatedBuilds C...
Team Work<br />Automated Tests<br />Source Control<br />Automated Builds<br />
Source Control<br />Production<br />Developer<br />Operations<br />Common Deployment Scenario<br />
Source Control<br />Production<br />Developer<br />Operations<br />Common Deployment Scenario<br />
Retrieve Source<br />Source Control<br />Production<br />compile + send binaries<br />configure + deploy binaries<br />Dev...
Retrieve Source<br />Source Control<br />Production<br />compile + send binaries<br />configure + deploy binaries<br />Dev...
Source Control<br />Production<br />Developer<br />Operations<br />Improved Deployment Scenario<br />
Source Control<br />Production<br />Developer<br />Operations<br />Improved Deployment Scenario<br />
runscriptgetsourcebuildbin<br />Updates Source<br />Source Control<br />Production<br />send .build script<br />configure ...
runscriptgetsourcebuildbin<br />Updates Source<br />Source Control<br />Production<br />send .build script<br />configure ...
of Automated Builds<br />
Visual Studio Build<br />of Automated Builds<br />F5 is How I Roll<br />
Visual Studio Build<br />CI<br />Included in TFS Team Build, Cruise Control, Team City<br />of Automated Builds<br />F5 is...
Visual Studio Build<br />CI<br />Multi-Environment Builds<br />Included in TFS Team Build, Cruise Control, Team City<br />...
Visual Studio Build<br />CI<br />Multi-Environment Builds<br />Build from script<br />Included in TFS Team Build, Cruise C...
Visual Studio Build<br />CI<br />Multi-Environment Builds<br />Build from script<br />Hands Off Deployment<br />Included i...
Process<br />
IterationBacklog<br />Push Pull<br />Agile, Lean, XP<br />Iterations<br />Scrum<br />Kanban<br />Daily Stand Ups<br />Size...
Process<br />Agile, Lean, XP<br />Team Dynamics<br />
Pairing<br />colocation<br />silos<br />Team Dynamics<br />size<br />colocation<br />mentality (virtual)<br />ownership<br...
Process<br />Agile, Lean, XP<br />Team Dynamics<br />Continuous Learning<br />
How do you learn?<br />Blogs<br />Podcasts<br />Conferences<br />Continuous Learning<br />Sources?<br />Books<br />
http://dimecasts.net/<br />Continuous Learning<br />
What are we saying here?<br />
Be<br />PASSIONATE<br />about what you do<br />
Building teams that engineer better software<br />Development ∙ Team Work ∙ Process<br />
Thank you<br />http://developingux.com<br />@calebjenkins<br />caleb@calebjenkins.com<br />@proactionmentor<br />
Architecture<br />Architecture Spans Multiple Projects<br />Architectural Design ∙ Technology Direction<br />Platform ∙ Li...
our team is too small<br />for a dedicated architect<br />we must all wear multiple hats<br />
unfortunately architectural concerns<br />take a back seat to development<br />get in the way of development<br />
we don’t have time for<br />code reviews<br />software mentoring<br />coaching on better practices<br />POC’s<br />
development suffersfrom architectural distractions<br />architectural meetings<br />emails<br />team concerns<br />team pr...
Architect on Retainer<br />a cost effective solution to focus on architectural concerns<br />
Building teams that engineer better software<br />Development ∙ Team Work ∙ Process<br />
10 Practices<br />every developer needs to start right now<br />
Photo Credits.<br />http://www.flickr.com/photos/robbie_ewing/4407711326/<br />http://www.flickr.com/photos/phill_dvsn/299...
Photo Credits.<br />http://www.flickr.com/photos/planetpixel/1450985177/<br />http://www.flickr.com/photos/trinhanhtuan/32...
Photo Credits.<br />http://www.flickr.com/photos/pagedooley/1856663523/<br />http://www.flickr.com/photos/joelogon/3161771...
Upcoming SlideShare
Loading in...5
×

10 practices that every developer needs to start right now

2,279

Published on

Gathered from over 15 years of development and consulting experience with some of the largest development companies in the world. These are the 10 practices that are the lowest hanging fruit and will also have the greatest impact on the way that you write and deliver software. Enjoy.

Published in: Technology
4 Comments
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
2,279
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
4
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "10 practices that every developer needs to start right now"

  1. 1. every developer needs to start right now<br />10 Practices<br />
  2. 2. Proaction//noun 1.the process or state of acting or of being active: The machine is not in action now. 2.something done or performed; act; deed. 3.an act that one consciously wills and that may be characterized by physical or mental activity: a crisis that demands action instead of debate; hoping for constructive action by the landlord. 4.actions, habitual or usual acts; conduct: He is responsible for his actions. 5.energetic activity: a man of action.6.an exertion of power or force: the action of wind upon a ship's sails. 7.effect or influence: the action of morphine. 8.Physiology. a change in organs, tissues, or cells leading to performance of a function, as in muscular contraction.9.way or manner of moving 10.the mechanism by which something is operated, as that of a gun or a piano. 11.a military encounter or engagement; battle, skirmish, or the like. 12.actual engagement in fighting an enemy; military or naval combat: He saw action in Vietnam. 13.Literature. the main subject or story, as distinguished from an incidental episode.adjective. characterized by brisk or dynamic action: an action car; an action melodrama. take action,a.to start doing something: As soon as we get his decision, we'll take action. b.to start a legal procedure.<br />proactionmentors.com<br />http://dictionary.reference.com/browse/proaction<br />
  3. 3.
  4. 4.
  5. 5. *<br />Caleb<br />* I’m here to help.<br />
  6. 6.
  7. 7.
  8. 8.
  9. 9. Building teams that engineer better software<br />Development ∙ Team Work ∙ Process<br />
  10. 10. Development<br />
  11. 11. Development<br />
  12. 12. Development<br />Repeatable<br />Testable<br />Scalable<br />Reliable-able<br />Maintainable<br />
  13. 13. Development<br />Repeatable<br />Testable<br />Deliverable<br />Extensible<br />Scalable<br />Workable<br />Reliable-able<br />Maintainable<br />
  14. 14. Development<br />Object Orientation<br />
  15. 15. Development<br />Object Orientation<br />It’s amazing how many people write procedural code in an OO environment<br />
  16. 16. Development<br />Encapsulation<br />Object Orientation<br />It’s amazing how many people write procedural code in an OO environment<br />It’s amazing how many people write procedural code in an OO environment<br />
  17. 17. Development<br />Encapsulation<br />Inheritance<br />Object Orientation<br />It’s amazing how many people write procedural code in an OO environment<br />It’s amazing how many people write procedural code in an OO environment<br />
  18. 18. Development<br />Encapsulation<br />Inheritance<br />Polymorphism<br />Object Orientation<br />It’s amazing how many people write procedural code in an OO environment<br />It’s amazing how many people write procedural code in an OO environment<br />
  19. 19. Development<br />Encapsulation<br />Inheritance<br />Polymorphism<br />Object Orientation<br />Use Right Tool for the Right Job<br />It’s amazing how many people write procedural code in an OO environment<br />It’s amazing how many people write procedural code in an OO environment<br />
  20. 20. Development<br />Encapsulation<br />Inheritance<br />Polymorphism<br />Object Orientation<br />Use Right Tool for the Right Job<br />It’s amazing how many people write procedural code in an OO environment<br />It’s amazing how many people write procedural code in an OO environment<br />OO<br />
  21. 21. Development<br />Encapsulation<br />Inheritance<br />Polymorphism<br />Object Orientation<br />Use Right Tool for the Right Job<br />It’s amazing how many people write procedural code in an OO environment<br />It’s amazing how many people write procedural code in an OO environment<br />OO<br />Functional<br />
  22. 22. Development<br />Encapsulation<br />Inheritance<br />Polymorphism<br />Object Orientation<br />Use Right Tool for the Right Job<br />It’s amazing how many people write procedural code in an OO environment<br />It’s amazing how many people write procedural code in an OO environment<br />OO<br />Functional<br />Procedural<br />
  23. 23.
  24. 24.
  25. 25.
  26. 26.
  27. 27.
  28. 28.
  29. 29. http://developingUX.com/di/<br />
  30. 30. Development<br />Object Orientation<br />SOLID<br />
  31. 31. Development<br />Object Orientation<br />SOLID<br />Patterns<br />
  32. 32. common<br />proven<br />Scenarios<br />Answers<br />common<br />Vocabulary<br />Patterns<br />
  33. 33. More<br />More<br />More<br />More<br />Data<br />UI<br />Component<br />Component<br />UI<br />UI<br />MVP<br />MVVM<br />MVC<br />Repository<br />Factory<br />Strategy<br />More<br />More<br />State<br />More<br />Visitor<br />More<br />More<br />More<br />More<br />More<br />More<br />More<br />Abstract Factory<br />More<br />Chain of Responsibility<br />More<br />More<br />More<br />More<br />Patterns<br />More<br />More<br />Facade<br />More<br />Decorator<br />
  34. 34. Data<br />Component<br />UI<br />MVP<br />Repository<br />Abstract Factory<br />Patterns<br />
  35. 35. http://dimecasts.net/<br />Patterns<br />
  36. 36. Development<br />Object Orientation<br />SOLID<br />Patterns<br />
  37. 37. Development<br />Object Orientation<br />SOLID<br />Patterns<br />Secure Coding<br />
  38. 38. http://developingux.com/2010/02/10/secure-coding-101/<br />Secure Coding<br />
  39. 39. No Silver<br />Bullets<br />
  40. 40. Use .NET<br />Don’t Use Passwords<br />Input is Evil<br />Secure Coding<br />
  41. 41. http://xkcd.com/327/<br />
  42. 42. http://msdn.microsoft.com/security/<br />Secure Coding<br />
  43. 43. Development<br />Object Orientation<br />SOLID<br />Patterns<br />Secure Coding<br />
  44. 44. Team Work<br />
  45. 45. Team Work<br /> Communication<br /> Friction<br />
  46. 46. Team Work<br /> Communication<br /> Friction<br />Silos<br /> Throughput<br />
  47. 47. Team Work<br /> Communication<br /> Friction<br />Silos<br /> Toe Stepping<br /> Coordination<br /> Throughput<br />
  48. 48. Team Work<br />Automated Tests<br />
  49. 49. Do<br />you <br />Test<br />Your<br />?<br />code<br />
  50. 50. Do<br />you <br />Test<br />Unit<br />Your<br />?<br />code<br />
  51. 51. Do<br />you <br />automated<br />Test<br />Unit<br />Your<br />?<br />code<br />
  52. 52. what’s the difference?<br />
  53. 53. Traditional Test<br />
  54. 54. Unit Test<br />
  55. 55. Automated Test<br />
  56. 56. TDD / BDD<br />
  57. 57. of Testing<br />
  58. 58. I test my app<br />of Testing<br />It compiled didn’t it?<br />
  59. 59. I test my app<br />I test units of work<br />in my app<br />of Testing<br />It compiled didn’t it?<br />DI + Mock are my best friends<br />
  60. 60. I test my app<br />I test units of work<br />in my app<br />I run automatedunit tests<br />of Testing<br />CI FTW!<br />It compiled didn’t it?<br />DI + Mock are my best friends<br />
  61. 61. I test my app<br />I test units of work<br />in my app<br />I run automatedunit tests<br />I test first<br />Red, Green, Refactor Rinse + Repeat!<br />of Testing<br />CI FTW!<br />It compiled didn’t it?<br />DI + Mock are my best friends<br />
  62. 62. I test my app<br />I test units of work<br />in my app<br />I run automatedunit tests<br />I test first<br />I write executable specs to test my app<br />Red, Green, Refactor Rinse + Repeat!<br />of Testing<br />CI FTW!<br />It compiled didn’t it?<br />given <><br /><> should<br />DI + Mock are my best friends<br />
  63. 63. Team Work<br />Automated Tests<br />Source Control<br />
  64. 64. of Source Control<br />
  65. 65. I back up my code<br />of Source Control<br />Thumb drives are awesome!<br />
  66. 66. I back up my code<br />File Share<br />Network Share is +1 from thumb drive<br />of Source Control<br />Thumb drives are awesome!<br />
  67. 67. I back up my code<br />File Share<br />VSS was free<br />Network Share is +1 from thumb drive<br />of Source Control<br />So was herpes<br />Thumb drives are awesome!<br />
  68. 68. I back up my code<br />File Share<br />VSS was free<br />Branch + Merge <br />Release<br />Strategy<br />Network Share is +1 from thumb drive<br />of Source Control<br />Freedomto code!<br />So was herpes<br />Thumb drives are awesome!<br />TFS, SVN, GIT<br />
  69. 69. I back up my code<br />File Share<br />VSS was free<br />Branch + Merge <br />Release<br />Strategy<br />AutomatedBuilds CI, AutomatedDeploy<br />Network Share is +1 from thumb drive<br />of Source Control<br />Freedomto code!<br />“worked on my machine”<br />So was herpes<br />Thumb drives are awesome!<br />take THAT auditors!<br />TFS, SVN, GIT<br />
  70. 70. Team Work<br />Automated Tests<br />Source Control<br />Automated Builds<br />
  71. 71. Source Control<br />Production<br />Developer<br />Operations<br />Common Deployment Scenario<br />
  72. 72. Source Control<br />Production<br />Developer<br />Operations<br />Common Deployment Scenario<br />
  73. 73. Retrieve Source<br />Source Control<br />Production<br />compile + send binaries<br />configure + deploy binaries<br />Developer<br />Operations<br />Common Deployment Scenario<br />
  74. 74. Retrieve Source<br />Source Control<br />Production<br />compile + send binaries<br />configure + deploy binaries<br />Developer<br />Operations<br />Common Deployment Scenario<br />
  75. 75. Source Control<br />Production<br />Developer<br />Operations<br />Improved Deployment Scenario<br />
  76. 76. Source Control<br />Production<br />Developer<br />Operations<br />Improved Deployment Scenario<br />
  77. 77. runscriptgetsourcebuildbin<br />Updates Source<br />Source Control<br />Production<br />send .build script<br />configure + deploy binaries<br />Developer<br />Operations<br />Improved Deployment Scenario<br />
  78. 78. runscriptgetsourcebuildbin<br />Updates Source<br />Source Control<br />Production<br />send .build script<br />configure + deploy binaries<br />Developer<br />Operations<br />Improved Deployment Scenario<br />
  79. 79. of Automated Builds<br />
  80. 80. Visual Studio Build<br />of Automated Builds<br />F5 is How I Roll<br />
  81. 81. Visual Studio Build<br />CI<br />Included in TFS Team Build, Cruise Control, Team City<br />of Automated Builds<br />F5 is How I Roll<br />
  82. 82. Visual Studio Build<br />CI<br />Multi-Environment Builds<br />Included in TFS Team Build, Cruise Control, Team City<br />of Automated Builds<br />Dev, Test, Stage, Production<br />F5 is How I Roll<br />
  83. 83. Visual Studio Build<br />CI<br />Multi-Environment Builds<br />Build from script<br />Included in TFS Team Build, Cruise Control, Team City<br />Source? Yes, run this .build<br />of Automated Builds<br />Dev, Test, Stage, Production<br />F5 is How I Roll<br />
  84. 84. Visual Studio Build<br />CI<br />Multi-Environment Builds<br />Build from script<br />Hands Off Deployment<br />Included in TFS Team Build, Cruise Control, Team City<br />Source? Yes, run this .build<br />of Automated Builds<br />Disaster Recovery Plan +<br />Auditor Compliance done<br />Dev, Test, Stage, Production<br />F5 is How I Roll<br />
  85. 85. Process<br />
  86. 86. IterationBacklog<br />Push Pull<br />Agile, Lean, XP<br />Iterations<br />Scrum<br />Kanban<br />Daily Stand Ups<br />Size Units of Work<br />ProductBacklog<br />
  87. 87. Process<br />Agile, Lean, XP<br />Team Dynamics<br />
  88. 88. Pairing<br />colocation<br />silos<br />Team Dynamics<br />size<br />colocation<br />mentality (virtual)<br />ownership<br />Information Broadcasting<br />
  89. 89. Process<br />Agile, Lean, XP<br />Team Dynamics<br />Continuous Learning<br />
  90. 90. How do you learn?<br />Blogs<br />Podcasts<br />Conferences<br />Continuous Learning<br />Sources?<br />Books<br />
  91. 91. http://dimecasts.net/<br />Continuous Learning<br />
  92. 92. What are we saying here?<br />
  93. 93. Be<br />PASSIONATE<br />about what you do<br />
  94. 94. Building teams that engineer better software<br />Development ∙ Team Work ∙ Process<br />
  95. 95. Thank you<br />http://developingux.com<br />@calebjenkins<br />caleb@calebjenkins.com<br />@proactionmentor<br />
  96. 96. Architecture<br />Architecture Spans Multiple Projects<br />Architectural Design ∙ Technology Direction<br />Platform ∙ Library ∙ Toolkit Adoption<br />Coding Practices & Standards ∙ Code Reviews<br />Team Process ∙ Automated Builds ∙ Automated Unit Testing<br />Development Coaching ∙Pair Programming<br />Lead Development<br />Lead Development<br />Lead Development<br />Lead Development<br />Project Coding<br />Project Coding<br />Project Coding<br />Project Coding<br />Lead Developer<br />focused on specific projects<br />
  97. 97. our team is too small<br />for a dedicated architect<br />we must all wear multiple hats<br />
  98. 98. unfortunately architectural concerns<br />take a back seat to development<br />get in the way of development<br />
  99. 99. we don’t have time for<br />code reviews<br />software mentoring<br />coaching on better practices<br />POC’s<br />
  100. 100. development suffersfrom architectural distractions<br />architectural meetings<br />emails<br />team concerns<br />team process & enablement<br />
  101. 101. Architect on Retainer<br />a cost effective solution to focus on architectural concerns<br />
  102. 102. Building teams that engineer better software<br />Development ∙ Team Work ∙ Process<br />
  103. 103. 10 Practices<br />every developer needs to start right now<br />
  104. 104. Photo Credits.<br />http://www.flickr.com/photos/robbie_ewing/4407711326/<br />http://www.flickr.com/photos/phill_dvsn/2999253384/sizes/l/<br />http://www.flickr.com/photos/nikophoto33/3153621333/<br />http://www.flickr.com/photos/houseofsims/3121970656/<br />http://www.flickr.com/photos/houseofsims/3121146677/<br />http://www.flickr.com/photos/houseofsims/3121979028/<br />
  105. 105. Photo Credits.<br />http://www.flickr.com/photos/planetpixel/1450985177/<br />http://www.flickr.com/photos/trinhanhtuan/3292319375/<br />http://www.flickr.com/photos/pagedooley/2760837590/<br />http://www.flickr.com/photos/pagedooley/3049370253/<br />http://www.flickr.com/photos/bruceberrien/4262228892/<br />http://www.flickr.com/photos/8363028@N08/3050922569/<br />
  106. 106. Photo Credits.<br />http://www.flickr.com/photos/pagedooley/1856663523/<br />http://www.flickr.com/photos/joelogon/3161771573/<br />http://www.flickr.com/photos/carbonnyc/2294144289/<br />http://www.flickr.com/photos/shadowgate/4515454160/<br />http://www.flickr.com/photos/grahamcrewe/396400543/<br />http://www.lostechies.com/blogs/derickbailey/archive/2009/02/11/solid-development-principles-in-motivational-pictures.aspx<br />

×