Org issues (was Stored Procedures - Who is in Charge?)
Posted in 1996
A subject near and dear to my heart. I don't often get up on my soapbox (at least in public), but I couldn't resist this. Suggesting that a DBA create or code stored procedures is like suggesting that the DBA code all SQL statements in a program. Way too much bureaucracy. My $.02- Some definitions and suppositions: 1) There are PHYSICAL database tasks, such as adding chunks, fragmentation, etc,. Maintenance, etc, is done by a DBA. 2) There are LOGICAL database tasks, commonly referred to as data modeling. Maintenance etc done by a Data Administrator, or Data modeller. 3) A poor data model KILLS applications, causes poor performance, makes it difficult to write SQL. 4) A data model is a representation of real life, so, if you don't understand the real life issues, you will not create the correct model. 5) It is very difficult to understand ALL the real life issues before the application is in the hands of the user. You can get close, but most of the time, you will miss something. 6) Standards MUST exist and be enforced So, the development cycle is essentially this (ignoring titles): 1) somebody decides they need something done 2) somebody tries to define it 3) somebody codes it 4) somebody tests/accepts it 5) somebody implements it So what you really have to do is to figure out how to streamline your organization to allow quick development cycles. I strongly believe that too much control of the development cycle is in the hands of people who are too far away from where the rubber meets the road. Granted, it is difficult to produce a data model, so programmers often have a difficult time. DA's, on the other hand, have a tendency to take a very cerebral approach to data models, not wanting to get their hands dirty in the actual coding of the application, divorcing themselves from the de-normalization process that happens with most apps. The result is that nobody ends up owning the data model that goes into production. So, to get to a specific point, I think that there should be small teams of analysts/programmers who have the majority of responsibility for developing the app, including the data model. DA's responsibility should be to review design done by the analysts/programmers, make corrections and be available for consultation when asked. In addition, this must be an iterative process. You have to accept that the coding phase could produce changes to your data model, and you must implement those changes. The responsibility of the DBA is to take the app live, create the production database, etc. -- ---------------------------------------------------------------------------- ---- Garrett Sienkiewicz Database Designs, Inc. 309 W. 13 Mile Rd. Madison Heights, Mi. 48071 (810) 585-9928 x100 garrett@data-design.com