[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)