I have seen many similar posts what people have learned but not once have I seen: "Don't assume anything". So many times when shit hit the bricks because someone assumed something about some other thing they clearly don't know everything about. Which eventually lead to the system failing.
A colleague of mine always came with the quote: "Assumption is the mother of all fuckups". https://www.youtube.com/watch?v=7rr88Szc5q0
Things I’ve learned in my 20 years as a software engineer
131–140 of 745 posts
Re: Things I’ve learned in my 20 years as a software engineer
#132Earlier quoted context omitted.
Either option is fine, as long as your user agrees.
You have more than one user. Some of them will want power, other will want ease of use. You can't satisfy everyone without making multiple products.
This is to say, "all software is written for humans" is too general to be useful - the important issues are all in the details.
Re: Things I’ve learned in my 20 years as a software engineer
#133I found that another thing which separates a junior from a senior is tendency to give up and cut corners. Stuck a wall making that integration test work? get back to it after the current task, don't settle on manual testing.
But maybe that's a trait of bad developers, rather than junior ones.
Re: Things I’ve learned in my 20 years as a software engineer
#134Earlier quoted context omitted.
I see you work in finance. Where the humans are just office decoration.
It may be computers all the way down, but at the bottom there is a human. Somewhere. Poor thing.
Re: Things I’ve learned in my 20 years as a software engineer
#135Technology in CS ends up instead being taught to be magical progress fuel that brings us towards the inevitable future rather than tools built by people with access to capital in order to achieve specific ends
Re: Things I’ve learned in my 20 years as a software engineer
#136Earlier quoted context omitted.
Saying 10x programmers are a myth because it's crazy that someone could do in 1 day what another could do in 1 week makes the assumption that both programmers in the example have the same amount of context, background understanding, and experience. The benefit of talented engineers comes from the fact that they avoid costly pitfalls - not that they pump out more code per hour worked. I feel this "10x programmers are…
Of course one programmer can create 10X the code of another. The limit isn't how fast they type. Its how correct the code is, and how much it leverages what you have and what you'll need. And that results in 'pumping out' more code per day. Whatever the reason (context, background, experience)
And how good your autocomplete tools are, or you repertoire of code based to copy from.
Re: Things I’ve learned in my 20 years as a software engineer
#137> “How can you not know what BGP is?”
I learned a while ago that answering someone who asks you "What is X?" and replying with a phrase similar to the above is probably one of the worst ways to broach the subject. It comes off as questioning the person's intelligence/knowledge.
Instead try to see it as a teachable moment. If it is something you think is cool and/or you are passionate about, you should be excited that you can show your friend/coworker something really cool. ie: "I've never seen Rick and Morty", "You are absolutely going to love that show. I know what you will be binge watching this weekend!"
Anyhow, to put it bluntly, don't be a dick about it.
Re: Things I’ve learned in my 20 years as a software engineer
#138> This article will examine the unnamed and potentially devastating constraining effect of software on human autonomy. I call this concept residual causality, where software design decisions made long ago in different circumstances for different reasons constrain human action in an unknown future. The less aware the designers of software systems are of complexity in social systems, the more likely they are to introduce residual causality."
Re: Things I’ve learned in my 20 years as a software engineer
#139Earlier quoted context omitted.
To pose it another way: for general software Dev (not some niche use case that only one guy understands), let’s say building websites in Vue or React, the idea of a 10x developer is that they can work in January and another, average, programmer can then spend February, March, April, May, June, July, August, and Sept… and the average guy won’t get more done? Or they come in only every other Monday and contribute as mu…
There is no "10X" touch-typist because a) the performance limit is absolute & relatively low and b) the learning curve is such that it's easy to get to the limit and plateau. Now let's increase complexity - still typing, but you must translate the text from another language. Increase again - now you're translating poetry. Increase again - the poetry is original Shakespeare. You need to translate into contemporary Eng…
Ironically enough your example is flawed: there are documented 10x touch-typists.
The realities of the court system place high demands on the typists; the minimum required typing speed is already quite high: trained court reporter or closed captioner must write speeds of approximately 180, 200, and 225 words per minute (wpm) at very high accuracy in the categories of literary, jury charge, and testimony, respectively[1] - and some exceed the minimum and go for 300 wpm. Even better, the official record for American English [is] 375 wpm [2].
Compare that to the average typing speeds around 30 - 40 wpm [3] Granted, the court reporters use specialized input devices (stenotypes) - but hey, the same can be said about highly productive programmers, who use specialized development environments - and sometimes also specialized input devices.
--
[1] https://en.wikipedia.org/wiki/Stenotype
[2] ibid.
Re: Things I’ve learned in my 20 years as a software engineer
#140This is a very insightful list. But there is one thing I'd quibble with: while it's inherently a super-subjective metric, I would say that 10x programmers do exist. Both in the "can support a company by themselves" sense and the "mad lone genius" sense. Not all the 10x programmers are good at working with other people or on other people's ideas. 0.1x programmers are often lost or afraid, although they may just be uni…
Saying 10x programmers are a myth because it's crazy that someone could do in 1 day what another could do in 1 week makes the assumption that both programmers in the example have the same amount of context, background understanding, and experience. The benefit of talented engineers comes from the fact that they avoid costly pitfalls - not that they pump out more code per hour worked. I feel this "10x programmers are…