Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Documentation aaaaarrrrgggggg

Documentation aaaaarrrrgggggg

Scheduled Pinned Locked Moved The Lounge
comquestionannouncement
36 Posts 16 Posters 2 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Mike HankeyM Mike Hankey

    RedDk wrote:

    You don't get paid enough to document code.

    I don't get paid anything for writing code, I do it for the fun of it.

    New version: WinHeist Version 2.1.0 There's a fine line between crazy and free spirited and it's usually a prescription. I'm currently unsupervised, I know it freaks me out too but the possibilities are endless.

    P Offline
    P Offline
    PIEBALDconsult
    wrote on last edited by
    #23

    Mike Hankey wrote:

    I don't get paid anything for writing code, I do it for the fun of it.

    Right, they pay me to do it for them. Although, most of what they have me doing is SSIS and that's not code. :sigh: There has been some coding fun this week as I have been working with the TFS API.

    1 Reply Last reply
    0
    • M Member 10707677

      When I first started in the industry, the standard was that documentation was to be completed before the first line of code. Some refer to that method as the waterfall method. Today, you seldom see documentation; or, what little there is seldom reflects the product for which it is written. As a basic rule of thumb, write your documentation for an eight-year-old. (I used to have my daughter do the final edit of my documentation until she was eleven.)

      P Offline
      P Offline
      PIEBALDconsult
      wrote on last edited by
      #24

      Member 10707677 wrote:

      documentation was to be completed before the first line of code

      That's just a specification. I've seen a few of those, read them, said "OK here's a better way to do that", and wrote something that actually made sense instead. Where I am now I just keep saying "documentation is out of date as soon as it's published".

      K 1 Reply Last reply
      0
      • Mike HankeyM Mike Hankey

        Why is it that we as programmers hate to document? I document code as I go but I write articles for my site on projects and libraries I create and I suck at it, put off doing it and when I do get down to writing it's a slow tedious process.

        New version: WinHeist Version 2.1.0 There's a fine line between crazy and free spirited and it's usually a prescription. I'm currently unsupervised, I know it freaks me out too but the possibilities are endless.

        S Offline
        S Offline
        StatementTerminator
        wrote on last edited by
        #25

        For one thing, managers generally don't factor documentation time into coding deadlines, so if you spend time documenting it can look like you aren't getting your "real" work done fast enough. But the larger problem is keeping it up-to-date. You may have time to do the initial documentation, but are you going to have time to update it with every change? What about when another team member ninja-edits the code, are you going to regularly check and make sure the documentation still matches the code? I used to try very hard to have good documentation, but I found it to be hopeless. You end up with outdated documentation, which is often worse than no documentation at all. I don't buy the "code should document itself" argument, but for practical purposes that's where we're at, even if you have documentation you still have to go through the code and make sure the documentation isn't lying to you. Edit: There's one time when documentation should be mandatory: when you are leaving a job. You likely aren't going to be needed to meet a coding deadline during your last two weeks, so spend that time documenting the systems you've been responsible for so the next person has something to go by when they pick up those systems. It's good karma, and that's when documentation is really needed and will get read.

        M 1 Reply Last reply
        0
        • Sander RosselS Sander Rossel

          My code is self-documenting :D I hate documenting my code (i.e. writing manuals), unless it is to teach others how to use a certain technology (like in my blog or articles). And I'm not particulary bad at it. But I do have a degree in Media and Journalism, so I may not be your average documentor :D

          My blog[^]

          public class SanderRossel : Lazy<Person>
          {
          public void DoWork()
          {
          throw new NotSupportedException();
          }
          }

          B Offline
          B Offline
          BrainiacV
          wrote on last edited by
          #26

          Sander Rossel wrote:

          I hate documenting my code

          One company I worked for, we had documentors that created the documentation in parallel with us. We'd occasionally upset the documentors when we found we had to change something, but we tried to keep it to a minimum. That worked fairly well. Particularly since English was no longer the primary language for the programmers.

          Psychosis at 10 Film at 11 Those who do not remember the past, are doomed to repeat it. Those who do not remember the past, cannot build upon it.

          Sander RosselS 1 Reply Last reply
          0
          • B BrainiacV

            Sander Rossel wrote:

            I hate documenting my code

            One company I worked for, we had documentors that created the documentation in parallel with us. We'd occasionally upset the documentors when we found we had to change something, but we tried to keep it to a minimum. That worked fairly well. Particularly since English was no longer the primary language for the programmers.

            Psychosis at 10 Film at 11 Those who do not remember the past, are doomed to repeat it. Those who do not remember the past, cannot build upon it.

            Sander RosselS Offline
            Sander RosselS Offline
            Sander Rossel
            wrote on last edited by
            #27

            Sounds a bit like pair programming, but with one doing documentation. That might actually work...

            My blog[^]

            public class SanderRossel : Lazy<Person>
            {
            public void DoWork()
            {
            throw new NotSupportedException();
            }
            }

            B 1 Reply Last reply
            0
            • Sander RosselS Sander Rossel

              Sounds a bit like pair programming, but with one doing documentation. That might actually work...

              My blog[^]

              public class SanderRossel : Lazy<Person>
              {
              public void DoWork()
              {
              throw new NotSupportedException();
              }
              }

              B Offline
              B Offline
              BrainiacV
              wrote on last edited by
              #28

              I really enjoyed it. One case in particular, I had written what I called the "Custom Output Processor" for our database product. I had implemented an RPN style calculator so you could do math before displaying the results on the report. It also had commands for copying fields to the report. It was driven by a table of opcodes and arguments that were interpreted by the code. I had user opcodes like RCL, STO, PRT. I was writing the next generation and wanted to make the processing orthogonal and was merrily adding new opcodes like INP, WRT, etc., and the documentor threw up her hands and declared it unteachable. That caused me to pause and recognize she was correct. I redesigned it replacing all the different user opcodes with MOV and the arguments determined the internal opcode for processing. I was particularly pleased because I made it code compatible with the earlier version. You may have written your processing in the earlier version with RCL and STO, but when you opened them in the newer version, you'd see them converted to MOV with the arguments indicating if you were reading a field, register, or an output field. It really helped having a "non-technical" person commenting on what you were creating. (BTW the database was The Data Factory published by Micro Lab, Inc for the Apple II)

              Psychosis at 10 Film at 11 Those who do not remember the past, are doomed to repeat it. Those who do not remember the past, cannot build upon it.

              Sander RosselS 1 Reply Last reply
              0
              • B BrainiacV

                I really enjoyed it. One case in particular, I had written what I called the "Custom Output Processor" for our database product. I had implemented an RPN style calculator so you could do math before displaying the results on the report. It also had commands for copying fields to the report. It was driven by a table of opcodes and arguments that were interpreted by the code. I had user opcodes like RCL, STO, PRT. I was writing the next generation and wanted to make the processing orthogonal and was merrily adding new opcodes like INP, WRT, etc., and the documentor threw up her hands and declared it unteachable. That caused me to pause and recognize she was correct. I redesigned it replacing all the different user opcodes with MOV and the arguments determined the internal opcode for processing. I was particularly pleased because I made it code compatible with the earlier version. You may have written your processing in the earlier version with RCL and STO, but when you opened them in the newer version, you'd see them converted to MOV with the arguments indicating if you were reading a field, register, or an output field. It really helped having a "non-technical" person commenting on what you were creating. (BTW the database was The Data Factory published by Micro Lab, Inc for the Apple II)

                Psychosis at 10 Film at 11 Those who do not remember the past, are doomed to repeat it. Those who do not remember the past, cannot build upon it.

                Sander RosselS Offline
                Sander RosselS Offline
                Sander Rossel
                wrote on last edited by
                #29

                BrainiacV wrote:

                It really helped having a "non-technical" person commenting on what you were creating.

                Sounds useful.

                BrainiacV wrote:

                The Data Factory

                Haven't heard of it.

                BrainiacV wrote:

                Micro Lab, Inc

                Haven't heard of it...

                BrainiacV wrote:

                Apple II

                Haven... Oh wait, I know Apple! The Apple II was released about ten years before I was even born (not to make you feel old or anything, I guess I'm just young) ;)

                My blog[^]

                public class SanderRossel : Lazy<Person>
                {
                public void DoWork()
                {
                throw new NotSupportedException();
                }
                }

                B 1 Reply Last reply
                0
                • Sander RosselS Sander Rossel

                  BrainiacV wrote:

                  It really helped having a "non-technical" person commenting on what you were creating.

                  Sounds useful.

                  BrainiacV wrote:

                  The Data Factory

                  Haven't heard of it.

                  BrainiacV wrote:

                  Micro Lab, Inc

                  Haven't heard of it...

                  BrainiacV wrote:

                  Apple II

                  Haven... Oh wait, I know Apple! The Apple II was released about ten years before I was even born (not to make you feel old or anything, I guess I'm just young) ;)

                  My blog[^]

                  public class SanderRossel : Lazy<Person>
                  {
                  public void DoWork()
                  {
                  throw new NotSupportedException();
                  }
                  }

                  B Offline
                  B Offline
                  BrainiacV
                  wrote on last edited by
                  #30

                  No offense taken. It was a long time ago, in a ... (wait, are you too young to recognize the reference? :laugh: ) Beseech the God Google for "The Data Factory" "Micro Lab" and you'll find reviews. It was an old flatfile database program. And no, I'm not Bill Passauer, I was hired to clean up his, uh, code and myself and another ended up rewriting it completely. But that's another story.

                  Psychosis at 10 Film at 11 Those who do not remember the past, are doomed to repeat it. Those who do not remember the past, cannot build upon it.

                  Sander RosselS 1 Reply Last reply
                  0
                  • B BrainiacV

                    No offense taken. It was a long time ago, in a ... (wait, are you too young to recognize the reference? :laugh: ) Beseech the God Google for "The Data Factory" "Micro Lab" and you'll find reviews. It was an old flatfile database program. And no, I'm not Bill Passauer, I was hired to clean up his, uh, code and myself and another ended up rewriting it completely. But that's another story.

                    Psychosis at 10 Film at 11 Those who do not remember the past, are doomed to repeat it. Those who do not remember the past, cannot build upon it.

                    Sander RosselS Offline
                    Sander RosselS Offline
                    Sander Rossel
                    wrote on last edited by
                    #31

                    BrainiacV wrote:

                    It was a long time ago, in a ...

                    I believe that movie came out in the same year as the Apple II ('77) and it's one of my favourite movies ever :D So I guess there goes my excuse ;p

                    BrainiacV wrote:

                    Beseech the God Google for "The Data Factory" "Micro Lab" and you'll find reviews.

                    I won't actually :wtf:

                    My blog[^]

                    public class SanderRossel : Lazy<Person>
                    {
                    public void DoWork()
                    {
                    throw new NotSupportedException();
                    }
                    }

                    1 Reply Last reply
                    0
                    • P PhilLenoir

                      The Documentors - weren't that nasties in Harry Potter?

                      Life is like a s**t sandwich; the more bread you have, the less s**t you eat.

                      K Offline
                      K Offline
                      KP Lee
                      wrote on last edited by
                      #32

                      PhilLenoir wrote:

                      The Documentors - weren't that nasties in Harry Potter?

                      No, they had a different name and were just the end result of trying to document something.

                      1 Reply Last reply
                      0
                      • M Member 10707677

                        When I first started in the industry, the standard was that documentation was to be completed before the first line of code. Some refer to that method as the waterfall method. Today, you seldom see documentation; or, what little there is seldom reflects the product for which it is written. As a basic rule of thumb, write your documentation for an eight-year-old. (I used to have my daughter do the final edit of my documentation until she was eleven.)

                        K Offline
                        K Offline
                        KP Lee
                        wrote on last edited by
                        #33

                        Member 10707677 wrote:

                        documentation was to be completed before the first line of code. Some refer to that method as the waterfall method.

                        There seems to be different definitions for that method. Some studies have found the most successful projects used a combination of waterfall and agile methods combined. Waterfall starts with an overall plan and relationships. Those ideas are then documented separately breaking it into more plans and relationships. If you keep going like that you can easily get bogged down. Once you get down to about two-three levels, I can see the benefits of abandoning waterfall at that point and going to agile to get early results of the pieces documented to that point.

                        1 Reply Last reply
                        0
                        • P PIEBALDconsult

                          Member 10707677 wrote:

                          documentation was to be completed before the first line of code

                          That's just a specification. I've seen a few of those, read them, said "OK here's a better way to do that", and wrote something that actually made sense instead. Where I am now I just keep saying "documentation is out of date as soon as it's published".

                          K Offline
                          K Offline
                          KP Lee
                          wrote on last edited by
                          #34

                          I've once read some self documenting code. I hit a point where I said to myself "that is just plain wrong logic". When I brought it to the attention of my manager, we couldn't change it because it was written per the spec document. I asked to see the spec document. I conceded the code did exactly what the spec said it should. She thought the matter was closed when I added "It's too bad it isn't doing what it is intended to do." We spent another hour going though the code to prove that what I saw in fifteen seconds was true. (fixed by changing "<" to ">" or vice versa)

                          M 1 Reply Last reply
                          0
                          • S StatementTerminator

                            For one thing, managers generally don't factor documentation time into coding deadlines, so if you spend time documenting it can look like you aren't getting your "real" work done fast enough. But the larger problem is keeping it up-to-date. You may have time to do the initial documentation, but are you going to have time to update it with every change? What about when another team member ninja-edits the code, are you going to regularly check and make sure the documentation still matches the code? I used to try very hard to have good documentation, but I found it to be hopeless. You end up with outdated documentation, which is often worse than no documentation at all. I don't buy the "code should document itself" argument, but for practical purposes that's where we're at, even if you have documentation you still have to go through the code and make sure the documentation isn't lying to you. Edit: There's one time when documentation should be mandatory: when you are leaving a job. You likely aren't going to be needed to meet a coding deadline during your last two weeks, so spend that time documenting the systems you've been responsible for so the next person has something to go by when they pick up those systems. It's good karma, and that's when documentation is really needed and will get read.

                            M Offline
                            M Offline
                            Member 10707677
                            wrote on last edited by
                            #35

                            Sometimes documentation (and programs) takes on a life of its own. I keep running across snippets of code and documentation I wrote forty-plus years ago.

                            1 Reply Last reply
                            0
                            • K KP Lee

                              I've once read some self documenting code. I hit a point where I said to myself "that is just plain wrong logic". When I brought it to the attention of my manager, we couldn't change it because it was written per the spec document. I asked to see the spec document. I conceded the code did exactly what the spec said it should. She thought the matter was closed when I added "It's too bad it isn't doing what it is intended to do." We spent another hour going though the code to prove that what I saw in fifteen seconds was true. (fixed by changing "<" to ">" or vice versa)

                              M Offline
                              M Offline
                              Member 10707677
                              wrote on last edited by
                              #36

                              Your mention of self-documenting code reminds me of my university days. One of my professors threatened to fail us if we didn't include comments in the source code. This was in the age when punch cards were still being used, so comments were a nuisance. One of the students turned in a final project with a single comment "RUN PROGRAM" as the first card of the deck. The result, when run, was a listing of the source code with accompaning commentary. Needless to say, he passed.

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • World
                              • Users
                              • Groups