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/