The blog posting ORA-00001: Unique constraint violated popped up on Hacker News over the last couple of days (if you don’t follow Hacker News, you should) and fortunately for me I read it today.
Why this article is important is that it directly addresses myths that surround database development (or developing with stored procedures) that are so commonly held. Let me be clear, I cut my teeth developing with programming languages that run outside of the database such as Pascal, Fortran, C, C++, Java, C#, Ruby and Python so I have no reason to promote PL/SQL or T-SQL but in this age of mis-information, it’s important that the truth be told.
Developers should have at their disposal all the tools needed to effectively build applications regardless of the languages being used. However, I’ve been around teams where there are two types of developers: application developers and database developers that are depended on to deliver solutions. Curiously however, software development is partitioned in such a way that no one type of developer can actually deliver a solution from top to bottom. For example, application developers don’t implement logic or database developers don’t develop user interfaces (or Windows services or file outputs). So in the effort to get the best of both worlds, the team becomes highly inefficient and partially hamstrung.
Figure out what tools you want you to use and just get good at them. Understand the contexts where they work best and leverage them. Use the proper software development practices across the board. Have software developers armed with the tools to deliver solutions in their entirety. If some part of software development is a black box to you, go figure out, ask questions. Just don’t drink the Kool-Aid.