/
Database Development Keep It Agile, Not Fragile Database Development Keep It Agile, Not Fragile

Database Development Keep It Agile, Not Fragile - PowerPoint Presentation

tatyana-admore
tatyana-admore . @tatyana-admore
Follow
362 views
Uploaded On 2018-03-13

Database Development Keep It Agile, Not Fragile - PPT Presentation

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

agile www good http www agile http good practices development merits risks amp data flickr photos summary code blog

Share:

Link:

Embed:

Download Presentation from below link

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.


Presentation Transcript

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