Presentation is loading. Please wait.

Presentation is loading. Please wait.

Database Development Keep It Agile, Not Fragile Dev Nambi, Senior Software Engineer, Microsoft.

Similar presentations


Presentation on theme: "Database Development Keep It Agile, Not Fragile Dev Nambi, Senior Software Engineer, Microsoft."— Presentation transcript:

1 Database Development Keep It Agile, Not Fragile Dev Nambi, Senior Software Engineer, Microsoft

2 Agenda We’ll cover the risks, merits, and best practices of agile database development

3 Agile Development “Historia vitae magistra” - Cicero

4 Merits and Risks The Good http://www.flickr.com/photos/architektur/3376954311/ http://www.flickr.com/photos/calcuttastory/5068033722/

5 http://www.doobybrain.com/2009/03/16/broken-picture-telephone/

6 Merits and Risks The Bad http://www.flickr.com/photos/airborneshodan/4082436039/http://www.flickr.com/photos/hugojcardoso/3322521798/

7 Technical Best Practices Design Deploy Test Use DDT to kill bugs

8 Technical Best Practices Good Design = Good Deployments The Benefits Of Good Design Has Data Impact No Data Impact Decoupled. Has Interfaces. Coupled. Little abstraction. Still pretty low risk. Sloppy

9 Process Best Practices http://www.michaelfruchter.com/blog/2008/09/my-abc-s-of-friendfeed/ Automate Balance Communicate

10 Summary We’ve covered the risks, merits, and best practices of agile database development

11 Merits and Risks: Summary MeritsRisks Waterfall Time to create good design Support for full feature set in early versions Slow. Lots of overhead and process. Time & rigor to work for critical programsProduct can be obsolete when done. Product can be the wrong thing when done. Agile Fast. Very, very fast. Ideal for experimentation, prototyping, rapid business change Unstable design. Requires smart engineers Time is no safety net. Customers get what they want quickly. Ideal for systems that can be updated often. Lots of deployments Speed requires testing and automation

12 Technical Best Practices: Summary DesignDeploymentTesting Code Quality Is Important. Check your PKs, FKs, constraints. Keep performance in mind when writing code. Specific Have versioning Decouple releases. Have good permissions. Unit Tests Automate them. Run them with every check in. Interfaces Will Save You. We do this with other code. Do it with DB code as well. Robust. Scripts should be re- runnable. Have rollbacks. Have verification scripts. Integration Tests Make sure you didn’t break anybody. Make sure nobody broke you. Keep It Simple Nobody is that smart Too complicated and you can’t troubleshoot. Fast Consider user activity. Save state Tune your data migrations. Performance Tests High risk systems/queries get tuned and tested Logging gives you amazing amounts of insight.

13 Process Best Practices: Summary AutomateBalanceCommunicate Automate Your TestsRisk vs RewardGet everyone involved in design discussions. Automate monitoring & alerting If you do something more than 3-4 times, automate it. Powershell is awesome at this. Features vs Fixes No point in building features if the system can’t handle it. No point in tuning existing code if its business model is broken. Daily status meetings. What are people doing? What problems are people encountering? How can we help each other? Automate your deployments Or at least streamline it. Have solid rollbacks Have quick release tests. Developer vs DBA tasks What can be automated? What should devs fix? What ideas do DBAs have? Release Meetings What changes are upcoming? How are systems behaving now?

14 Is Agile A Good Fit? Things To Consider User Comfort With Change Code Quality & Testing System Coupling & Interfaces System Criticality Developer Experience DBA Experience Design Stability Data Volume Documentation

15 Resources Agile Manifesto – www.agilemanifesto.orgwww.agilemanifesto.org Scott Ambler’s Agile Data – www.agiledata.orgwww.agiledata.org Dev Nambi’s blog – www.devnambi.comwww.devnambi.com Three Myths of Agile Development, http://sqlserverpedia.com/blog/sql-server- bloggers/three-myths-about-agile- development/ http://sqlserverpedia.com/blog/sql-server- bloggers/three-myths-about-agile- development/

16 Q&A


Download ppt "Database Development Keep It Agile, Not Fragile Dev Nambi, Senior Software Engineer, Microsoft."

Similar presentations


Ads by Google