Dev Nambi Senior Software Engineer Microsoft Agenda Well cover the risks merits and best practices of agile database development Agile Development Historia vitae magistra Cicero ID: 649460
Download Presentation The PPT/PDF document "Database Development Keep It Agile, Not ..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Database Development
Keep It Agile, Not Fragile
Dev Nambi, Senior Software Engineer, MicrosoftSlide2
Agenda
We’ll cover the risks, merits, and best practices of agile database developmentSlide3
Agile Development
“Historia
vitae magistra” - CiceroSlide4
Merits and Risks
The Good
http://www.flickr.com/photos/architektur/3376954311/http://www.flickr.com/photos/calcuttastory/5068033722/Slide5
http://www.doobybrain.com/2009/03/16/broken-picture-telephone/Slide6
Merits and Risks
The Bad
http://www.flickr.com/photos/airborneshodan/4082436039/ http://www.flickr.com/photos/hugojcardoso/3322521798/Slide7
Technical Best Practices
D
esignDeployTest
Use DDT to kill bugsSlide8
Technical Best Practices
Good Design = Good Deployments
The Benefits Of Good DesignHas Data ImpactNo Data ImpactDecoupled. Has Interfaces.Coupled. Little abstraction.Still pretty low risk. SloppySlide9
Process Best Practices
http://www.michaelfruchter.com/blog/2008/09/my-abc-s-of-friendfeed/
A
utomate
B
alance
C
ommunicateSlide10
Summary
We’ve covered the risks, merits, and best practices of agile database developmentSlide11
Merits and Risks: Summary
Merits
RisksWaterfallTime to create good designSupport for full feature set in early versionsSlow. 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.AgileFast. Very, very fast.Ideal for experimentation, prototyping, rapid business changeUnstable 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 automationSlide12
Technical Best Practices:
Summary
DesignDeploymentTestingCode Quality Is Important.Check your PKs, FKs, constraints.Keep performance in mind when writing code.SpecificHave versioningDecouple releases.Have good permissions.Unit TestsAutomate 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 TestsMake 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.Slide13
Process Best Practices:
Summary
AutomateBalanceCommunicateAutomate Your TestsRisk vs RewardGet everyone involved in design discussions.Automate monitoring & alertingIf you do something more than 3-4 times, automate it.Powershell is awesome at this.Features vs FixesNo 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?Slide14
Is Agile A Good Fit?
Things To Consider
User Comfort With ChangeCode Quality & TestingSystem Coupling & InterfacesSystem CriticalityDeveloper ExperienceDBA ExperienceDesign StabilityData VolumeDocumentationSlide15
Resources
Agile Manifesto – www.agilemanifesto.org Scott Ambler’s Agile Data –
www.agiledata.orgDev Nambi’s blog – www.devnambi.comThree Myths of Agile Development, http://sqlserverpedia.com/blog/sql-server-bloggers/three-myths-about-agile-development/Slide16
Q&A