Live data from Hacker News

Imaginary problems are the root of bad software

cerebralab.com

351–360 of 511 posts

Re: Imaginary problems are the root of bad software

#351

If anything it's the incentive system in software industry, which is at fault. 1. No designer is given promotion for sticking to conventional designs. It's their creative & clever designs that get them attention and career incentives. 2. No engineer is paid extra for keeping the codebase without growing too much. It's re-writes and the effort he puts in to churn out more solutions (than there are problems) that offer…

I've been working in consultancy for most of my career and have been in so many projects by now that seemed to be bullshit rewrites in $tech of the month; at least two projects where microservices were pushed through. The last one I was in was funny because while they had a small army of consultants and self-employed engineers vying for influence and carving out their own slice of the pie, the existing team of running, working, earning .NET software was just going about their day.

It was quite telling that after 1.5 years of that project, where all staff had already been replaced once, all they had to show for was a fancy product name and a presentation. And that the manager that led the project for ~2 years left right before or right when it went live - and he did that in a previous project too, where a working .NET backend for ecommerce was replaced with a Scala microservices on AWS system.

I did hear about the latter; I heard they went back to .NET, but the Scala services are still up and running and a maintenance nightmare.

But the lead developer got to play with his favorite tool and landed a job at lightbend because of it. Career-driven development, and I don't even believe he did it for his own career, but for self-gratification. Ecommerce is boring; REST APIs and a front-end are boring. But Scala, distributed systems, AWS, that's all cool and new.

I'm so tired.

Re: Imaginary problems are the root of bad software

#352
post #3

The author hits the nail on the head with his claim that imaginary problems are more fun than real ones. As developers and smart folks in general, we like complicated problems that are big and far away. How many times have I heard in a meeting, "Yeah, but when we have 1M users..." It's great fun to think your product will get to 1M users. It's also very unlikely. It's not nearly as fun to finish and ship and market a…

I think this is an attitude shift that a lot of developers need to get over. They like writing code, they like working with computers, and they pick that to do as their day job.

But their day job actually isn't writing code, it's solving a problem for an end-user; the programming language is just a tool.

Rethink your job from a coder to a problem solver and you should be able to get over the compulsion to overcomplicate things for your own gratification.

Re: Imaginary problems are the root of bad software

#353
post #18
post #3

The author hits the nail on the head with his claim that imaginary problems are more fun than real ones. As developers and smart folks in general, we like complicated problems that are big and far away. How many times have I heard in a meeting, "Yeah, but when we have 1M users..." It's great fun to think your product will get to 1M users. It's also very unlikely. It's not nearly as fun to finish and ship and market a…

And people underestimate how well some solid, dumb solutions can scale. Boring spring boot with a decent data model and a bit effort to stay stateless scales to the moon. Or, we're having a grand "data export" system customers use to collect data from us for their own DWHs. It has survived 2 attempts at replacement so far. At it's core, it's psql + rsync, or was recently migrated to psql + s3 when we decomissioned ou…

> And people underestimate how well some solid, dumb solutions can scale.

And overestimate how expensive it is to just add another server, or underestimate how expensive a rebuild is. But then, part of that is also that IT departments want the budget; if they don't spend their annual budgets on innovation, their budget gets cut.

Or in my neck of the woods, the EU subsidies will stop if they don't have anything they can file as "innovation".

Re: Imaginary problems are the root of bad software

#354
post #246

Earlier quoted context omitted.

> Will the setting icon be three dots? Multiple hamburger menus with a scattering of cryptic icons stuck at arbitrary places on the screen. What does the swirly icon with up arrow do? No text label for you! Oh and let's move the next button to the top left of the screen and not highlight it. Mmmm that's some good UI design.

Might be a coincidence, but that's a weirdly accurate description of MS Teams.

[deleted]

Re: Imaginary problems are the root of bad software

#355
If the company structure is too complex or too big and your actual impact is either hard to measure or is held back by the system or by colleagues, you have to find a way to stay sane and find a tangential meaning in work. Funnily enough, this doesn't mean it is wasteful. It could turn out that it makes you put more energy in honing your skills, or perhaps you find a way to contribute to open source within your job. Neither are bad things. So I don't completely share the pessimistic outlook of the article.

Re: Imaginary problems are the root of bad software

