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