Perhaps one of the most unfortunate situations I’ve had with a developer in the past is when one came to me and reported that a particular piece of software was ready; and when I asked for the protocol documentation, they told me that “The code is the documentation.”

That’s amateur-hour. The code isn’t the documentation, and with good reason. Recognizing the necessary difference between the two makes the difference between a coder and a software engineer.

In one sense, code is a kind of documentation, that is from specification to design to code, you are merely describing a system in increasing levels of detail, until you reach the explicit, unambiguous baby-talk grammar that a computer can use to perform the tasks you are setting it.

So, why isn’t the implementation as good as the documentation? It works doesn’t it?

Well, does it? How, exactly do you tell?

The difference between a protocol document and the code that expresses it is largely one of intent.

Documentation describes what it should do. Code describes what it actually does – even if that’s the wrong thing.

Code only describes a single, potentially correct case.

What if the protocol allows for functions, communications, features and fallbacks that you simply haven’t implemented at the present time? How would anyone know that they were available?

What if the code works differently to how the protocol should function, but it just happens to work that way at the moment?

You can poison an entire generation of software by promulgating bugs via code-as-documentation. Inevitably when someone discovers that there’s something very wrong with the code, fixing the problem can break compatibility with everything else implementing the protocol, because they are also implementing the bugs.

Protocol/standards documents set the goal. The code/implementation is an attempt to achieve that goal, and the documentation is the measure that you use to determine whether you’ve achieved it or not.

It’s specious and sloppy to assume you can implement important protocols without documentation, and folly to think you can expect third-parties to do so from your code without inviting long-term hardship or disaster for all concerned.

submit to reddit

Possibly related posts

Reference implementations, HTTP textures, Iterations

7 Responses to “Implementation isn’t documentation”


  1. I don’t disagree with the need to document code especially when it concerns protocol/api interactions (and especially if it concerns money *smiles*)

    However, on some front end/UI features it’s challenging to document all expected functionality, because that can change rapidly with usability feedback and A/B testing. Having to document different variants over and over as features get tweaked (often daily) can slow things down. Or put another way, having a lightweight way of documenting expected behavior or a feature, either as code comments or spreadsheet with revisioning, or other often can be more efficient. of course this doesn’t apply to mission critical systems like medical appliances, ABS system etc

  2. Documentation is certainly a process, and a living one at that. My teams always worked with detailed documentation, which was kept up-to-date throughout development. If we needed more manpower, or someone got sick, we could always bulk up and have someone writing productive code on just a couple hours’ notice, without slowing the rest of the team.

    It’s the one way I know to add manpower to a project without making the project run even later.

  3. Marshall McLuhan is a media studies researcher, dammit, not a software engineer pundit x(

    “The Medium Is The Message”, but “The Code Is NOT The Documentation”, right?

  4. The medium is only occasionally the message :)

  5. TigroSpottystripes Katsu says:

    was this article a response to that part in the TPV policy that says somthing along the lines of “your viewer must be compatible with the official protocol as documented in our source code” ?

  6. That sentence was one of the things I had in mind, certainly :)

  7. When I read this article, the whole Microsoft/European Commission battle a few years ago over their poor interoperability protocol documentation(specifically SMB/CIFS) comes to mind as another example of the dangers of code as protocol documentation.

    In regards to the TPV policy, having the code as protocol documentation is an invitation to copyright infringement by projects that aren’t licensed under the same terms as LL’s viewer code. As a potential example, the Radegast viewer is BSD-licensed and a spot of GPL code might slip in due to “code as documentation”. Of course whatever infringement there might be is purely unintentional and no malice intended, but because of LL’s failure to provide proper protocol documentation it’s practically unavoidable, unless you play the very harsh game of reverse-engineering.

    There does seem to be something in the way of protocol documentation available, but it doesn’t seem complete enough: http://wiki.secondlife.com/wiki/Protocol and http://wiki.secondlife.com/wiki/Documentation



Leave a Reply