#356
post #143

Earlier quoted context omitted.

So I think the interesting question is whether the rest of us can learn anything from what happened there. I believe Mark Zuckerberg simply used the technology he knew and took it from there. That's fine. I probably would have done the same thing. But many people are making an ideology out of this, arguing that not giving a shit about performance is always the right choice initially because that's how you grow fast e…

Learn what? That you should use the language that you’re more comfortable with and then scale? Or that languages have become more efficient? Php 8, for example, is many times faster than the php 4 and 5 that Facebook was using.

In part the reason that PHP8 (and it was 7 that had the quantum leap in perf) are now so fast is precisely because of Hack - it was easy to accept the status quo on performance until Hack showed there really was a lot of performance left on the table.

For me the biggest win was the changes they made to how arrays are stored in memory, I saw some systems drop by half in memory usage and had to change basically nothing - those kinds of wins are rare.

Re: Imaginary problems are the root of bad software

#357
post #3

The author hits the nail on the head with his claim that imaginary problems are more fun than real ones. As developers and smart folks in general, we like complicated problems that are big and far away. How many times have I heard in a meeting, "Yeah, but when we have 1M users..." It's great fun to think your product will get to 1M users. It's also very unlikely. It's not nearly as fun to finish and ship and market a…

> The author hits the nail on the head with his claim that imaginary problems are more fun than real ones. Not necessarily. It's just that most developers have never worked in a setting where they got to work on problems properly. Solving real problems for real people is very addictive. There is a reason some people like working for startups. It's because you live very close to your users and when you make them happy…

> (University) Education sublely teaches us that the only important problems are those that are very difficult and preferably have never been solved before. Those same problems also make for better blogposts. In the real world the incentives are mostly opposite. Problems with no known solutions (or only really difficult solutions) are generally bad.

This is a great insight. One can add value to other people's lives by applying known solutions in relatively novel contexts (e.g. building a CRUD form at XYZ employer), whereas it's very hard to add value to other people's lives by trying to develop entirely novel solutions (because the probability of success is so low). Most of our training however, focuses on the methodology used to develop these novel solutions, rather than on the application of the solutions themselves.

Re: Imaginary problems are the root of bad software

#358
post #300

Earlier quoted context omitted.

Also: CTRL+A selects all CTRL+Shift+End selects all from where you are to the end CTRL+Shift+Home selects all from where you are to the top One of the (many) problems of web UIs is they often ignore the keyboard completely.

>CTRL+Shift+End selects all from where you are to the end >CTRL+Shift+Home selects all from where you are to the top Those two don't need CTRL, just so you know. >One of the (many) problems of web UIs is they often ignore the keyboard completely. They are also starting to ignore the mouse.

> Those two don't need CTRL, just so you know

Well, yes they do, only it's different with and without CTRL. For example in a text editor (or a normal webpage without any fancy JS):

- Shift+End goes to the end of the line

- CTRL+Shift+End goes to the end of the document

and the same is true for Home (substitute "end" with "beginning").

I have seen people, even "technical" people, select a text with the mouse from the middle of a large Word document to the end, because they didn't know this.

They also had to do it often (several times a day) and it had become a significant part of their workload...

Re: Imaginary problems are the root of bad software

#359
Rollbacks of an integrated financial system, live and mid-collapse, built with a shockingly complex set of integrations and features on top of a series of underprovisioned distributed databases and queues, probably aren't as simple as the author believes.

Yes, they should have planned to be able to roll back, but it wouldn't have been simple. It would have been very difficult, and if they were fastidious enough to plan for a rollback they presumably would have done the development and migration in stages and performed parallel testing on the old and new systems, which would have removed the need for the rollback in the first place.

Re: Imaginary problems are the root of bad software

#360
post #152

Earlier quoted context omitted.

Now you have a whole bunch of New SQL databases that will scale past whatever number of users you can imagine. So your good old Django or Rails app can scale to 1M or 10M users without you doing anything exotic. That's not "fun" though.

I wonder if you've ever seen this classic video mocking such marketing claims which is called "MongoDB is Web Scale": https://youtu.be/b2F-DItXtZs

Have you ever seen Spanner? things don't stay static. And yes I have seen those vidoes since I've being doing web dev since 1999.
Post reply on HN