ROMS: Real Ocean Modeling Stories or Reasons Ocean Modeling Sucks
10 Reasons Your Software Sucks 2014 - Tax Day Edition!
-
Upload
caleb-jenkins -
Category
Software
-
view
513 -
download
1
description
Transcript of 10 Reasons Your Software Sucks 2014 - Tax Day Edition!
![Page 1: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/1.jpg)
![Page 2: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/2.jpg)
![Page 3: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/3.jpg)
![Page 4: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/4.jpg)
![Page 5: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/5.jpg)
Development
Experience
Object Orientation
SOLID + Patterns + Simple Design
Secure Coding
Infrastructure
Automated Tests
Source Control
Automated Builds
Team Process
Agile, Lean, XP
Team Dynamics
Continuous Learning
Bui ld ing teams that engineer better software
Development ∙ Infrastructure ∙ Team Process
![Page 6: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/6.jpg)
![Page 7: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/7.jpg)
developingUX.comspeakermix.com/calebjenkins
@calebjenkins#ctcc14
![Page 8: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/8.jpg)
developingUX.comspeakermix.com/calebjenkins
@calebjenkins#ctcc14
![Page 9: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/9.jpg)
![Page 10: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/10.jpg)
![Page 11: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/11.jpg)
![Page 12: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/12.jpg)
![Page 13: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/13.jpg)
![Page 14: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/14.jpg)
Bui ld ing teams that engineer better software
![Page 15: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/15.jpg)
Development
![Page 16: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/16.jpg)
Development
Testable
Repeatable
Maintainable Reliable-able
ScalableExtensible
Deliverable
Workable
![Page 17: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/17.jpg)
![Page 18: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/18.jpg)
![Page 19: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/19.jpg)
(User) Experience Matters!
![Page 20: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/20.jpg)
Experience is Reality
User Experienc
e(UX)
Developer Experience
(API’s & SDK’s)
Reality is Perception
Perception is the Product
![Page 21: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/21.jpg)
![Page 22: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/22.jpg)
uiuxiauxdvisual design
![Page 23: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/23.jpg)
Experience is the Product ui
backend
ux
securityperformance
scalabilityuxiauxdvisual design
![Page 24: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/24.jpg)
Experience is the Product
![Page 25: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/25.jpg)
![Page 26: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/26.jpg)
![Page 27: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/27.jpg)
(Code) Quality Matters!
![Page 28: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/28.jpg)
DevelopmentObject Orientation
It’s amazing how many people write procedural code in an OO environment
OO
Procedural
Functional
Use Right Tool for the Right Job
It’s amazing how many people write procedural code in an OO environment
EncapsulationInheritance
Polymorphism
![Page 29: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/29.jpg)
![Page 30: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/30.jpg)
![Page 31: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/31.jpg)
Commitment is
more
than a date!
![Page 32: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/32.jpg)
![Page 33: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/33.jpg)
![Page 34: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/34.jpg)
![Page 35: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/35.jpg)
![Page 36: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/36.jpg)
![Page 37: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/37.jpg)
![Page 38: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/38.jpg)
“The single greatest thing that you can do to make your code more testable and healthy is to start taking a Dependency Injection approach to writing software”
“The single greatest thing that you can do to make your code more testable and healthy is to start taking a Dependency Injection approach to writing software”
- Real World .NET, C# and SilverlightWrox Press 2012
Caleb Jenkins
- Real World .NET, C# and SilverlightWrox Press 2012
Caleb Jenkins
![Page 39: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/39.jpg)
Note:Dependency InjectionNote:Dependency Injection
will turn you in to a complete coding Ninja, however the full scope of DI with any of the many DI frameworks is beyond the scope of this talk
will turn you in to a complete coding Ninja, however the full scope of DI with any of the many DI frameworks is beyond the scope of this talk
![Page 40: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/40.jpg)
http://developingUX.com/di/
![Page 41: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/41.jpg)
DevelopmentExperience
Object Orientation
SOLID + Patterns + Simple Design
![Page 42: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/42.jpg)
DevelopmentExperience
Object Orientation
SOLID + Patterns + Simple Design
![Page 43: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/43.jpg)
VocabularycommonScenarioscommon
Answersproven
SOLID + Patterns + Simple Design
![Page 44: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/44.jpg)
Patterns
MVCUI MVP
UI
MVVMUI
RepositoryData
FactoryCompone
nt
StrategyCompone
nt
![Page 45: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/45.jpg)
Patterns
MVCUI MVP
UI
MVVMUI
RepositoryData
FactoryCompone
nt
StrategyCompone
ntDecoratorFacade
Visitor
Chain of Responsibility
Abstract Factory
State
![Page 46: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/46.jpg)
Patterns
MVCUI MVP
UI
MVVMUI
RepositoryData
FactoryCompone
nt
StrategyCompone
ntDecoratorFacade
Visitor
Chain of Responsibility
Abstract Factory
More
More
MoreState
MoreMore
More
![Page 47: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/47.jpg)
Patterns
MVCUI MVP
UI
MVVMUI
RepositoryData
FactoryCompone
nt
StrategyCompone
ntDecoratorFacade
Visitor
Chain of Responsibility
Abstract Factory
More
More
MoreState
MoreMore
MoreMore
MoreMore
MoreMore
More
MoreMoreMoreMore
More
More
More
More
More
More
![Page 48: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/48.jpg)
Beware the
anti-pattern pattern!Gotta try ‘em all!
![Page 49: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/49.jpg)
MVCUI
RepositoryData
Abstract Factoryor Strategy
Compone
nt
SOLID + Patterns + Simple DesignSOLID + Patterns + Simple Design
![Page 50: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/50.jpg)
“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
![Page 51: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/51.jpg)
SOLID + Patterns + Simple Design
![Page 52: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/52.jpg)
DevelopmentExperience
Object Orientation
SOLID + Patterns + Simple Design
![Page 53: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/53.jpg)
Development
Secure Coding
Experience
Object Orientation
SOLID + Patterns + Simple Design
![Page 54: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/54.jpg)
![Page 55: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/55.jpg)
![Page 56: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/56.jpg)
Secure Coding
http://developingux.com/2010/02/10/secure-coding-101/
![Page 57: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/57.jpg)
![Page 58: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/58.jpg)
![Page 59: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/59.jpg)
Secure Coding
Play in a Sandbox Don’t Use
Passwords
Input is Evil
runtime
memory
least privilege
“safe” libraries
![Page 60: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/60.jpg)
http://xkcd.com/327/
![Page 61: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/61.jpg)
Defense in Depth (MS03-007)Windows Server 2003 Unaffected
The underlying DLL (NTDLL.DLL) not vulnerable
Code made more conservative during Security Push
Even if it was running IIS 6.0 doesn’t have WebDAV enabled by default
Even if it did have WebDAV enabled
Maximum URL length in IIS 6.0 is 16kb by default (>64kb needed)
Even if it was vulnerable IIS 6.0 not running by default on Windows Server 2003
Even if it there was an exploitable buffer overrun
Would have occurred in w3wp.exe which is now running as ‘network service’
Even if the buffer was large enough
Process halts rather than executes malicious code, due to buffer-overrun detection code (-GS)
![Page 62: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/62.jpg)
Defense in Depth (MS03-007)Windows Server 2003 Unaffected
![Page 63: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/63.jpg)
““Multiple redundant safety systems. Nuclear
plants are designed according to a "defense in depth" philosophy that requires redundant, diverse, reliable safety systems. Two or more safety systems perform key functions independently, such that, if one fails, there is always another to back it up, providing continuous protection.
- Nuclear Energy Institute
![Page 64: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/64.jpg)
System Failures can be Bad
![Page 65: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/65.jpg)
System Failures can be Bad
![Page 66: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/66.jpg)
Secure Coding
http://msdn.microsoft.com/security/
![Page 67: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/67.jpg)
DevelopmentObject Orientation
SOLID
Patterns
Secure Coding
![Page 68: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/68.jpg)
Team Work
![Page 69: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/69.jpg)
Team Work Friction
Communication
Silos
Coordination
Toe Stepping
Throughput
![Page 70: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/70.jpg)
![Page 71: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/71.jpg)
![Page 72: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/72.jpg)
DoTestcode
you
Your ?
![Page 73: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/73.jpg)
UnitDo
Testcode
you
Your ?
![Page 74: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/74.jpg)
UnitDo
Testcode
automatedyou
Your ?
![Page 75: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/75.jpg)
what’s the difference?
![Page 76: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/76.jpg)
Traditional Test
![Page 77: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/77.jpg)
Unit Test
![Page 78: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/78.jpg)
Automated Test
![Page 79: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/79.jpg)
TDD / BDD
![Page 80: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/80.jpg)
![Page 81: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/81.jpg)
![Page 82: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/82.jpg)
![Page 83: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/83.jpg)
![Page 84: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/84.jpg)
“They have a great brand, an awesome
business model… but their technical debt is
killing them”- Carl Sparks
CEO Travelocitytalking about another company
![Page 85: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/85.jpg)
“Automated unit tests make up one of the core staples in reducing technical debt, and improving a team’s overall code quality”
“Automated unit tests make up one of the core staples in reducing technical debt, and improving a team’s overall code quality”
- Real World .NET, C# and SilverlightWrox Press 2012
Caleb Jenkins
- Real World .NET, C# and SilverlightWrox Press 2012
Caleb Jenkins
![Page 86: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/86.jpg)
of Testing
![Page 87: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/87.jpg)
of Testing
I test my app
I test units of workin my app
I run automated
unit tests
I test first
I write executable
specs to test my app
It compiled didn’t it?
DI + Mock are my best
friends
CI FTW!
Red, Green,
Refactor Rinse + Repeat!
given <><> whenthen<>
![Page 88: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/88.jpg)
![Page 89: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/89.jpg)
![Page 90: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/90.jpg)
of Source Control
![Page 91: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/91.jpg)
of Source Control
I back up my code
File Share
VSS was free
Branch +
Merge ReleaseStrategy
Automated
Builds CI, Automated Deploy
Thumb drives are awesome!
Network Share is +1 from
thumb drive So was herpes
Freedom to code!
“worked on my machine”
take THAT auditors!
TFS, SVN, GIT
![Page 92: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/92.jpg)
// svn// trunk
// r1
// dev1
// dev 2
// dev 3
// r2 // r3
// r1.1
// trunk
//
// svn
?
consider: branch early vs branch late strategy
![Page 93: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/93.jpg)
![Page 94: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/94.jpg)
![Page 95: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/95.jpg)
![Page 96: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/96.jpg)
Developer Operations
Source Control Production
Common Deployment Scenario
Retrieve Source
compile + send
binariesconfigure +
deploy binaries
![Page 97: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/97.jpg)
Developer Operations
Source Control Production
Common Deployment Scenario
Retrieve Source
compile + send
binariesconfigure +
deploy binaries
![Page 98: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/98.jpg)
Developer Operations
Source Control Production
Improved Deployment Scenario
Updates Source
send .build script
runscript getsource buildbin
configure + deploy
binaries
![Page 99: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/99.jpg)
Developer Operations
Source Control Production
Improved Deployment Scenario
Updates Source
send .build script
runscript getsource buildbin
configure + deploy
binaries
![Page 100: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/100.jpg)
of Automated Builds
![Page 101: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/101.jpg)
of Automated Builds
IDEBuild
CI Multi-Environment
Builds
Build from script
Hands
Off Deployment
F5 is How I Roll
Included in TFS, Cruise Control,
Team City,Jenkins CI
Dev, Test, Stage,
Production
Source? Yes, run
this .build
Disaster Recovery Plan
+Auditor Compliance
done
![Page 102: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/102.jpg)
Process
![Page 103: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/103.jpg)
![Page 104: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/104.jpg)
![Page 105: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/105.jpg)
Plan
![Page 106: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/106.jpg)
DoPlan
![Page 107: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/107.jpg)
DoPlan
DP DP DP
-vs-
![Page 108: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/108.jpg)
DoPlan
DP DP DP
-vs-
![Page 109: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/109.jpg)
Agile, Lean, XP
Scrum Kanban
Push Pull
Learn by doing
Daily Stand UpsSize Units of
WorkProductBacklog
SprintBacklog
![Page 110: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/110.jpg)
![Page 111: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/111.jpg)
?WAIT! What about …Task boards, Information Radiators Reducing Work In Progress, Time Boxing Self Organization, Pull vs Push, Empowerment, Continuous Learning, Planning Poker, Story Sizing, Velocity, Team Swarming… etc, etc, etc..
![Page 112: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/112.jpg)
Scrum is Simplenot to be confused with easy
![Page 113: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/113.jpg)
![Page 114: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/114.jpg)
![Page 115: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/115.jpg)
Team Dynamics
Pairing colocation
colocationmentality (virtual)
ownershipInformation Broadcasting
self organizing
silos
cross-functional
![Page 117: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/117.jpg)
http://www.youtube.com/watch?v=Q6jMgmPIxmk
![Page 118: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/118.jpg)
![Page 119: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/119.jpg)
![Page 120: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/120.jpg)
A.B.L.Always Be Learning
![Page 121: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/121.jpg)
Continuous Learning
How do you learn?
Sources?
Blogs
Podcasts
Conferences
Books
![Page 122: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/122.jpg)
Continuous Learning
http://dimecasts.net/
![Page 123: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/123.jpg)
What are we saying here?
![Page 124: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/124.jpg)
BePASSIONATE
about what you do
![Page 125: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/125.jpg)
![Page 126: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/126.jpg)
Development Infrastructure Team Process
1 Experience
2Object Orientation
3 SOLID + Patterns + Simple Design
4 Secure Coding
Bui ld ing teams that engineer better software
5 Automated Tests
6 Source Control
7 Automated Builds
8 Agile, Lean, XP
9 Team Dynamics
Continuous Learning
10
![Page 127: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/127.jpg)
http://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/
Photo Credits© Michael Cummings - http://dreaminpictures.com
![Page 128: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/128.jpg)
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/
http://www.flickr.com/photos/houseofsims/3121979028/
![Page 129: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/129.jpg)
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
![Page 130: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/130.jpg)
Copyright © 2011 – Buddy Lindsey – Used with Permission
![Page 131: 10 Reasons Your Software Sucks 2014 - Tax Day Edition!](https://reader036.fdocuments.us/reader036/viewer/2022062418/554f4a8fb4c905423f8b4c91/html5/thumbnails/131.jpg)
developingUX.comspeakermix.com/calebjenkins
@calebjenkins