[HN Gopher] Software Development: Mistakes I Made
       ___________________________________________________________________
        
       Software Development: Mistakes I Made
        
       Author : herodotus
       Score  : 46 points
       Date   : 2020-04-25 14:46 UTC (8 hours ago)
        
 (HTM) web link (billwadge.wordpress.com)
 (TXT) w3m dump (billwadge.wordpress.com)
        
       | kccqzy wrote:
       | > However this time I didn't rush to implement, thanks mainly to
       | the influence of Ed Ashcroft. In retrospect Ed's first impulse
       | when he had an idea was to document, not implement. We produced a
       | series of widely read papers and soon had other researchers and
       | brilliant students of our own working on it.
       | 
       | I'm not sure this actually applies to most people. The document
       | vs implement struggle is something I see in modern software shops
       | a lot. It certainly depends on the personality: some people just
       | like thinking through everything and producing a coherent writeup
       | before writing a single line of code, but for some writing code
       | itself is an act that clarifies the still-murky concepts and
       | helps to produce a good writeup.
       | 
       | But in the end, most people aren't producing novel enough
       | technologies that the benefit of a complete writeup is there. You
       | don't write something brilliant and have other researchers work
       | on it; you merely write something for the benefit of a future
       | colleague understand your code quickly. It's a very different
       | class of software development.
        
         | ansq wrote:
         | > "for some writing code itself is an act that clarifies the
         | still-murky concepts and helps to produce a good writeup."
         | 
         | This is my philosophy after ~2 years of working on distributed
         | systems. I got sick of vague design discussions where everyone
         | has a 5 minute memory.
         | 
         | I am much happier to sit at my desk and figure it out by
         | writing code, then produce a design doc once I have a solid
         | prototype working. It feels more honest and real.
         | 
         | At the same time, I wonder if I'm missing out on a different
         | way of doing things.
        
           | cheez wrote:
           | As long as when you're writing code, you're solving only
           | immediate problems in a lightweight way, this is the way to
           | go.
           | 
           | Most people, of course, overengineer. I remember being on a
           | project where a guy wrote 5000 lines of code to put two
           | columns in a specific browser.
        
           | to11mtm wrote:
           | For me, it depends on the problem being solved.
           | 
           | If the problem is in a space that we know what the solution
           | 'should' look like, getting as much of that down in the most
           | abstract sense is something I like to do. However that design
           | is only a -proposed- solution, and of course subject to all
           | sorts of changes.
           | 
           | But where things are murky in a design, yeah, sometimes the
           | easiest thing to do is code it out.
           | 
           | In either case, (up to date) diagrams of data flows are one's
           | friend in any distributed system.
        
         | jasonpeacock wrote:
         | Most modern software shops don't document at all. They would
         | definitely benefit from writing down a problem statement and
         | description of the solution so that everyone is on the same
         | page.
         | 
         | Documenting doesn't have to mean design-first development, it's
         | a way to make sure you're working the right problems and
         | building the desired solutions before you waste your time
         | writing code.
        
           | mgkimsal wrote:
           | I've tried to force myself to write something in English
           | before coding, and... it's not 100% followed, but it's often
           | helped. Sometimes I'm not even prescribing the full
           | 'solution', but it's a sketch of the pros/cons of a couple
           | approaches. This can help me remind myself later of why a
           | particular option was chosen, even if it turns out to be bad.
           | 
           | I can't say if anyone else who looks at the code ever also
           | reads what I've written - it seems that generally they don't
           | (even though I announce it and it's in the commit activity
           | stream and PRs).
        
       | akkartik wrote:
       | Lovely stories hamstrung by the perceived need for a moral.
        
       ___________________________________________________________________
       (page generated 2020-04-25 23:00 UTC)