0
10 Reasons your software Sucks   (and the 10 practices you need to fix it)
Building teams that engineer better software  Development           Infrastructure      Team Process      Experience      ...
developingUX.com@calebjenkins                speakermix.com/calebjenkins
developingUX.com@calebjenkins                speakermix.com/calebjenkins
developingUX.com@calebjenkins                speakermix.com/calebjenkins
back to…10 Reasons why your software Sucks (and the 10 practices you need to fix it)
Building teams that engineer better software
Development
Development                                  Repeatable                 DeliverableTestable                               ...
(User) ExperienceMatters!
UserExperience     Developer               Experience   (UX)      (API’s & SDK’s)
Experience is   Reality                 Reality is  UserExperience      Perception                  Developer             ...
visual design               ia         ux ui uxd scalability  backendperformance       security
Experience is the ia                    visual design    Product ux ui uxdux    scalability       backend     performance ...
Experience is the Product
Development                                        Encapsulation                                                          ...
Development                                        Encapsulation                                                          ...
http://developingUX.com/di/
“The single greatest thing that you can do tomake your code more testable and healthy is tostart taking a Dependency Injec...
Development          Experience     Object Orientation  SOLID + Patterns + Simple Design
ScenariosVocabulary                                        Answers    SOLID + Patterns + Simple Design
MVC       MVP               Repository      MVVM        Visitor                                 Factory           Patterns...
MVC        MVP            More  Repository        State      MVVM            Visitor                 More                M...
MVP MoreMore         More                                RepositoryMVC                                  More      State Mo...
MVC                            Repository                                   Abstract Factory                              ...
“Any intelligent fool can make things   Bigger, more complex and more violent It takes a touch of Genius –and a lot of cou...
SOLID + Patterns + Simple Design
Development          Experience     Object Orientation  SOLID + Patterns + Simple Design
Development         Experience    Object Orientation   SOLID + Patterns + Simple Design    Secure Coding
http://developingux.com/2010/02/10/secure-coding-101/Secure Coding
No Silver
Play in a        Sandbox         Don’t Use                        Passwords                    Input is EvilSecure Coding
runtime                   Play in amemory             Sandbox         Don’t Use                                   Password...
http://xkcd.com/327/
http://msdn.microsoft.com/security/Secure Coding
Development  Object Orientation        SOLID      Patterns    Secure Coding
Team Work
Team Work                   Communication                 Friction Silos    Throughput         Toe SteppingCoordination
Do you     TestYour code ?
Do youUnitTest     code ?Your
Do youautomatedUnitTest  code ?Your
what’s the difference?
Traditional Test
Unit Test
Automated Test
TDD / BDD
I testmyappIt compiled  didn’t it?
I test         I testmy             units               ofapp            workIt compiled               in my  didn’t it?  ...
I test         I test I runmy             units automatedapp               of     unit               work               in...
I test         I test I run I testmy             units automated firstapp               of     unit Red,               wor...
I test         I test I run I test          Imy             units automated first        writeapp               of     uni...
I backup mycode  Thumb drives are awesome!
I back Fileup my Sharecode Network Share           is +1 from          thumb drive  Thumb drives are awesome!
I back File        VSSup my Share wascode Network Share free           is +1 from          thumb drive                    ...
I back File        VSS            Branchup my Share was                    +                                  Mergecode Ne...
AutomatedI back File        VSS            Branch                                              Buildsup my Share was      ...
Source Control                ProductionDeveloper                    Operations     Common Deployment Scenario
Retrieve                Source Control                       Production Source                            compile +       ...
Retrieve                Source Control                       Production Source                            compile +       ...
Source Control                ProductionDeveloper                    Operations     Improved Deployment Scenario
runscriptUpdates                           getsourceSource         Source Control      buildbin       Production          ...
runscriptUpdates                           getsourceSource         Source Control      buildbin       Production          ...
VisualStudioBuild F5 is How   I Roll
Visual CIStudio             Included inBuild        TFS, Cruise               Control,              Team City,            ...
Visual CI                    Multi-                             EnvironmentStudio             Included in     BuildsBuild ...
Visual CI                    Multi- Build                             EnvironmentStudio                                   ...
Visual CI                    Multi- Build HandsStudio                             Environment                             ...
Process
Sprint  Backlog                                       Push Pull            Agile, Lean, XP                                ...
WAIT!              What about …Task boards, Information RadiatorsReducing Work In Progress, Time BoxingSelf Organization, ...
Scrum is Simplenot to be confused with easy             
Pairing                  colocation                                         silos    Team Dynamics                        ...
Blogs                     How do you learn?                Podcasts                                  ConferencesContinuous...
http://dimecasts.net/Continuous Learning
What are we saying here?
Be   PASSIONATEabout what you do
Elect good Code!
Building teams that engineer better software    Development              Infrastructure        Team Process               ...
developingUX.com@calebjenkins                speakermix.com/calebjenkins
developingUX.com@calebjenkins                speakermix.com/calebjenkins
© Michael Cummings - http://dreaminpictures.comhttp://www.flickr.com/photos/robbie_ewing/4407711326/http://www.flickr.com/...
http://www.flickr.com/photos/houseofsims/3121979028/http://www.flickr.com/photos/planetpixel/1450985177/http://www.flickr....
http://www.flickr.com/photos/pagedooley/1856663523/http://www.flickr.com/photos/joelogon/3161771573/http://www.flickr.com/...
Copyright © 2011 – Buddy Lindsey – Used with PermissionCopyright Sesame Street – Used without Permission
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
10 Reasons Your Software Sucks - Election 2012 Edition
Upcoming SlideShare
Loading in...5
×

10 Reasons Your Software Sucks - Election 2012 Edition

1,371

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,371
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×