Darel Rex Finley in PhotoBooth

Documentation Overkill

2008.04.16   prev     next

In one of the jobs I’ve had in the past several years, my team finished work on a project, and was then told to document it. What did that entail? It meant that we had to create an immense Word file, many hundreds of pages long. This file contained:

  • detailed descriptions of every function, every parameter of every function, and the output of every function
  • lists of which functions call which other functions
  • schematic, flowchart-like diagrams of what every function does
  • lists of all files in the project, their locations, and other information about them
  • and much more

The most depressing thing about having to make such a document was my certain knowledge that after I was gone, whatever developer took over this project would take one, ten-second look at this enormous document and then just put it aside. And start looking at the code.

Even if your employer requires you to create such voluminous documentation, try to keep in mind that really, your code is its own documentation. When future developers (including yourself?) want to know what functions your project has, they will look at the code. When they want to know what parameters a function has, they’ll look at the code. When they want to know generally what a function does, they’ll look at the comments immediately above that function — in the code. When they want to know precicely what a function does, they’ll look at the code of that function. And when they want to know which functions call function X, they’ll do a five-second, project-wide search for the name of function X, and get their answer faster than they could ever find it by looking it up in an eight-hundred page Word document.

And if a developer can’t discover this kind of information by looking at the code, then it’s pretty much a sure thing that that particular developer shouldn’t be working on this code. Even if he’s armed with an eight-hundred page Word document.

And — need I even mention the possibility of mistakes in that behemoth Word document? No compiler will ever flag them. No testers or users will ever catch them. So even if it took longer to get answers by looking at the code, it would still be a better, safer way to get those answers.

- - - - -

 

Hear, hear

prev     next

Favorite links

Starbucks

Apple

Daring Fireball

RoughlyDrafted

Joel on Software

Macalope

Red Meat

Despair, Inc.

Zombie Survival Guide plus Dawn of the Dead (also check out HVZ)

Charlie Superfly Check “The First Time” to hear what she actually sang in the competition. HowardTV ripped it out and spliced in utter crap they had her sing later.

Real Solution #9 (Mambo Mania Mix) over stock nuke tests.

Ernie & Bert In Casino

Great Explanation of Star Wars

TV: Work Out; Confessions of A Matchmaker; Cavemen; Damages; The Shield

My vote for best commercial ever: Royal Bank of Scotland Group — wedding where groom says “Who among us will ever know?” I can’t find it on YouTube — anyone know where it might be?

Previous articles

Behavior and Free Will, Unconfused

“Reduced To” Absurdum

Suzie and Bubba Redneck — the Carriers of Intelligence

Everything You Need To Know About Haldane’s Dilemma

Darwin + Hitler = Baloney

Meta-ware

Designed For Combat

Speed Racer R Us

Bold — Uh-huh

Conscious of Consciousness

Future Perfect

Where Real and Yahoo Went Wrong

The Purpose of Surface

Eradicating Religion Won’t Eradicate War

Documentation Overkill

A Tale of Two Movies

The Changing Face of Sam Adams

Dinesh D’Souza On ID

Why Quintic (and Higher) Polynomials Have No Algebraic Solution

Translation of Paul Graham’s Footnote To Plain English

What Happened To Moore’s Law?

Goldston On ID

The End of Martial Law

The Two Faces of Evolution

A Fine Recommendation

Free Will and Population Statistics

Dennett/D’Souza Debate — D’Souza

Dennett/D’Souza Debate — Dennett

The Non-Euclidean Geometry That Wasn’t There

Defective Attitude Towards Suburbia

The Twin Deficit Phantoms

Sleep Sync and Vertical Hold

More FUD In Your Eye

The Myth of Rubbernecking

Keeping Intelligent Design Honest

Failure of the Amiga — Not Just Mismanagement

Maxwell’s Honey Do?

End Unsecured Debt

The Digits of Pi Cannot Be Sequentially Generated By A Computer Program

Faster Is Better

Goals Can’t Be Avoided

Propped-Up Products

Ignoring ID Won’t Work

The Crabs and the Bucket

Communism As A Side Effect of the Transition To Capitalism

Google and Wikipedia, Revisited

National Geographic’s Obesity BS

Cavemen

Theodicy Is For Losers

Seattle Redux

Quitting

Living Well

A Memory of Gateway

Is Apple’s Font Rendering Really Non-Pixel-Aware?

Humans Are Complexity, Not Choice

A Subtle Shift

Moralism — The Emperor’s New Success

Code Is Our Friend

The Edge of Religion

The Dark Side of Pixel-Aware Font Rendering

The Futility of DVD Encryption

ID Isn’t About Size or Speed

Blood-Curdling Screams

ID Venn Diagram

Rich and Good-Looking? Why Libertarianism Goes Nowhere

FUV — Fear, Uncertainty, and Vista

Malware Isn’t About Total Control

Howard = Second Coming?

Doomsday? Or Just Another Sunday

The Real Function of Wikipedia In A Google World

Objective-C Philosophy

Clarity From Cisco

2007 Macworld Keynote Prediction

FUZ — Fear, Uncertainty, and Zune

No Fear — The Most Important Thing About Intelligent Design

How About A Rational Theodicy

Napster and the Subscription Model

Intelligent Design — Introduction

The One Feature I Want To See In Apple’s Safari