Live data from Hacker News

Negative focus

nrkbeta.no

11–20 of 47 posts

Re: Negative focus

#11
post #3

Ranting gets attention, so people rant. I've noticed people will use some library or platform or language, and at first they'll love it. Then two or three years on, all they can see are the places it falls short in the domain they're working in. I've personally experienced a disconnect when I'm still in the honeymoon phase, and the speaker has progressed to the "I-hate-this-it's-terrible-throw-it-out" stage.

I think this is just because of the classic leaky abstraction problem. At first a new abstraction seems amazing, but after using it long enough you've seen enough of its leaks to become disenchanted.

Re: Negative focus

#12
"We fail orders of magnitude more than any other engineering discipline."

Our projects also have a lower barrier to entry than other disciplines. You're not going to invest billions developing a new car or building a bridge unless you're pretty sure you can pull it off.

Re: Negative focus

#13
Only a small percentage of developers/engineers partake in such ranting, evangelism, conferences.

Those who do are typically "blessed" with various personality traits that may seem to encourage this negativity, arguing, "religiousness".

They are not represenative for the state of the industry and I suspect that it's very similar in many other industries (perhaps experimental physicists, biologists, archeologists could share some insights?).

Re: Negative focus

#14
We've been building bridges, roads and other stuff for thousands of years.

We've been building software for maybe 70 years.

I'd give it a little time.

Re: Negative focus

#15
post #3

Ranting gets attention, so people rant. I've noticed people will use some library or platform or language, and at first they'll love it. Then two or three years on, all they can see are the places it falls short in the domain they're working in. I've personally experienced a disconnect when I'm still in the honeymoon phase, and the speaker has progressed to the "I-hate-this-it's-terrible-throw-it-out" stage.

I think this is just because of the classic leaky abstraction problem. At first a new abstraction seems amazing, but after using it long enough you've seen enough of its leaks to become disenchanted.

Interesting. I'll have to think about that some more.

I've been assuming it's because of human nature: when something's new and shiny, we see all the cool new things it will do for us. After being around it for long enough, we tend to only see the flaws, and forget all the benefits.

Re: Negative focus

#16
No. You're too damn positive.

"We could solve this problem if we just had some idealistic 20 somethings form a start-up about it."

"This industry sucks, but someone will have the courage to 'disrupt' it."

"When I die, I want my body frozen so I can be regenerated after the singularity."

"My start up is doing great. I'm 'crushing it.' All the time."

"I'm not overworked. I just require far less sleep than the average person. Say 2 hours a night."

Get real folks.

Re: Negative focus

#17
By telling someone else that 'X sucks', you're asserting your knowledge of X (and often Y or Z too, one of which you might recommend instead of X). Within limits, this is perfectly reasonable - there are pitfalls out there, and advising other people to avoid them is helpful.

However, there are a few big risks which arise when doing this, particularly around non-technical people:

1) The developer who cried wolf - if you have a very long list of things that you think 'suck', it may be concluded that you're just particularly picky (and, as the OP shows, it's not backed up by the reality of the many successful projects that exist). When you really need to torpedo a particularly bad idea, you might not be taken seriously.

2) Trying to persuade people by scaring them can backfire. Telling people that their project will fail unless they use the One True Project Management Methodology, or adopt some particular new library or framework might sound like a good idea, but they're quite likely to conclude that if the chance of failure is that high then it's better to avoid the risk altogether by doing nothing.

3) Undermining the credibility of other developers might give you a short-run reputation boost, but in the long-run it undermines the credibility of everyone. Instead of "that guy sucks, but you're OK", you want people to think "that guy is pretty good, but you're awesome!". To an extent, this applies in other areas ("PHP is pretty good, but Clojure is awesome!" sounds like something a happy customer might say, and we all want more happy customers).

As much as I love his writing, I think Dijkstra should take a large portion of blame for the "considered harmful"[1] style of technical criticism. His claim that anyone who ever learned BASIC is a brain-damaged individual incapable of proper programming has done a lot to undermine the credibility of intelligent, hard-working developers ever since. I, for one, would like to issue a heartfelt "fuck you" in his general direction. Again, I love his writing but I think this kind of disparagement has incredibly negative effects in the real world.

We certainly do need to eliminate errors from our practices and our ways of thinking. That's painful and does require criticism of those things. But the main problem for the software development industry right now is not that we are insufficiently critical of our tools, practices or each other, it's that we don't back each other up enough when it comes to dealing with shitty project management or exploitative practices or discrimination that holds people back in their careers. The low-hanging fruit is not yet another web framework, it's figuring out better ways of organising development.

[1] http://en.wikipedia.org/wiki/Considered_harmful

Re: Negative focus

#19
Here is a conversation that could happen building a bridge if the builders were like some developers (aka, not engineers):

- "hey, let's figure out the physics of this." -------> "No, let's build a small bridge here with these Legos. I bet they work"

- "ok, let's trace the design key points." -------> "What for? Let's just start right here, aim more or less over there, and that's it"

- "Ok, time to go rent some excavators." -------> "But why? It takes too much time. I can build an excavator here. Look. There. I just built an excavator"

- "Look, they sent us a blue excavator." -------> "No no no. Excavators must be yellow. Don't like it. Return it."

- "Ok, we need to hire extra workers." -------> "But wait, do they have experience with blue excavators? Yellow only? That's lame. Keep looking"

- "Ok, let's put some signage so people know what to do" -------> "No, let's just see where they go and we will extend the bridge there!"

... and the best one

- "Well, we need more resources to finish this project" -------> "Nah, let's just open source it and forget about it!"

sigh

Re: Negative focus

#20

Here is a conversation that could happen building a bridge if the builders were like some developers (aka, not engineers): - "hey, let's figure out the physics of this." -------> "No, let's build a small bridge here with these Legos. I bet they work" - "ok, let's trace the design key points." -------> "What for? Let's just start right here, aim more or less over there, and that's it" - "Ok, time to go rent some excav…

You've just discovered building a bridge is unlike writing software.

Maybe someone will expend the effort to reverse that, making fun of bridge engineers trying to build a smartphone app with a failure tolerant, scalable backend, or something, but I'm not a comedian. I just write software.

Post reply on HN