Here are the slides and links to awesome resources for my presentation, “Team-based Database Development: Playing Nice With Others”
If you need a summary of what’s covered in the session, the abstract is as follows:
As soon as you have more than one person on a development effort, you’re basically guaranteed to see collaboration and integration issues. Most commonly, you won’t always know what other people are working on, your changes may break their code, and your team is actually LESS effective than the individuals. In this session, we’ll cover how development practices such as version control, unit testing and continuous integration can help ease some of your database team-development headaches. We’ll go over demonstrations of how to implement these practices in your environment (using Red Gate tools in this case) to improve the efficiency and quality of your database development process, and play nicely with the other developers on your team.
Slides:
Click on Start Prezi and click right or left arrow to browse through the slides.
Additional Resources:
The following are links to resources for each of the sections covered that help you learn more and implement/configure these practices in your environment.
Source Control
I talk about the importance of putting database code and lookup data under Source Control and demonstrate it using SQL Source Control from Red Gate.
- Rocking your SQL Source Control – One of my favorite articles is from Troy Hunt. Even though it’s an old article using older version of SQL Source Control, the arguments he make are still valid and valuable.
- Stairway to Database Source Control – Dave Green has started a stairway series on SQLServerCentral.com.
- Worked example: Get SQL Source Control working with TFS – A step-by-step documentation on Red Gate’s website to your database to TFS using SQL Source Control.
- Worked example: Get SQL Source Control working with Subversion (SVN) – A step-by-step documentation on Red Gate’s website to your database to Subversion using SQL Source Control.
Unit Testing
If you’re in the session, you’ll recall that I compared cooking with coding and tasting with unit testing (a.k.a test driven database development). We used tSQLt as the database testing framework. You can download tSQLt for free from tsqlt.org. However, I used another Red Gate product, SQL Test which provides a user interface for tSQLt.
- Test-driven Database Development (TD3) – Why Bother? and Why tSQLt? – I love these two articles from Greg Lucas published on simple-talk.com. Greg does a wonderful job convincing about the benefits of both TD3 and tSQLt.
- Test Driven Database Development with tSQLt – There is a learning curve with tSQLt. Greg’s multi-part series covers all aspects right from installing to writing tests for various scenarios.
Continuous Integration
I highlight the necessity for developers integrating their work more often, automating the build and test processes. We used TeamCity as the build server and Red Gate’s SQL Automation Pack including a TeamCity plugin to make Database CI happen.
- Continuous Integration – A lengthy but essential article by Martin Fowler talking about everything related to CI.
- Automated database release with TeamCity and RedGate – Again an older article from Troy Hunt, but it’s worth reading it.
- Worked example: Setting up a database build in TeamCity – A step-by-step documentation on Red Gate’s website.
- Continuos integration for databases using Red Gate tools – A white paper by Red Gate explaining the challenges with database builds and how Red Gate tools can solve them.
Books
The Red Gate Guide to SQL Server Team-based Development is a free ebook. It explains several development practices in addition to the concepts I talked in the session.
Related Videos
- Automated Build & Test with David Atkinson
- Team Based Database Development with Version Control with Steve Jones
- Database Continuous Integration with Ike Ellis
Enjoy!
I last gave this presentation for the Baltimore SQL Server User Group in April, 2013.