Wait a sec, we don’t let developers even look at Production, much less touch it! There’s no way they can break anything over there. Whew! Jeff was just pulling our chains!
I hate to be the bearer of bad news, but it’s even worse than you think.
The code that those developers wrote? Guess where it runs everyday? That’s right – in production. So instead of them fat-fingering in production, a bad piece of code that got past QA is now running thousands of times a day by your end users.
Yes, we all understand why developers should not be doing things in Production. But, everything that runs in production probably came from the developers. The same developers that may look at the database as their private flat file.
So when I ask a development team to tell me what’s wrong with this statement, and I get crickets, do you understand why I am concerned?[sql] SELECT *
FROM tableA a, tableB b, tableC c
Where a.1 = b.1 and b.1 = c.1;
Developers Do the Darndest Things
No foreign keys? No problem!
Indexing? We can just index everything or let the DBA tell us what we did wrong.
Security code in the database? No, let’s just implement that via the application. No one should be in the database outside our application.
Let’s store this date in XML. XML is way more fun to play with.
These are all things that I have heard in the wild, and I am sure you worry about this stuff at night.
You have the power to fix it!
How often do you engage your developers with best practices seminars? Do you think they would appreciate a free pizza lunch to hear from the DBA about how they can build faster, more secure apps, and keep the DBA team happy in the process?
If you aren’t mentoring your developers, then it’s own fault when the database ‘runs like garbage’, not the developers. Developers are hired because they get user interfaces, process design, etc – you know, all that fancy college stuff.
They learn the database stuff on the fly. They hear those rule of thumb nuggets like
‘FULL TABLE SCANs are always bad’
If you aren’t there to steer them straight, they’ll just get their information from someone else.
Empower. Enlighten. Educate. Think positive thoughts, do positive things. The payoff will be immeasurable. And the end users will live happily ever after.