Just because you've only worked with engineers at startups making shitty products or bloated companies doesn't mean there aren't people doing work right.
there's always the need to continually improve the product so that you don't "fall behind",
That's not real. There are downright ancient products that work better than current stuff because they don't suffer from this curse. That's a business concern, not a problem that engineers need to solve, and when engineers are solving that problem they're wasting their time (and everyone else's).
fix the rampant bugs that occur when you add in new features,
This is part of the problem: at some point if you've done your job, you don't have to add more features and you can actually finish the product.
Look at the chat client market: chat of this kind has been a solved problem for at least a decade, but people have to work on something so they decide to reinvent chat. HipChat did it, now they're losing market to Slack because they keep making pointless changes that don't improve HipChat which makes it harder to use. And Slack is basically just a shiny reimplementation of an IRC client: there are still IRC clients that have been doing more than what Slack does for years. In another decade we won't be using Slack, we'll be using some other shitty chat client, and the 90s IRC clients will still work just fine.
Again, this is business for the sake of money, not for the sake of actually improving anything, and it's a waste of everyone's time.
realize that the customers actually wanted something different
There's certainly lots of iteration needed to solve a problem, but that doesn't mean it's unsolvable. If you've never actually experienced a problem solved, it's not because it's not something that's possible, it's because you've been working on making money rather than solving the problem, and only making progress on the problem tangentially.
need to refactor the code properly to match the latest design fad
That's just stupid. Not only does it not solve problems, it usually isn't even good for business.
have to rewrite the program in a brand new language...
This is rarely necessary and if it is, the job wasn't done right the first time.
So, when we say "there's no work to be done", it's a blatant lie.
I get that you disagree, but you should really learn the meaning of the world "lie". And also the meaning of the word "misstatement".
Honestly, I do agree that reinventing the wheel is rather meaningless and silly. But the problem is that other programmers and engineers don't. And I'm pretty sure there are some open-source Slack clones out there, so money isn't a motivation. People just want to work on reinventing the wheel. Hence, work that has to be done. I'm not going to dismiss people's hard work just because I find personally it worthless.
And no, I don't see problems ever being solved, simply because they just expand. I've worked on a couple of free open source projects, showed them off to people, and have got feedback from users of "Hey, it would be cool if [insert-feature-here]". And if I implement that feature, "Ah, thanks...oh, and add this feature too." More and more 'suggestions' pile up, which means more work.
Just because you've only worked with engineers at startups making shitty products or bloated companies doesn't mean there aren't people doing work right.
You make assumptions about me that you probably shouldn't.
I think you are both right in different ways. For an engineer, the problem can always be solved in new and more efficient ways, as long as new techniques appear. But from a product design standpoint, the optimum is hit when the solution for all cases is automated into defaults and a minimum of configuration, and that leads to characteristically different products emerging to solve problems that are subsets of the old ones, rather than feature requests piling up forever.
After all, the point of the "application" is to enable a goal to be reached. We can engineer better pens, but that doesn't improve the quality of our writing; but a new tool like a typewriter or word processor does improve it by being more specific to the problem. Following the revolutionary improvement a logarithmic function takes hold; the newest Word only does a little more for most use cases than WordPerfect 5. So the next big leap would not be another word processor, but something that can automate away typing, like an AI-writer, or a cost lowering of other media that requires no typing, like voice and video capture.
For an engineer, the problem can always be solved in new and more efficient ways, as long as new techniques appear. But from a product design standpoint, the optimum is hit when the solution for all cases is automated into defaults and a minimum of configuration, and that leads to characteristically different products emerging to solve problems that are subsets of the old ones, rather than feature requests piling up forever.
I agree with this, but it's not really the point I'm making. I'm saying that the problem you're trying to solve matters. Most often people reinvent the wheel because they aren't trying to solve the problem wheels solve: they're just trying to make money, and if you're reinventing the wheel to make money you're no better than a cheap scammer. Your intentions might be better, because people think capitalism works, and that money means you must be solving a real problem, but that makes little difference to the people whose money you're taking while providing them no value.
I'm not going to dismiss people's hard work just because I find personally it worthless.
I'm not sure that sentence makes any sense: if you find it worthless, that's a dismissal.
That said, the value might be value to them: understanding existing solutions to problems helps inform you for solving novel problems. Their product is worthless, but the experience they gained making it isn't.
And no, I don't see problems ever being solved, simply because they just expand. I've worked on a couple of free open source projects, showed them off to people, and have got feedback from users of "Hey, it would be cool if [insert-feature-here]". And if I implement that feature, "Ah, thanks...oh, and add this feature too." More and more 'suggestions' pile up, which means more work.
Just because someone suggests something doesn't mean you have to or should do it. This is exactly what I'm talking about with making pointless changes: a lot of the changes people will suggest are pointless.
You make assumptions about me that you probably shouldn't.
Okay, perhaps you'd rather I said: "I see no indication in what you're saying that you have ever worked with people creating a useful product." Is that any different?
Comments
Just because you've only worked with engineers at startups making shitty products or bloated companies doesn't mean there aren't people doing work right.
That's not real. There are downright ancient products that work better than current stuff because they don't suffer from this curse. That's a business concern, not a problem that engineers need to solve, and when engineers are solving that problem they're wasting their time (and everyone else's).
This is part of the problem: at some point if you've done your job, you don't have to add more features and you can actually finish the product.
Look at the chat client market: chat of this kind has been a solved problem for at least a decade, but people have to work on something so they decide to reinvent chat. HipChat did it, now they're losing market to Slack because they keep making pointless changes that don't improve HipChat which makes it harder to use. And Slack is basically just a shiny reimplementation of an IRC client: there are still IRC clients that have been doing more than what Slack does for years. In another decade we won't be using Slack, we'll be using some other shitty chat client, and the 90s IRC clients will still work just fine.
Again, this is business for the sake of money, not for the sake of actually improving anything, and it's a waste of everyone's time.
There's certainly lots of iteration needed to solve a problem, but that doesn't mean it's unsolvable. If you've never actually experienced a problem solved, it's not because it's not something that's possible, it's because you've been working on making money rather than solving the problem, and only making progress on the problem tangentially.
That's just stupid. Not only does it not solve problems, it usually isn't even good for business.
This is rarely necessary and if it is, the job wasn't done right the first time.
I get that you disagree, but you should really learn the meaning of the world "lie". And also the meaning of the word "misstatement".
Honestly, I do agree that reinventing the wheel is rather meaningless and silly. But the problem is that other programmers and engineers don't. And I'm pretty sure there are some open-source Slack clones out there, so money isn't a motivation. People just want to work on reinventing the wheel. Hence, work that has to be done. I'm not going to dismiss people's hard work just because I find personally it worthless.
And no, I don't see problems ever being solved, simply because they just expand. I've worked on a couple of free open source projects, showed them off to people, and have got feedback from users of "Hey, it would be cool if [insert-feature-here]". And if I implement that feature, "Ah, thanks...oh, and add this feature too." More and more 'suggestions' pile up, which means more work.
You make assumptions about me that you probably shouldn't.
I think you are both right in different ways. For an engineer, the problem can always be solved in new and more efficient ways, as long as new techniques appear. But from a product design standpoint, the optimum is hit when the solution for all cases is automated into defaults and a minimum of configuration, and that leads to characteristically different products emerging to solve problems that are subsets of the old ones, rather than feature requests piling up forever.
After all, the point of the "application" is to enable a goal to be reached. We can engineer better pens, but that doesn't improve the quality of our writing; but a new tool like a typewriter or word processor does improve it by being more specific to the problem. Following the revolutionary improvement a logarithmic function takes hold; the newest Word only does a little more for most use cases than WordPerfect 5. So the next big leap would not be another word processor, but something that can automate away typing, like an AI-writer, or a cost lowering of other media that requires no typing, like voice and video capture.
I agree with this, but it's not really the point I'm making. I'm saying that the problem you're trying to solve matters. Most often people reinvent the wheel because they aren't trying to solve the problem wheels solve: they're just trying to make money, and if you're reinventing the wheel to make money you're no better than a cheap scammer. Your intentions might be better, because people think capitalism works, and that money means you must be solving a real problem, but that makes little difference to the people whose money you're taking while providing them no value.
I'm not sure that sentence makes any sense: if you find it worthless, that's a dismissal.
That said, the value might be value to them: understanding existing solutions to problems helps inform you for solving novel problems. Their product is worthless, but the experience they gained making it isn't.
Just because someone suggests something doesn't mean you have to or should do it. This is exactly what I'm talking about with making pointless changes: a lot of the changes people will suggest are pointless.
Okay, perhaps you'd rather I said: "I see no indication in what you're saying that you have ever worked with people creating a useful product." Is that any different?