CNIC Information System with Pakdata Cf In Pakistan
All My Tests Are Passing, Now What?
1. All My Tests Are Passing
Now What?
Chris.Read@ThoughtWorks.com
2. Software has no value
outside of production...
• No matter how clean the
code
• No matter how clean the
server room
3. ...but most software is
built to pass QA
• Developers sometimes
don’t even understand
what production will
look like
• Configuration reflects
development
environment
22. CMMM II
• Hard Coded Configuration
• Build per environment
• Configuration in SCM with code
• What’s tested is not what gets to
production
23. CMMM III
• Configuration in separate SCM
• Automated configuration at deploy time
• One package for all environments
• Forked configuration - missing and/or
deprecated entries
24. CMMM IV
• LDAP/DNS/JNDI
• Puppet/Chef/SMS
• Focussed on machine level config, not app
• Hard to administer
• Hard for developers to view and use
25. CMMM V ?
• Configuration Repository
• Cross Platform
• Language Independent
• Encrypt Sensitive Values
• Easy to populate, use and visualise
26. Summary
• Configuration is hard
• Poor configuration management (either too
much or too little) impacts software quality
• There’s a lot of room here to make things
better...
27. Patterns
• ConfigProvider
• Make sure it’s unit tested
• Test the template
• Test the dev machine config too!
• FailFast
• Esp for deps at startup
• Fails unit tests if dev machine config is not provided
• ConfigView
• DNS Service Names
28. Escape
• http://code.google.com/
p/escservesconfig
• Open Source
• Apache2 Licensed
• Let’s try make things
better...