[HN Gopher] What I've Learned in 45 Years in the Software Indust...
       ___________________________________________________________________
        
       What I've Learned in 45 Years in the Software Industry (2021)
        
       Author : colinprince
       Score  : 183 points
       Date   : 2022-12-02 06:18 UTC (1 days ago)
        
 (HTM) web link (www.bti360.com)
 (TXT) w3m dump (www.bti360.com)
        
       | trm42 wrote:
       | Good list. With a paltry experience of 14 years, I would add one
       | silly thing that kind of feels too obvious to even add:
       | 
       | When there's an error or exception, read the error and the stack
       | trace thoroughly and figure out what it means even if it means
       | googling. Lately I've noticed that younger generation doesn't
       | really understand error messages even in the simplest cases and
       | people end up in wild goose chases when the real reason was
       | incorrect permissions or something really mundane.
        
         | plugin-baby wrote:
         | > Lately I've noticed that younger generation doesn't really
         | understand error messages even in the simplest cases
         | 
         | It was ever thus. I suspect what's happened is that lately
         | you've become the older generation.
        
         | musicale wrote:
         | Sometimes the error message is spurious and the solution (such
         | as installing the right version of a software package) is well-
         | known. Maybe someone knows this and can solve your problem
         | instantly.
         | 
         | Other times, perhaps frequently, the error message is actually
         | telling you something important.
         | 
         | Many people get stuck in the second case thinking it's the
         | first case.
        
         | Tade0 wrote:
         | The error messages, at least in front-end, have gotten worse.
         | 
         | In 2012 I had a stack trace that I could read and eventually
         | figure out what happened.
         | 
         | Nowadays it's async framework method calls upon async framework
         | method calls and that is an improvement in the tooling, because
         | it can now glue them together.
         | 
         | Next-gen frameworks are undoing that mess, but god help you if
         | you use some third party library for e.g. state management.
        
           | [deleted]
        
       | agumonkey wrote:
       | https://archive.ph/wOlQm
        
       | wiz21c wrote:
       | For me it's : 50% of software development occurs outside the
       | computer
        
         | sigha887 wrote:
         | 90% would be more accurate.
        
       | gijoeyguerra wrote:
       | Solid.
        
       | xiwenc wrote:
       | I'd like to add: accept imperfect solutions but try to think few
       | steps ahead.
       | 
       | It's an art to produce something that lasts long but doesn't take
       | years to build. Tech evolves rapidly.
        
       | code_lettuce wrote:
       | +1 for SC's 7 habits
       | 
       | Early in my career, my manager gave me the feedback that
       | sometimes my eagerness to participate outsized my ability to
       | understand. I never meant to suck the air out of the room, I was
       | just so excited to build cool stuff! He recommended reading up on
       | Stephen Covey and suggested that when collaborating on
       | designs/debugging/etc. as a team, to practice being the last to
       | speak. Life-changing advice.
        
         | throwaway14356 wrote:
         | I like to summarize everything said and add my own conclusions.
         | It only belongs at the end.
        
         | tleilaxu wrote:
         | Sounds like a good manager, giving useful feedback!
        
       | mrwh wrote:
       | > Seek First to Understand
       | 
       | Yes, this. If there's one issue I've seen again and again
       | limiting engineers it's them fixing some part of a system without
       | understanding the system as a whole, while assuming that someone
       | (the code reviewer say) does understand it. It's a machine for
       | manufacturing bugs and technical debt, and it keeps the engineer
       | in a junior mindset.
        
       | jordanmorgan10 wrote:
       | I love this content! I love his wisdom! But my goodness, it's
       | like some of these websites go out of their way to _not_ be
       | readable at all.
        
         | ptx wrote:
         | Given the "Close Form" text and the bullet list of social media
         | icons, it looks like the CSS is failing to load.
        
         | __MatrixMan__ wrote:
         | I thought it was refreshing to have no cause to wonder what was
         | going on under the hood. I wish the rest of the web was like
         | that.
        
           | bavila wrote:
           | It only looks that way because the link to its stylesheet is
           | broken:
           | 
           | <link media="all" href="https://3skoz1yr97849dum72v8p1rj-
           | wpengine.netdna-ssl.com/wp-..." rel="stylesheet" />
           | 
           | The `href` leads to a 404, hence the "refreshing" look...
        
         | rightbyte wrote:
         | Not his fault your terminal supports more than 80 character
         | rows.
         | 
         | (If you got Firefox click the reader mode in the right of the
         | URL bar).
        
           | jonsen wrote:
           | (Tried Reader on Safari iPad; Wow!)
        
         | gumby wrote:
         | Honest question: what was the problem?
         | 
         | The photographs? Photographs are almost always junk in an
         | article, and this article was no exception, except it had the
         | saving grace that this was his swan's song,so why not (and
         | there were merely three).
         | 
         | But it was a simple text layout for a short article. Personally
         | I can't complain. Hence I ask what I'm missing.
        
           | jsjohnst wrote:
           | > Honest question: what was the problem?
           | 
           | > But it was a simple text layout for a short article.
           | Personally I can't complain. Hence I ask what I'm missing.
           | 
           | Just wanted to repeat this as I entirely agree. Sure, it's
           | bland, but like it's extremely readable and of all the sites
           | to rant about UX on, this wouldn't even make my top 1M.
        
           | recursive wrote:
           | All in all, I find it to be pretty readable. Some bigger body
           | margins would help a lot though.
        
           | rightbyte wrote:
           | If you read it on a computer the text floats out the whole
           | window width.
        
       | ahstilde wrote:
       | my close friend feels bti360 is the best contractor to work for.
        
         | defaultcompany wrote:
         | I clicked through to their website and it is hmmm... different?
         | Like I think maybe it was created using Microsoft FrontPage in
         | the mid 90s and never touched again outside of posting new
         | photos of company events. While trying to discern what this
         | company actually _does_ (which is never really stated but seems
         | to be like government security contracts?) I tried clicking on
         | the "Apply Now" button and just got a lot of errors in the JS
         | console.
         | 
         | That being said I think this blog post actually is spot on and
         | really does capture what it takes to do good software
         | engineering.
        
       | yamrzou wrote:
       | Previously:
       | 
       |  _What I've Learned in 45 Years in the Software Industry_ -
       | https://news.ycombinator.com/item?id=25658216 - Jan 2021 (345
       | comments)
        
       | antihero wrote:
       | Open with a solution but be very open about its flaws,
       | assumptions, and invite change. This is a great way to stimulate
       | teams to start thinking.
        
       | 123pie123 wrote:
       | one bit of advice about contracting in the uk - given to me ages
       | ago when I first started contracting is:
       | 
       | "It's like playing a game where the rules change without you
       | knowing and people cheat"
        
         | plugin-baby wrote:
         | Sounds grim. Any examples?
        
           | folkhack wrote:
           | Not the person you're responding to but I've done a fair bit
           | of contracting, although in the US.
           | 
           | A perfect example is scope creep, which happens with all
           | sorts of clients. And, as much as we all hate it as devs it's
           | just the way the world works - stuff changes. Some clients
           | will work with you to update the spec and make sure you're
           | compensated for extra time, where others will just expect you
           | to "roll with the punches" effectively working for free.
           | 
           | A personal anecdote of this was when a medium-size company
           | switched payment processors half way through our contract. I
           | was building a custom subscription experience over a 3-month
           | timeline. I had already finished the specified payment parts
           | when they came to me wanting to switch it out for another
           | provider... When explaining that change would effect
           | timeline, and that I would need to be paid for the extra
           | labor they got very combative. I pushed back on them and they
           | threatened to pull the entire contract, sue for the 50% up-
           | front (if not reimbursed), and even heavily alluded to
           | slandering me among other customers of mine in their niche
           | industry. They strong-armed me into doing the work because it
           | was either losing two weeks redoing payment processor
           | integrations, or losing over two months of work and
           | potentially taking a huge reputation hit.
           | 
           | Over the years they would reach out for new work, but I never
           | contracted for that client ever again. Gotta pick 'em
           | carefully and I don't tolerate abuse.
           | 
           | On a contrasting positive note... Other clients understand
           | scope creep involves extra work, and even proactively offer
           | to pay for the labor/update timelines. For these folks I will
           | _bend over backwards_ because of the respect.
           | 
           | ---
           | 
           | So back to the "rules change" and "people cheat" - 100%
           | accurate. Not all clients are like this - but, you have to
           | learn to gracefully handle and eventually cull the ones who
           | are.
        
       | DrBazza wrote:
       | Two bits of advice I'd add, from 30 years in the industry:
       | 
       | * A colleague once said to me, a few years back, "become an
       | expert in one thing", even if it's a small thing.
       | 
       | * "My superpower is reading the manual"
        
         | ok123456 wrote:
         | Forget manuals, simply being able to read a stack trace puts in
         | the top 10%.
        
           | icedchai wrote:
           | Yeah, and being able to use Google, too...
        
             | cafard wrote:
             | And actually being able to post the five or six lines of
             | the stack trace that are relevant, without the fifty or
             | sixty that really aren't.
        
         | 0x445442 wrote:
         | Manual? One should be so lucky.
        
           | bmitc wrote:
           | Exactly. I yearn for documentation that doesn't require me to
           | essentially run experiments to figure out what a library
           | does. It is mind blowing how much time I've wasted in my
           | career figuring things out that could have just been
           | explained by accurate documentation.
        
           | pixl97 wrote:
           | Manuals used to be great when software was stable... that is
           | new versions we're not updating online at any given moment.
           | After a few updates these days the manual might as well be
           | for different software totally.
        
         | [deleted]
        
         | begueradj wrote:
         | Is not that anti "antifragile" by design ? Like a being which
         | is very well adapated to its environment: it can not survive if
         | its environment changes.
        
         | als0 wrote:
         | > even if it's a small thing
         | 
         | How small is small? Some small fields are quite big when you
         | factor in all global experts.
        
           | DrBazza wrote:
           | Something that you, personally, could be reasonably expected
           | to know pretty much everything about, whether that's an
           | internal system, a public API, or tool. It's up to you
           | whether the topic is transferrable.
        
             | yi_xuan wrote:
             | This is pretty like the quote from Thomas Huxley: "Try to
             | learn something about everything and everything about
             | something".
             | 
             | But I think people should choose topic carefully it should
             | be fundamental, maybe it's soon unfortunately gone if you
             | choose a trendy and short-lived tech.
        
               | DrBazza wrote:
               | Never heard that quote before. +1
        
           | cratermoon wrote:
           | "How small a thought it takes to fill a whole life!" - Ludwig
           | Wittgenstein
        
         | gryf wrote:
         | My only superpower is knowing what fad is going to make a stack
         | of cash and riding it. The only thing I've actually honestly
         | believed in and honed recently was Go programming.
        
           | kzzzznot wrote:
           | Mind sharing what fads have been the most profitable for you?
        
             | 0x445442 wrote:
             | I can't take any credit for having some omniscient insight
             | but I was lucky enough to start Java development in 1996.
             | It pretty much gave me a career.
        
               | EMM_386 wrote:
               | Same deal, 2001 when C# was in beta.
               | 
               | That's worked out.
        
           | daveevad wrote:
           | I too have recently started diving into Go in a more
           | comprehensive way. Any ideas about why it seems to you right
           | now is a good time to cash in on golang?
           | 
           | My best guess is the ascendence of Kubernetes has made
           | reading Go rather instrumental; and as a by-product, writing
           | Go seems much more approachable.
        
             | bitexploder wrote:
             | Not GP, but: Critical mass. Accepted in many domains as a
             | valid first class solution. Memory safe. Has that depth of
             | modules now that you can `go get` most things off the
             | shelf. Easy to get a team up to speed, leading to wide
             | adoption.
             | 
             | It is like the Python of statically compiled languages to
             | me, but with way more safety rails and things you need as
             | your code base grows.
             | 
             | There is just demand for it in general from what I see.
        
             | gryf wrote:
             | I'm not really cashing in on it. It has become my sidearm.
             | I think that's the best way to describe it. When I want to
             | solve a problem it's just there, trustworthy, reliable and
             | efficient.
             | 
             | What it does is allow me to circumvent demotivating and
             | productivity draining pain which is seen elsewhere which is
             | pretty much summed up as: shitty build tools, runtime
             | environments, libraries, containerisation, IDEs,
             | concurrency approaches, test frameworks.
             | 
             | Really it's a tool that allows me to actually get stuff
             | done.
             | 
             | It's pretty much what I've wanted for years: a memory safe,
             | GC'ed C with a stdlib that wasn't conceived in the 70s.
        
         | lmg643 wrote:
         | I think "reading the manual" can be be interpreted not just in
         | the literal sense of whether there's an actual manual, but also
         | in the metaphorical sense, to make sure we're considering
         | easily available sources of information. Great advice.
        
           | nickjj wrote:
           | Yep this is a really important skillset.
           | 
           | I've written a post around this topic because you can do this
           | in a systematic way to learn pretty much anything
           | https://nickjanetakis.com/blog/how-i-quickly-find-answers-
           | to....
        
           | mtlmtlmtlmtl wrote:
           | The code is the best manual you'll every get in my
           | experience. There's no substitute when working on a codebase.
           | 
           | When I'm introduced to a codebase I'll be doing significant
           | work on, I'll often spend hours at a time just reading the
           | code. Start at main() and skim until you get a feel for the
           | overall architecture, then go figure out whatever subsystems
           | seem mysterious to you. Rinse and repeat. Makes a huge
           | difference when making changes, because that requires reading
           | code anyway, and you'll have a much better idea of what code
           | to read/change.
        
             | sigha887 wrote:
             | And it will for all future make it impossible for you to
             | distinguish official API and implementation details.
        
               | mtlmtlmtlmtl wrote:
               | That just comes with the territory of being someone who
               | has to understand the implementation details. No getting
               | away from that.
        
             | tstrimple wrote:
             | Code also has the advantage of not getting out of date with
             | what the application actually does. Invariably,
             | documentation outside the code base often rots over time
             | until it reaches a point it's outright misleading.
        
               | rahimnathwani wrote:
               | Yup, that's a good reason to keep documentation in the
               | same repo, and to update documentation in the same commit
               | as the code that causes the change.
        
       | abledon wrote:
       | does css load for anyone else: https://www.bti360.com/careers/
        
       | [deleted]
        
       ___________________________________________________________________
       (page generated 2022-12-03 23:00 UTC)