10 Reasons Your Software Sucks - Election 2012 Edition

1,784 views
1,622 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,784
On SlideShare
0
From Embeds
0
Number of Embeds
193
Actions
Shares
0
Downloads
18
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

10 Reasons Your Software Sucks - Election 2012 Edition

  1. 1. 10 Reasons your software Sucks (and the 10 practices you need to fix it)
  2. 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
  3. 3. developingUX.com@calebjenkins speakermix.com/calebjenkins
  4. 4. developingUX.com@calebjenkins speakermix.com/calebjenkins
  5. 5. developingUX.com@calebjenkins speakermix.com/calebjenkins
  6. 6. back to…10 Reasons why your software Sucks (and the 10 practices you need to fix it)
  7. 7. Building teams that engineer better software
  8. 8. Development
  9. 9. Development Repeatable DeliverableTestable Extensible Workable Scalable Maintainable Reliable-able
  10. 10. (User) ExperienceMatters!
  11. 11. UserExperience Developer Experience (UX) (API’s & SDK’s)
  12. 12. Experience is Reality Reality is UserExperience Perception Developer Experience (UX) (API’s & SDK’s)Perception is the
  13. 13. visual design ia ux ui uxd scalability backendperformance security
  14. 14. Experience is the ia visual design Product ux ui uxdux scalability backend performance security
  15. 15. Experience is the Product
  16. 16. Development Encapsulation Inheritance Polymorphism Object OrientationIt’s amazing how many people write procedural code in an OO environment
  17. 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
  18. 18. http://developingUX.com/di/
  19. 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
  20. 20. Development Experience Object Orientation SOLID + Patterns + Simple Design
  21. 21. ScenariosVocabulary Answers SOLID + Patterns + Simple Design
  22. 22. MVC MVP Repository MVVM Visitor Factory Patterns Facade Strategy Decorator
  23. 23. MVC MVP More Repository State MVVM Visitor More More Abstract Factory Chain of Factory Responsibility Patterns More Facade Strategy Decorator
  24. 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
  25. 25. MVC Repository Abstract Factory or StrategySOLID + Patterns + Simple Design
  26. 26. “Any intelligent fool can make things Bigger, more complex and more violent It takes a touch of Genius –and a lot of courage – to move in the opposite direction” – Albert Einstein
  27. 27. SOLID + Patterns + Simple Design
  28. 28. Development Experience Object Orientation SOLID + Patterns + Simple Design
  29. 29. Development Experience Object Orientation SOLID + Patterns + Simple Design Secure Coding
  30. 30. http://developingux.com/2010/02/10/secure-coding-101/Secure Coding
  31. 31. No Silver
  32. 32. Play in a Sandbox Don’t Use Passwords Input is EvilSecure Coding
  33. 33. runtime Play in amemory Sandbox Don’t Use Passwords least “safe” privilege libraries Input is Evil Secure Coding
  34. 34. http://xkcd.com/327/
  35. 35. http://msdn.microsoft.com/security/Secure Coding
  36. 36. Development Object Orientation SOLID Patterns Secure Coding
  37. 37. Team Work
  38. 38. Team Work Communication Friction Silos Throughput Toe SteppingCoordination
  39. 39. Do you TestYour code ?
  40. 40. Do youUnitTest code ?Your
  41. 41. Do youautomatedUnitTest code ?Your
  42. 42. what’s the difference?
  43. 43. Traditional Test
  44. 44. Unit Test
  45. 45. Automated Test
  46. 46. TDD / BDD
  47. 47. I testmyappIt compiled didn’t it?
  48. 48. I test I testmy units ofapp workIt compiled in my didn’t it? app DI + Mock are my best friends
  49. 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. 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. 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. 52. I backup mycode Thumb drives are awesome!
  53. 53. I back Fileup my Sharecode Network Share is +1 from thumb drive Thumb drives are awesome!
  54. 54. I back File VSSup my Share wascode Network Share free is +1 from thumb drive So was Thumb herpes drives are awesome!
  55. 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. 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. 57. Source Control ProductionDeveloper Operations Common Deployment Scenario
  58. 58. Retrieve Source Control Production Source compile + send binaries configure + deploy binaries Developer Operations Common Deployment Scenario
  59. 59. Retrieve Source Control Production Source compile + send binaries configure + deploy binaries Developer Operations Common Deployment Scenario
  60. 60. Source Control ProductionDeveloper Operations Improved Deployment Scenario
  61. 61. runscriptUpdates getsourceSource Source Control buildbin Production send .build script configure + deploy binaries Developer Operations Improved Deployment Scenario
  62. 62. runscriptUpdates getsourceSource Source Control buildbin Production send .build script configure + deploy binaries Developer Operations Improved Deployment Scenario
  63. 63. VisualStudioBuild F5 is How I Roll
  64. 64. Visual CIStudio Included inBuild TFS, Cruise Control, Team City, Jenkins CI F5 is How I Roll
  65. 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. 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. 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
  68. 68. Process
  69. 69. Sprint Backlog Push Pull Agile, Lean, XP Learn by doingScrum Kanban Daily Stand Ups Size Units of Product Backlog Work
  70. 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. 71. Scrum is Simplenot to be confused with easy 
  72. 72. Pairing colocation silos Team Dynamics size colocationownership mentality Information (virtual) Broadcasting
  73. 73. Blogs How do you learn? Podcasts ConferencesContinuous Learning Books Sources?
  74. 74. http://dimecasts.net/Continuous Learning
  75. 75. What are we saying here?
  76. 76. Be PASSIONATEabout what you do
  77. 77. Elect good Code!
  78. 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
  79. 79. developingUX.com@calebjenkins speakermix.com/calebjenkins
  80. 80. developingUX.com@calebjenkins speakermix.com/calebjenkins
  81. 81. © Michael Cummings - http://dreaminpictures.comhttp://www.flickr.com/photos/robbie_ewing/4407711326/http://www.flickr.com/photos/phill_dvsn/2999253384/sizes/l/http://www.flickr.com/photos/nikophoto33/3153621333/http://www.flickr.com/photos/houseofsims/3121970656/http://www.flickr.com/photos/houseofsims/3121146677/
  82. 82. http://www.flickr.com/photos/houseofsims/3121979028/http://www.flickr.com/photos/planetpixel/1450985177/http://www.flickr.com/photos/trinhanhtuan/3292319375/http://www.flickr.com/photos/pagedooley/2760837590/http://www.flickr.com/photos/pagedooley/3049370253/http://www.flickr.com/photos/bruceberrien/4262228892/http://www.flickr.com/photos/8363028@N08/3050922569/
  83. 83. http://www.flickr.com/photos/pagedooley/1856663523/http://www.flickr.com/photos/joelogon/3161771573/http://www.flickr.com/photos/carbonnyc/2294144289/http://www.flickr.com/photos/shadowgate/4515454160/http://www.flickr.com/photos/grahamcrewe/396400543/http://www.lostechies.com/blogs/derickbailey/archive/2009/02/11/solid-development-principles-in-motivational-pictures.aspx
  84. 84. Copyright © 2011 – Buddy Lindsey – Used with PermissionCopyright Sesame Street – Used without Permission

×