Database Design & Professional Responsibility

  • I have just joined a company as their DBA to oversee a database and .net application currently being developed by an outside contractor. It will be a web-based application, including extensive GIS/ArcServe features and an equally extensive set of traditional tables to hold our tabular data that the Project Managers will access on a day-to-day basis.

    The Contractor was brought in over a year ago to provide a Needs Assessment and to integrate all the disparate Access tables and Excel files that everyone has been using up until this point to get their daily work done. There was no coordinated effort of the individual Access users re field names, etc.

    I arrived on the scene, the first fully-focused technically oriented person, two weeks ago -- with the first group's section due at the end of Sep 2009. The Contractor (company developing the database in SQL Server 2005) has done a fine job on the spatial/mapping/GIS portion and our users seem happy with these results, ie, the interface to get to maps and layers is functioning nicely and easy to navigate.

    But even though the Contractor's Design specifications call for Data Entry screens, Reports and Queries to be available so that the Admin folks can do their jobs, I found literally nothing had been done to create these objects/processes -- and yet they were supposed to be delivered in six weeks. And the Contractor had held extensive interviews with Users to define their needs long ago.

    I immediately brought this to my company's attention and the Contractor -- and they have added three MORE developers to close the gap. OK, this is good -- the Contractor realized someone was now on board at my company (me) who would recognize the complete lack of work.

    Incidentally, this is not a trivial contract -- and the work is worth about $250,000 over several payments.

    So now work is moving forward (in a mad dash to meet the deadline) but as I look at the database in the Design Document (released several days ago), it appears that no attempt has been made to offer a focused field naming convention -- and the various obscure field names everyone has been using are still in place. And that no apparent attempt has been made to normalize the tables. Nor to implement an intelligent use of FKs.

    BASIC ISSUE

    If I was the Contractor brought in to design a relational database (regardless of whether the job was for $250,000 or $10,000), I would think it's my professional responsibility to 1) better organize the data 2) provide a thoughtful approach to renaming fields and tables, where applicable 3) normalizing the data.

    YOUR VIEW

    Would the above paragraph be your attitude also? Or am I expecting too much?

    Your thoughts/commentary appreciated.

    Seth Hersh

  • Seth,

    I think your premise is sound. Likely a developer and not a DBA did most of the work. Not to knock developers on this, but they sometimes don't think this through.

    The attitude now, however, would be to point this out politlely, note that you'd have changed these things, and ask for a short explanation. At this time you don't want to interrupt work, but you want the issue raised. Then I'd raise it again when the project completes to talk to your management about the job done, and would you hire this company again.

    Most people building software, outside of DBAs, don't do diagrams or naming conventions well.

  • sethhersh (9/2/2009)


    I have just joined a company as their DBA to oversee a database and .net application currently being developed by an outside contractor. It will be a web-based application, including extensive GIS/ArcServe features and an equally extensive set of traditional tables to hold our tabular data that the Project Managers will access on a day-to-day basis.

    The Contractor was brought in over a year ago to provide a Needs Assessment and to integrate all the disparate Access tables and Excel files that everyone has been using up until this point to get their daily work done. There was no coordinated effort of the individual Access users re field names, etc.

    I arrived on the scene, the first fully-focused technically oriented person, two weeks ago -- with the first group's section due at the end of Sep 2009. The Contractor (company developing the database in SQL Server 2005) has done a fine job on the spatial/mapping/GIS portion and our users seem happy with these results, ie, the interface to get to maps and layers is functioning nicely and easy to navigate.

    But even though the Contractor's Design specifications call for Data Entry screens, Reports and Queries to be available so that the Admin folks can do their jobs, I found literally nothing had been done to create these objects/processes -- and yet they were supposed to be delivered in six weeks. And the Contractor had held extensive interviews with Users to define their needs long ago.

    I immediately brought this to my company's attention and the Contractor -- and they have added three MORE developers to close the gap. OK, this is good -- the Contractor realized someone was now on board at my company (me) who would recognize the complete lack of work.

    Incidentally, this is not a trivial contract -- and the work is worth about $250,000 over several payments.

    So now work is moving forward (in a mad dash to meet the deadline) but as I look at the database in the Design Document (released several days ago), it appears that no attempt has been made to offer a focused field naming convention -- and the various obscure field names everyone has been using are still in place. And that no apparent attempt has been made to normalize the tables. Nor to implement an intelligent use of FKs.

    BASIC ISSUE

    If I was the Contractor brought in to design a relational database (regardless of whether the job was for $250,000 or $10,000), I would think it's my professional responsibility to 1) better organize the data 2) provide a thoughtful approach to renaming fields and tables, where applicable 3) normalizing the data.

    YOUR VIEW

    Would the above paragraph be your attitude also? Or am I expecting too much?

    Your thoughts/commentary appreciated.

    Seth Hersh

    Personally I would make the assumption that the inital contractor didnt have the expertise and was just concentrating on what he could do.

    Secondly you often find that development work done by outside contractors is done on the cheap, and they will do the least work necessary. and normalising data or changing schema can be very time consuming.

    In an ideal world, People will care about the end result and put the effort in, however this case sounds like this work was taken on by either a company without the expertise or one that wanted to cut costs and increase their profit.

    and I dont agree with you Steve, some developers are knowledgeable about schema and normalisation. 😛

    --------------------------------------------------------------------------------------
    [highlight]Recommended Articles on How to help us help you and[/highlight]
    [highlight]solve commonly asked questions[/highlight]

    Forum Etiquette: How to post data/code on a forum to get the best help by Jeff Moden[/url]
    Managing Transaction Logs by Gail Shaw[/url]
    How to post Performance problems by Gail Shaw[/url]
    Help, my database is corrupt. Now what? by Gail Shaw[/url]

  • Some developers are knowledgeable, I'd agree. But the majority focus on what they do well, build applications. And they forget that the db is more than an object store and there is value there.

    I have worked with a few of both types, but the vast majority don't think conventions in the db, despite doing it in code, and don't do RI very well.

  • Steve Jones - Editor (9/2/2009)


    Some developers are knowledgeable, I'd agree. But the majority focus on what they do well, build applications. And they forget that the db is more than an object store and there is value there.

    I have worked with a few of both types, but the vast majority don't think conventions in the db, despite doing it in code, and don't do RI very well.

    Stop backtracking :-D, you cannot say developers dont do database, then say some of them do:hehe:

    maybe developers should stick to applications and leave all database work to dba's then perhaps, is that what you are trying to say...

    keeping on topic, maybe the question should be asked on supportibility/performance if the schema and normalisation are not done.

    --------------------------------------------------------------------------------------
    [highlight]Recommended Articles on How to help us help you and[/highlight]
    [highlight]solve commonly asked questions[/highlight]

    Forum Etiquette: How to post data/code on a forum to get the best help by Jeff Moden[/url]
    Managing Transaction Logs by Gail Shaw[/url]
    How to post Performance problems by Gail Shaw[/url]
    Help, my database is corrupt. Now what? by Gail Shaw[/url]

  • I think I said they sometimes do. I'll pick on developers as a group, but they are like DBAs, some good, some bad.

    I'm not sure supportability matters here. Most applications I've seen purchased don't come with diagrams or db dictionaries. you have to learn it all yourself and make the documents you need.

  • All -- I should add that the Contractor I am speaking of is publicly traded company, has 1,000+ employees ... so my thinking is that they would have the resources, from both a database-design AND application/screen development perspective, within their ranks and as part of any project that is taken on.

  • sethhersh (9/2/2009)


    All -- I should add that the Contractor I am speaking of is publicly traded company, has 1,000+ employees ... so my thinking is that they would have the resources, from both a database-design AND application/screen development perspective, within their ranks and as part of any project that is taken on.

    To be perfectly honest, most outsourcing companies have thousands of employees with varying skillsets. doesnt mean that they can do the job or they dont do shortcuts.

    And you are right, they should have no excuses for poor/shoddy/incomplete work, but as long as they complete the work and it works. it doesnt matter how it is done. could all be held together with a piece of string, as long as they can say it works and it ticks all the boxes on the contract. they win...

    --------------------------------------------------------------------------------------
    [highlight]Recommended Articles on How to help us help you and[/highlight]
    [highlight]solve commonly asked questions[/highlight]

    Forum Etiquette: How to post data/code on a forum to get the best help by Jeff Moden[/url]
    Managing Transaction Logs by Gail Shaw[/url]
    How to post Performance problems by Gail Shaw[/url]
    Help, my database is corrupt. Now what? by Gail Shaw[/url]

  • It may also depending on the wording of the engagement. Trying to map data elements across multiple disparate systems that hadn't been speaking before can be a daunting, and time-consuming task. Paying for something like that would likely have increased the constract quite a bit.

    My view on this is that the contractor's responsibility would have been to bring up this kind of issue. Deciding to have that kind of work done is the company's responsibility.

    Having previously been in the contractor's shoes, it can be fairly remarkable what people do NOT think are important enough to pay for. Documentation and support contracts just to mention a few.....

    ----------------------------------------------------------------------------------
    Your lack of planning does not constitute an emergency on my part...unless you're my manager...or a director and above...or a really loud-spoken end-user..All right - what was my emergency again?

  • Let's not forget that all too often this is the same kind of stuff FTEs run into when accepting a new position as well. Bad design, unwillingness to change, poor documentation at best, constant battles over standards, etc are just as common between the Contracting, consulting and FT employment worlds.

    And the same story applies across the board when trying to fix it - note it, be polite and political and keep on trying to get it changed the right way.

    The arguments why not to do it the right way once in place always seem to stem back to two things - time and money.

    Jason...AKA CirqueDeSQLeil
    _______________________________________________
    I have given a name to my pain...MCM SQL Server, MVP
    SQL RNNR
    Posting Performance Based Questions - Gail Shaw[/url]
    Learn Extended Events

  • Let’s just say that I am jaded by years of seeing this, but my expectation would actually be to get something far worse than what you described:

    A database that is not normalized and maybe not even in first normal form with no primary keys.

    Stored procedures that follow no standards and have no error checking.

    SQL embedded in the app with no error checking at all.

    Not even the slightest consideration for database security.

    Application connects to database using login with sysadmin access.

    No standards of any kind, of course.

    Plenty of places for SQL injection to take place.

    … The usual list of bad practices…

    Of course, I also expect to see this from in-house developers and vendor supplied software, so I am not picking on contractors.

  • Michael Valentine Jones (9/2/2009)


    Let’s just say that I am jaded by years of seeing this, but my expectation would actually be to get something far worse than what you described:

    A database that is not normalized and maybe not even in first normal form with no primary keys.

    Stored procedures that follow no standards and have no error checking.

    SQL embedded in the app with no error checking at all.

    Not even the slightest consideration for database security.

    Application connects to database using login with sysadmin access.

    No standards of any kind, of course.

    Plenty of places for SQL injection to take place.

    … The usual list of bad practices…

    Of course, I also expect to see this from in-house developers and vendor supplied software, so I am not picking on contractors.

    In some ways, I think you could have had it a lot worse, based on Michael's post, I can agree that most applications scream for sysadmin access, even though they dont need it and standards are not followed. As long as you can avoid giving out elevated rights to the database, and mitgating security risk, you have come off lightly.

    --------------------------------------------------------------------------------------
    [highlight]Recommended Articles on How to help us help you and[/highlight]
    [highlight]solve commonly asked questions[/highlight]

    Forum Etiquette: How to post data/code on a forum to get the best help by Jeff Moden[/url]
    Managing Transaction Logs by Gail Shaw[/url]
    How to post Performance problems by Gail Shaw[/url]
    Help, my database is corrupt. Now what? by Gail Shaw[/url]

  • Thanks to everyone for your comments. I should close out this thread with what has transpired re the real-life situation.

    I am a big believer in the Golden Rule, ie, do unto others as you would have them do unto you. In the specific issue of "did the contractor perform any database design?", I was disturbed by the entire lack of any thought or attention re the underlying schema. The Contractor had literally moved my Company's various Access tables over to SQL Server -- and based all its subsequent work on these tables without any thought to relational integrity, how are the tables used, cleaning up the names or even understanding how the tables worked.

    This was not the approach I would have taken.

    I presented my thoughts, comments and expectations to the new "facilitator" of the entire Project -- and he agreed with me. They are now doing a rigorous evaluation of the underlying data structure and cleaning up any work that had been based on the existing design.

    The check hasn't cleared the bank -- but I feel more confident now that the funds will be there when the payment is presented. And since there is another extensive phase that follows on the heels of this one, the quality of work in the following phase will be more focused and integrated.

    Be prepared to ask for what you want -- and you might just get it.

  • I hope you are right, let us know. I would be interested to know if noone else.

    --------------------------------------------------------------------------------------
    [highlight]Recommended Articles on How to help us help you and[/highlight]
    [highlight]solve commonly asked questions[/highlight]

    Forum Etiquette: How to post data/code on a forum to get the best help by Jeff Moden[/url]
    Managing Transaction Logs by Gail Shaw[/url]
    How to post Performance problems by Gail Shaw[/url]
    Help, my database is corrupt. Now what? by Gail Shaw[/url]

Viewing 14 posts - 1 through 13 (of 13 total)

You must be logged in to reply to this topic. Login to reply