~insom — now


   2022-07-14
   ----------

=> 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/