2022-07-14                         from the editor of ~insom
  ------------------------------------------------------------

=> https://news.ycombinator.com/item?id=32054181


  Orange Site discussion about how software development used
  to be. All I can think is that it's really tricky to examine
  our instincts and experiences -- I've developed software for
  money since around 1998 at different scales.

  My "first" thoughts:

  I used to develop features much, much faster.

  Back when I worked on MyMemory.co.uk I shipped several
  features per week pretty consistently. This was PHP4, which
  is not a good language, in a code base I inherited.
  Importantly: after I took over this code base it was
  effectively mine. I didn't have to document changes, my code
  was never reviewed (features were QAed though) and because
  we didn't have version control I was effectively a solo
  developer. As long as the software "fit" in my head, it was
  fine.

  I definitely shipped bugs to the customer but in very few
  cases were they serious. Usually they were stupid things
  which having Sentry or Bugsnag would have let me find almost
  immediately (in production). Very rarely they had financial
  impact but the agency I worked for would credit the customer
  development hours and in the end I think it was a good deal
  for everyone.

  That code base lived for around 12 years, and I was the main
  author for about 4 of those. When new developers joined
  (especially once we got Subversion, and more than one
  developer could work on it at a time) there was a steep
  learning curve -- really they were basically reverse
  engineering the site based on intuition and generally being
  able to ask previous developers what they were thinking.

  I take credit for bringing in version control at that
  agency. While it would have been impossible for some of
  their bigger projects to have been written the old way
  without everyone clobbering each other's work, the company
  immediately saw an overhead that went to version control. It
  was Subversion so we spent non-trivial amounts of time
  merging -- merges were scary then! -- but even when Git
  "fixed" that for us, we spent a lot of time on the busywork
  of maintaining version control.

  At the time, one director wanted to abandon version control
  and go back to folders of unmanaged files. That seemed crazy
  to me then (and mostly still does) but I can see his point:
  we were spending hours per week on version control which was
  a new cost with no billable benefit to customers.

  My "second" thoughts:

  I spent a lot of time writing code that other people had
  written before me. All the way back to fact that I've had to
  write several linked list and hash table implementations in
  my life because C didn't have them in the standard library.
  In the early 2000's I wrote a lot of form validation logic.
  Like: a lot! I wrote several form validation frameworks
  because if something is worth solving it's worth solving
  with a generic tool, multiple times.

  Many of those MyMemory features that I mentioned cost tens
  of thousands of pounds of developer time. When I was 22, a
  week of my billable time cost around GBP 2,220.

  Even though I've admitted that the code base was an untested
  and undocumented artifact, the actual product was great: a
  fully bespoke commerce application, back office, stock
  management and a warehouse picking and packing system
  (barcode scanners, the works). But they probably spent the
  bones of a million pounds on it over the years.

  Almost every feature that system had, at enormous expense,
  is either a core feature or a plugin for
  Shopify/Magento/Spree/etc. You could probably build that
  million-pound site for a few thousand dollars of developer
  time, now.

  Is a tailored suit a better fit than an off the shelf suit?
  Sure hope so! I've only ever gotten as far as a tailored
  shirt, personally 😊. Is a tailored website a better fit than
  an off the shelf one? Emphatic "Yes".

  Integrating a mess of third party stuff into your business
  usually means bending your business to how the system works
  and not the other way around. If you're not willing to bend,
  you are going to be paying quite a lot out of pocket for
  customizations. This is probably the lesson that large
  enterprises who buy ERPs learn, at great expense.

  But a million pounds is a lot of money! That's 20-30
  (non-programmer) office-worker-years worth of money in the
  UK.

  My "third" thoughts:

  Doing things right sure is a lot of work compared to just
  doing things.

  I work at a biggish company so there's a lot at stake. At my
  old job things servers got hacked and the outcome was the
  millions of spam emails were sent out -- at my current job
  multi-million dollar intellectual property could be stolen.
  It makes sense to not move fast and break things when the
  stakes are higher.

  In conclusion: 🤷‍♂️

  > Alone a youth runs fast, with an elder slow, but together
  they go far.

=> https://andrewwhitby.com/2020/12/25/if-you-want-to-go-fast/