Live data from Hacker News

Software development is a loser’s game

thehosk.medium.com

31–40 of 159 posts

Re: Software development is a loser’s game

#31
Big fan of Tom Gamon's Programming is a Losers Game (Sept 2020)[1]. Tom's short post was a very welcome introduction to the matter for me, very open ended, & Ben Hosking here elaborates much more clearly specific concerns & outlooks.

[1] https://tomgamon.com/posts/a-losers-game/

Both Ben in this "Software" and Tom Gamon in "Programming" anchor their arguments to Charles Ellis, & his example of tennis as a game where the talented score points, and amateurs inflict self harm.

Both of these articles espouse a similar, conservative minded viewpoint that maintaining & supporting is a more key or perhaps just more-absent activity than progressing. They warn that devotion to progressing/going out and winning often brings about doom & trouble. They speak to us of the hazards about, that the paths available to the software's future becomes confined or the ground unsteady if we don't take our software environment seriously.

I'm both very sympathetic to this software-conservatism , because (a) legacy systems/the past rule so much of the software world, and (b) we certainly do make confounded mistakes a lot, but also deeply worried about what it's done to our moral character. Software isn't eating the world anymore: it's past that now, that's past tense. Software has eaten the world. At almost everyone company you go to your world will almost entirely be already consumed by mounds of existing software, upon which the company is most often busy accreting new layers of software that will shortly settle into place & likewise become buried. It's a frank truth that minding your environment, trying to insure some safety & quality to the layers is critical, the belief that we should/ought/must build solid baseis extremely valuable here. But I somewhat fret programmers have been tamed into minding our own loser-dom, am concerned that we stop looking up to the stars, when we stop being brazenly brave. We have immense immense powers, and from so many camps- within the programmerhood & external- I see a reaction of panic, & fear, & distrust to potential. Which is both warranted, but also really quite besides the point, is too often too strong a diminishing force for great potentials programmers have such keen great sense for.

I feel there is an over-regulation, an over-pressuing on our social systems these days. "Overnight Pizza and the Consistent Unreliability of Expert Guidelines"[2][3] is recent article ostensibly about Expert Opinions & the low-information-density environments such guidelines are crafted in & for, but it's also an incredible story about social pressure, the urge to be right, about the emotional high one gets from being certainly completely correct & proper & everyone else being a fool. It's about overly absolutist perspectives, that don't allow for a bigger continuum of opinions. And I think a lot of software folk have turned in to the "overnight pizza will kill you" camp: they have encountered some parts of the maelstrom, tasted what the uncivilized is like, and their reaction is to build & fortify against the encroaching dark, to turtle up, & build strong best practices & robust processes. Which is both noble, respectable, given the maelstrom of software, but also... I feel like our lack of adventurous spirit often holds us to petty tasks, and keeps us from exploring & seeking better lands, with much richer yields.

[2] https://residentcontrarian.substack.com/p/overnight-pizza-an...

[3] https://news.ycombinator.com/item?id=26635856

Programmers, the New Kingmakers[4], are also in an enormous tension. Business's often proclaim that they want go-getter attitude, that they folks focused on landing wins, making sure their every effort helps the customer. But often programmers are very very alone in seeing a bigger picture, seeing long term costs, seeing how the business is creating amateur grade software that will not hold up. Programmers can feel under strain to deliver, and conservatism naturally results, a concern that things will fall apart, that core formative activities won't have time to occur or mature, that the result will be disorder. Few companies internalize & earnestly grapple with an understanding of how the sausage is made, programmers often view other people as viewing them as resources, to be used, tapped, often without awareness or responsible handling, without understanding that the magic has a price, that it's stacking up. Those closest to the craft have a deeper insight into how the business's "win orientation" is creating (& compounding) amateur losses, and they feel enormous protectivity: that they must claw from the business the good acts it cannot see and that it needs.

[4] https://thenewkingmakers.com/

But that's not the worst part of the business environment to me. The worst to me is writ large in "Why software engineers should be CEOs"[5]. We are incredibly creative, we see enormous potential at every step. Only rarely does the business let us drive towards the true fantastic excellences that we dream of pursuing. Just as the business doesn't understand the loser's game challenges that are all over the place, oh, sad, the business also does not have anywhere near the vision or creativity of the individual, of the coder, who sees possibility & value oozing out of so many areas, often so untapped. And programmers are not put into decision making roles nearly enough, not given structure & the attitude that they can strike, that they can chase down big game, game the rest of the company often has a hard time seeing. The socialization processes that work places must go through to allow commitment are very high, and so programmers simply do not have the time, ability, or often even the common language to get the businesses play the winning game. We must trust that the business somehow is aligned to let us make them kings, rather than taking an active stake in pushing the business towards their would be kingdomship.

[5] https://www.tlt21.com/why-software-engineers-should-become-c...

Beware committing your life to mastering the losers game!! You are the dreamer of dreams. It hurts, it's always a challenge, but please, dear fellow programmer, stay in touch with your noble (& a little bit wilder) selves. I believe in you.

