x

Modifying the Joel Test to measure a database development team

How would you modify the "Joel Test" to apply to a database development team? Does it need significant changes for database development or is it satisfactory as is?

http://www.joelonsoftware.com/articles/fog0000000043.html

more ▼

asked May 04, 2010 at 11:04 AM in Default

tomc gravatar image

tomc
32 2 3 5

(comments are locked)
10|1200 characters needed characters left

3 answers: sort voted first

Some of that is a bit too specific to programming to be applicable to databases. But overall, I'd say it's reasonably close to a good set of questions. I think source control and automated builds are two of the biggest things missed in database development. I think the hallway usability test would be a waste of time on a database.

The one thing I'd add, and I'm not sure how to boil it down to just a few words, but you need to do load testing as a part of development. Unit testing, running all your queries with one row of data, is all well & good, but way too many shortcomings in the code and the structure are brought to light when you have thousands & millions of rows and 5, 10, 20 simultaneous connections.

Other than that, yeah, I think this is applicable.

more ▼

answered May 04, 2010 at 11:38 AM

Grant Fritchey gravatar image

Grant Fritchey ♦♦
100k 19 21 74

(comments are locked)
10|1200 characters needed characters left

I think there are a fair few things missing from that actually.

Team unity is important - there's no point having a team of database developers who aren't all pulling in the same direction. It's measurable in terms of the database design through things like having commonality in naming conventions, sensible distribution of data through filegroups and partitions, sensible distribution of objects through schemas etc.

Another thing that I think is critical is 'does the team take an hour each week to keep up with the state of the art'? Discovering new and more efficient ways of achieving the same task can be a really important part of any development (in fact this applies to any team, I would say).

In fact, I could waffle on for hours, because that list is actually pretty lame. I know, it's not trendy to speak out against the cult of Spolsky / Atwood - but that list only covers a small angle, which is control. It kind of misses the point that to have better code, you need to employ people who aren't numpties.

more ▼

answered May 04, 2010 at 12:29 PM

Matt Whitfield gravatar image

Matt Whitfield ♦♦
29.4k 61 65 87

(comments are locked)
10|1200 characters needed characters left

Grant and Matt already provided outstanding answers, but I will add my two cents.

Overall, I think it is quite applicable, but it assumes you are dealing with a semi-large team of programmers working in a compiled language. Some of the steps need to modified if you are working with a small team dealing in an interpreted language, which is much closer to how most SQL teams work.

Obviously numbers 2 and 3 about the build steps makes no sense in an interpreted language like Sql or Python, there isn't one. Even in an interpreted language that can be turned into direct executables, it becomes much less important to worry about doing that until you are in late stage testing.

Also, I agree about having a spec, with a caveat. It does not make much sense to do any major work without one. With that said, I would like to emphasize that frequently, especially in the early stages, it makes sense to have that spec be highly informal and make sure everyone on the team understands it will change. I have never completed anything but the smallest of projects without the end user coming back to me and saying something like "I know this is exactly what I asked for, but what I really want is...." So, especially when you have the luxury of direct and constant feedback from your users, the spec should very much be treated as a living document and not a final statement of design.

And perhaps he considers it too obvious to mention, but when possible have automated testing set ups. This does not always make sense (I have never figured out how to write meaningful automated tests for a GUI), but when it does then having them can save you considerable trouble. I must confess that in the opposite fashion of TDD I often write my tests after I write my first draft. I do this because I often decide to modify the scope of my function, merge functions, or split them while writing them. But whether you write them before or after, I think the value in having them can be tremendous.

Finally, I will second Matt in saying that all members of the team should take some time to keep up with technology, and I know some managers will disagree with me, but I think this should very much be on company time. It benefits the company directly and having your coworkers around to talk to while you are working on it can help a great deal.

more ▼

answered May 04, 2010 at 01:49 PM

TimothyAWiseman gravatar image

TimothyAWiseman
15.5k 20 23 32

I don't know. I'd say successfully deploying a database is about the same thing as a successful build for a coder. You know your structures and code are correct enough. They still need actual testing, but you can build/deploy, which is the first hurdle.

Other than that, yeah I agree with this too.
May 04, 2010 at 02:35 PM Grant Fritchey ♦♦
@Grant, I can see your point. I hadn't looked at it as the same thing as a build, but if you see it that way then 2 and 3 are at somewhat more applicable.
May 04, 2010 at 03:32 PM TimothyAWiseman
I had to bend my brain for most of it anyway since development & database development are so different, I just kept trying to come up with a db equivalent for the concepts.
May 04, 2010 at 03:56 PM Grant Fritchey ♦♦
(comments are locked)
10|1200 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

New code box

There's a new way to format code on the site - the red speech bubble logo will automatically format T-SQL for you. The original code box is still there for XML, etc. More details here.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

SQL Server Central

Need long-form SQL discussion? SQLserverCentral.com is the place.

Topics:

x61
x13

asked: May 04, 2010 at 11:04 AM

Seen: 1017 times

Last Updated: May 04, 2010 at 11:04 AM