1. 10 Reasons your software Sucks (and the 10 practices you need to fix it)
2. Building teams that engineer better software Development Infrastructure Team Process Experience Automated Tests Agile, Lean, XP Object Orientation Source Control Team Dynamics SOLID + Patterns + Continuous Simple Design Automated Builds Learning Secure CodingDevelopment ∙ Infrastructure ∙ Team Process
12. Experience is Reality Reality is UserExperience Perception Developer Experience (UX) (API’s & SDK’s)Perception is the
13. visual design ia ux ui uxd scalability backendperformance security
14. Experience is the ia visual design Product ux ui uxdux scalability backend performance security
15. Experience is the Product
16. Development Encapsulation Inheritance Polymorphism Object OrientationIt’s amazing how many people write procedural code in an OO environment
17. Development Encapsulation Inheritance Polymorphism Object Orientation Use Right Tool for the Right JobIt’s amazing how many people write procedural code in an OO environment OO Functional Procedural
19. “The single greatest thing that you can do tomake your code more testable and healthy is tostart taking a Dependency Injection approach towriting software” - Real World .NET, C# and Silverlight Wrox Press 2012 Caleb Jenkins
23. MVC MVP More Repository State MVVM Visitor More More Abstract Factory Chain of Factory Responsibility Patterns More Facade Strategy Decorator
24. MVP MoreMore More RepositoryMVC More State More More MVVM Visitor More More More More More More Abstract Factory Chain of More Factory More More More MorePatterns Responsibility MoreMore More More Facade More Strategy Decorator
36. Development Object Orientation SOLID Patterns Secure Coding
37. Team Work
38. Team Work Communication Friction Silos Throughput Toe SteppingCoordination
39. Do you TestYour code ?
40. Do youUnitTest code ?Your
41. Do youautomatedUnitTest code ?Your
42. what’s the difference?
43. Traditional Test
44. Unit Test
45. Automated Test
46. TDD / BDD
47. I testmyappIt compiled didn’t it?
48. I test I testmy units ofapp workIt compiled in my didn’t it? app DI + Mock are my best friends
49. I test I test I runmy units automatedapp of unit work in my testsIt compiled didn’t it? app CI FTW! DI + Mock are my best friends
50. I test I test I run I testmy units automated firstapp of unit Red, work in my tests Refactor Green,It compiled Rinse + didn’t it? app CI FTW! Repeat! DI + Mock are my best friends
51. I test I test I run I test Imy units automated first writeapp of unit Red, Gr executable specs work in my tests actor een, Ref toIt compiled Rinse + didn’t it? app CI FTW! Repeat! test DI + Mock given <> <> when my are my best friends then<> app
52. I backup mycode Thumb drives are awesome!
53. I back Fileup my Sharecode Network Share is +1 from thumb drive Thumb drives are awesome!
54. I back File VSSup my Share wascode Network Share free is +1 from thumb drive So was Thumb herpes drives are awesome!
55. I back File VSS Branchup my Share was + Mergecode Network Share free Release is +1 from thumb drive Strategy So was Freedom Thumb herpes to code! drives are awesome! TFS, SVN, GIT
56. AutomatedI back File VSS Branch Buildsup my Share was + Merge CI, Autocode Network Share free Release mated is +1 from thumb drive Strategy Deploy “worked on my So was machine” Freedom Thumb herpes to code! drives are take THAT awesome! TFS, SVN auditors! , GIT
57. Source Control ProductionDeveloper Operations Common Deployment Scenario
58. Retrieve Source Control Production Source compile + send binaries configure + deploy binaries Developer Operations Common Deployment Scenario
59. Retrieve Source Control Production Source compile + send binaries configure + deploy binaries Developer Operations Common Deployment Scenario
60. Source Control ProductionDeveloper Operations Improved Deployment Scenario
61. runscriptUpdates getsourceSource Source Control buildbin Production send .build script configure + deploy binaries Developer Operations Improved Deployment Scenario
62. runscriptUpdates getsourceSource Source Control buildbin Production send .build script configure + deploy binaries Developer Operations Improved Deployment Scenario
63. VisualStudioBuild F5 is How I Roll
64. Visual CIStudio Included inBuild TFS, Cruise Control, Team City, Jenkins CI F5 is How I Roll
65. Visual CI Multi- EnvironmentStudio Included in BuildsBuild TFS, Cruise Control, Team City, Jenkins CI Dev, Test, S F5 is How tage, Produ I Roll ction
66. Visual CI Multi- Build EnvironmentStudio from Included in BuildsBuild TFS, Cruise Control, script Team City, Source? Jenkins CI Yes, run Dev, Test, this .build F5 is How Stage, I Roll Production
67. Visual CI Multi- Build HandsStudio Environment from Off Included in BuildsBuild TFS, Cruise Control, script Deployment Team City, Source? Jenkins CI Disaster Yes, run Recovery Plan Dev, Test, this .build + F5 is How Stage, Auditor I Roll Compliance Production done
69. Sprint Backlog Push Pull Agile, Lean, XP Learn by doingScrum Kanban Daily Stand Ups Size Units of Product Backlog Work
70. WAIT! What about …Task boards, Information RadiatorsReducing Work In Progress, Time BoxingSelf Organization, Pull vs Push,Empowerment, Continuous Learning,Planning Poker, Story Sizing, Velocity,Team Swarming… etc, etc, etc..
71. Scrum is Simplenot to be confused with easy
72. Pairing colocation silos Team Dynamics size colocationownership mentality Information (virtual) Broadcasting
73. Blogs How do you learn? Podcasts ConferencesContinuous Learning Books Sources?
74. http://dimecasts.net/Continuous Learning
75. What are we saying here?
76. Be PASSIONATEabout what you do
77. Elect good Code!
78. Building teams that engineer better software Development Infrastructure Team Process Automated1 Experience 5 8 Agile, Lean, XP Tests Object Source Team Dynamics2 Orientation 6 9 Control Automated Continuous3 SOLID + Patterns + 7 10 Simple Design Builds Learning4 Secure Coding