How do I tactfully bring up database shortcomings? A little background:

I recently inherited responsibility for support and development of a database application after the original developers left. Looking through the application, the database appears to have several... issues.


Weekly shrink and re-index plan
Database account used for web application access has db_owner role
No foreign keys
All tables use GUID column as primary key
Queries built in C# are not parameterized


How can I bring these issues up with management?

Normally, this should be no trouble, but I have a problem: I have less than six months of SQL experience, whereas the managers and former developers were working on this project for several years.
Here's the line I like to use - it preserves everyone's dignity and lets everyone escape without finger-pointing:

"Yes, that used to be a best practice, and..."

It’s almost easier to explain that line in terms of what it DOESN’T do.  It doesn’t dispute the speaker’s claim, because you don’t want to go down the rathole of arguing about whether or not the point was right at the time.  You could spend the entire day arguing about why USB has the word Universal as part of the name, but that’s beside the point.  You need to get to the right solution as fast as possible, and sometimes that just means ignoring something that’s wrong.

It doesn’t chastise the other guy for not keeping up with the latest tips and tricks.  It’s hard enough to just do our jobs, let alone keep up with blogs and training, and real life interferes.  It lets the other person save face.

It doesn’t divide you against the other guy.  I try to use the word “we” whenever I use this line, because I want to take the other guy along with me on the journey to fix this problem.

I've written more about it in my Consulting Lines series.