Commenters are to be civil, courteous and respectful to others, insofar as it is possible to do so. Beyond that, you're not required to agree with the opinions expressed by me or by others. Think for yourselves!
First time commenters will wind-up in the moderation queue and your comment won't appear right away. Ditto for anything that gets flagged by the anti-spam rules.
Got a news tip or a press-release? Send it to news@taterunino.net.
  • Support us

    Writing is my day job. Site advertising pays for the hosting, but nothing else. Help keep us in coffee and keyboards

    ... or donate in Second Life at this location.

  • ...or use Flattr

  • prednisone no prescription where to purchase generic prednisone online without a rx buy no perscription prednisone buy 10mg prednisone otc buy cheap fedex prednisone watson prednisone cod overnigh prednisone fedex COD prednisone overnight saturday no prescription prednisone on line buy prednisone next day delivery ordering prednisone over the counter prednisone shipped cash on maxalt no prior script order Paxil overnight delivery Paxil free consultation fedex overnight delivery how to get a Paxil rx order Paxil overnight delivery order Paxil without a rx overnight shipping Paxil non prescription for next day delivery buy Paxil without rx no rx cod Paxil Paxil purchased online without prescription purchase Paxil paypal without prescription how to buy Paxil online without rx buy Paxil without prescription order prescription free Paxil how to purchase Paxil online without a prescription order Paxil without a rx overnight shipping buy Paxil paypal without rx buy prednisone without prescription buy generic accutane over night Lasix to buy pegasus software discount astro cheap rosetta stone software download hp scanner software discount software for teachers price comparison of records management software cheap inexpensive chiropractic software buy real tick three software sony ericsson software downloads cheap computer domain software where to buy link manager ii software manga studio mac discount software software for student discounts cheap pc software were to buy manga software download audio recording software downloadable softwares discount antispam software review oe download hack software program like cyberlink powercinema 6 without bundled tuner best buy Valtrex baixar youcam 3.0 4videosoft studio buy line Lasix generic xenical tablets xenical without a perscription cheap fedex Zithromax overnight without a prescription order generic Maxalt online uk Maxalt generic where to purchase Valtrex no prescription no fees order valtrex overnight cheap c-pill cheap valtrex valtrex buy online in stock (no prescriptions needed for Buspar|buy Buspar with no prescription|online pharmacies Buspar|Buspar cheap|buy Buspar without rx|purchase rx Buspar without|Buspar purchase online|purchase Buspar online without rx|purchase Buspar free consultation|buy Buspar Online|buy Buspar american express|buy Buspar Online|buy cheap Buspar with dr. prescription|Buspar side effects|fedex Buspar without priscription|overnight Buspar without a rx|order cheap overnight Buspar|Buspar toronto|uk order Buspar|Buspar no doctors prescription|Buspar mexico|Buspar order|no prescription Buspar with fedex|order generic Buspar|buy Buspar without rx from us pharmacy|prezzo Buspar|Buspar 10mg|Buspar from canada|purchasing Buspar without a script|buy Buspar australia|purchase Buspar visa without prescription|online purchase Buspar|buy Buspar no perscription cod|buy Buspar drugs|buy Buspar with visa|buy Buspar without rx needed|buy Buspar without prescription|buy Buspar no prescription low cost|purchase order generic Buspar online buy Nolvadex from a usa pharmacy without a prescription buy Nolvadex wihout any doctors info echo online software buy Lasix amex online without prescription buy accutane gel cod shipping on Nolvadex buy synthroid new zealand online where to buy cheap synthroid online in uk tamoxifeno distrito buy Accutane cheap without prescription Lasix online overnight delivery cod buy 40 mg zithromax fast delivery purchase online prescription zithromax without buy Nolvadex with paypal order rx free Nolvadex buy discount Nolvadex online safety order Nolvadex Nolvadex 20 mg Nolvadex fedex no prescription no prescriptions needed for zithromax online pharmacy cod zithromax zithromax cod online orders overnight zithromax without a rx how to buy zithromax online without rx zithromax online overnight delivery cod how to purchase zithromax online without a prescription buy cheap Orlistat without prescription free fedex delivery Orlistat Orlistat without rx medications purchase cheap prescription Valtrex buy cheap Finpecia free fedex buy finpecia in england purchase finpecia without a prescription overnight shipping want to buy finpecia in usa buy Valtrex without purchase Valtrex pay pal online without rx buy Buspar online us pharmacy buy cod Buspar Buy prednisone no r x cheap order cheap overnight prednisone buy cheap valtrex without prescription order Crestor online with overnight delivery no prescripton Valtrex Valtrex on line no script Zithromax online no rx overnight order Zithromax without prescription to ship overnight free fedex delivery Buspar buy Arimidex with a visa buy 200 mcg Cytotec online Cytotec buy now pay later buy generic Lasix pills office 2003 primary interop assemblies adobe flash software buy Buspar online no prescription how to buy Valtrex without a prescription buy 10 mg Crestor adobe lightroom trial download Buy Creative Suite 2 purchase Valtrex without a prescription online purchase Proscar online without script adobe flash amd64 adobe creative suite 4 classes purchase accutane 40 mg visa Crestor buy on line adobe inn yachats oregon download windows millennium edition where to buy Tamsulosin by cod Pdf 9.0 buy Cytotec online illegal Creative Suite 5 Release how to purchase Buspar online without rxcheap Buspar no rx price for microsoft office professional 2007 office 2007 vl key pinnacle tv center for windows 7 purchase Crestor online no membership buy Crestor with amex adobe sucks Crestor mexico Orlistat from india buy Flomax online from canada adobe print shop adobe after effects cs3 How To Learn Word oem software lightroom 3.4 windows ms office 3 user Acrobat Professional 8.0 buy Flomax online us pharmacy buy cheap generic Zithromax online generic valtrex uk Prednisone no prior script where can i find autodesk maya cheap boilsoft viseo where to buy generic Buspar online without a rx order buy Flomax online purchase Buspar no prescription cheap affter effects best price hd tune 3.50 central europe map internet download manger mobile buy pharmacy Crestor waterview prezzo Flomax parallels code Buy Fincar 5mg where is the cheapest place to buy adobe illustrator buy generic Valtrex pills po system software video studio x2 pro downlond xp sp3 64 Valtrex without rx overnight shipping cheap Flomax usa buy Flomax line inexpensive corel x4 or x5 download pagemaker 7 full lizenzschlssel mediavatar buy generic Prednisone download dvdit Tamsulosin buy templates sony vegas 9 chomikuj Buspar buy online buy Maxalt australia buy Valtrex no prescription low cost what is Bupropion buy Amitriptyline no prescription low cost Zithromax buy Buspar 10 mg prednisone online cash on delivery buy prednisone without rx buy Arimidex Online article on downloading software Microsoft Photo Editor Download Spanish Word For Now purchase Orlistat visa without prescription Windows 2000 Programs Home Computers cheap proffes Orlistat apotheke buy Valtrex with mastercard Autocad On Line buy valtrex pay cod Buy Finpecia 1mg with mastercard Windows 98 buy Buspar diet pill buy Prednisone online now finpecia buy cheap accutane 40 mg what is valtrex used for inventor professional price Discount Microsoft WindowsLightroom 2 Windows 7Ms Office StandardPhotoshop Cs5 UpgradeComputer Monitors For SaleWindows Xp InstallSuite Microsoft OfficeAutocad Version 2007Adobe Acrobat 9.0 Standard DownloadIe8 Download For Windows 7Adobe Paint ShopMicrosoft Service Pack 2Free Download Adobe AcrobatStudent And Teacher EditionManage ImageAdobe Acrobat 7 Pro DownloadVista Home Premium To Windows 7 UltimateWindows 7 Home Premium Upgrade OemAdobe Creative Suite 5 Master Collection Student And Teacher EditionBuy Adobe Photoshop Lightroom 3Ms Office 2010 Home And StudentCompare Photo SoftwareMicrosoft Office Word Viewer 2010Windows 7 Upgrade Student Discount ProfessionalWindows 7 Updates DownloadCreative Suite WebAdobe Reader VistaMicrosoft Windows 7 Home Premium Upgrade 64 BitPhotoshop 2Ie8 Download For Windows 7Photoshop 2009Suite Microsoft OfficeMicrosoft Office 2007 VersionUpgrade Windows Vista To 7Autocad Lt 2010Autocad 2010 Best PriceDownload Acrobat Reader 8 microsoft office 2003 product key Update Your Drivers order cheap Orlistat online cheap wordperfect software buy low cost Valtrex ns virtual dj 6.0 buy Valtrex cod next day delivery prednisone with no perscription overnight shipping purchase Flomax overnight buy online Buspar without rx buy Valtrex pills in toronto buy Valtrex diet pills where buy Valtrex how to order Proscar online without a prescription Proscar online purchase purchase Cytotec overnight buy Cytotec money buy purchase no online prescription Cytotec best buy finpecia how to buy finpecia without a prescription finpecia free consultation fedex overnight delivery finpecia without prescription where can i buy Prednisone without prescription briefcase windows cheap microsoft zunes buy microsoft natural keyboard 4000 windows live for windows mobile cheap voice recognition winxp software knowledge software software newsletter t mobile software purchase finpecia paypal without prescription computer business software buy microsoft office louisville windows blind buy microsoft project cheap purchase Orlistat on line no rx pharmacy Rosuvastatin order buspar free next day airbuspar on line Flomax purchased online without prescription japanese foreign language study software discounted box sash windows windows xp pro discount software nokia application software

    Page optimized by WP Minify WordPress Plugin