Re: Software development is a loser’s game

#32
The ”game” of software development is rather ”won” by understanding the surrounding business and delivering on those goals rather than any, by software developers made up, “goals” about “standards”, “unit testing” or “SOLID design patterns”.

The game is also about good co-operation, helping colleagues succeed without imposing dogmatic requirements, and making friends with influential people connected to the software development team.

This is rather an article about loosing the “game”.

Re: Software development is a loser’s game

#33

An ask of anyone reading this article: Please don’t let yourself become a smug or cynical programmer. Too many programmers read articles like this and assume that they are the 20% of good programmers while everyone who disagrees with them is the 80% of amateur developers: > I have worked in software development for 20 years, worked on many projects with many software developers. I estimate 80 percent of software deve…

Yeah, I think it’s dangerous to try and say that there are 2 groups of people here. Instead, just say we are all amateurs and there’s no reason to take off the training wheels.

Re: Software development is a loser’s game

#34
post #22

One of the problems I faced is that the university didn't teach TDD, I couldn't find any books about TDD and every single programming course didn't even have a section about TDD. It's like this was some kind of secret knowledge that only few had. I was only able to learn TDD when I joined one corporation and it was like a new world to me. I tried to learn as much as I could and then carry that to next jobs. It's bett…

On the flip side, as a dev with 10 years exp, I think TDD is a process crutch designed to cover up poor engineering by adding additional time spent to all work.

Also the automated security scans. All new frameworks cover the cases. Real box ticking exercise.

Though I am a TDD fan I understand your point.

Re: Software development is a loser’s game

#35
post #22

One of the problems I faced is that the university didn't teach TDD, I couldn't find any books about TDD and every single programming course didn't even have a section about TDD. It's like this was some kind of secret knowledge that only few had. I was only able to learn TDD when I joined one corporation and it was like a new world to me. I tried to learn as much as I could and then carry that to next jobs. It's bett…

On the flip side, as a dev with 10 years exp, I think TDD is a process crutch designed to cover up poor engineering by adding additional time spent to all work.

There are people going for 100% coverage and pedantic unit testing so that it only works with that particular implementation they wrote and then when you want to change something, you'll have a pile of tests to change that don't add any value. Something like this we try to get rid of.

Re: Software development is a loser’s game

#36
post #11

Because long-term maintenance isn't the concern. Most devs switch jobs in 2-5 years (or at least that's the common advice given). So the incentive is to play musical chairs, and hope that you've moved on by the time the music stops. Software has also been such a new field that it was the startup that moved fast and broke things that got the prize rather than the slow but stable company. I think this is changing (lowe…

Also there can be other real life business constraints. Sometimes the project need more devs but there aren't any to add. Sometimes the deadline is truly set in stone and if you miss it you are truly fucked. In times like these you have to cut corners and these are the easiest corners to cut for short term speed.

"Amaterur vs professional" feels "Good vs Bad" for me but real life is never as simple as that.

Re: Software development is a loser’s game

#37
post #12

That article taught me more more about tennis than about software development.

I wonder how it applies to most sports. I think the amateur strategy of "don't make as many mistakes" applies to professional team sports too.

I can think of a lot of successful professional teams who for the most part simply outlast their opponent by not making mistakes and capitalizing on their opponents mistakes.

American football for sure often has games turn on a handful of plays.

Re: Software development is a loser’s game

#38

One of the problems I faced is that the university didn't teach TDD, I couldn't find any books about TDD and every single programming course didn't even have a section about TDD. It's like this was some kind of secret knowledge that only few had. I was only able to learn TDD when I joined one corporation and it was like a new world to me. I tried to learn as much as I could and then carry that to next jobs. It's bett…

I guess it depends on what time period you’re talking about. There’s a million books on TDD and there have been for decades now. They’re commonly recommended on HN and easily found via google.

Re: Software development is a loser’s game

#39

An ask of anyone reading this article: Please don’t let yourself become a smug or cynical programmer. Too many programmers read articles like this and assume that they are the 20% of good programmers while everyone who disagrees with them is the 80% of amateur developers: > I have worked in software development for 20 years, worked on many projects with many software developers. I estimate 80 percent of software deve…

These articles are intentionally written to satisfy that "I'm a better programmer" itch. Everyone imagines themselves to be the better programmer, and will always have a laundry list of reasons why they're just "better". And people will post it on twitter and LinkedIn, etc, under the rather pathetic guise that it will demonstrate they they are the professional.

It's a cheap, tiring tactic.

Re: Software development is a loser’s game

#40

Software developers are just responding to incentives. Managers/Product owners want features and aren't too bothered with defects, as the idea of bugs is so normal now. Do they care about defects? Yes, but only if the cost to fix them doesn't change the deadline.

Nobody cares about a bug unless it's highly visible or dooms the product, and would rather you just cram feature after feature in. Nobody's ever been promoted for great work maintaining the old version, or for reducing our bug count by 50%. The result is a product that you cannot be proud of, because it's literally the worst thing that the customer will still buy.
Post reply on HN