"When the work's done right, there's no work to be done and we move on to something new."
The work is never done right. You talk about engineers and programmers right? Well they should know that their work never ends; there's always the need to continually improve the product so that you don't "fall behind", fix the rampant bugs that occur when you add in new features, fix the bugs that were caused by you fixing the previous bugs, realize that the customers actually wanted something different, need to refactor the code properly to match the latest design fad, have to rewrite the program in a brand new language...
And all this work has to be done. Because if you don't continually upgrade your product, then your product will quickly become old-fashioned and obsolete.
So, when we say "there's no work to be done", it's a blatant lie. Either it is an excuse we make up so that we can leave something that we obviously hate doing, or it's because our employers are unwilling or unable to pay for it to be done. Lying may make you happy, but it makes me less happy. I prefer misanthropy over delusion.
Open Source software survives without needing masters with whips above or the ruin of poverty below. When there's work to be done the people who do the work know there's work to be done and they will do the work.
Either it is an excuse we make up so that we can leave something that we obviously hate doing
Don't force people to do things they hate doing in order to survive when the amount of work it requires to feed and keep everyone comfortable is a far smaller quantity.
or it's because our employers are unwilling or unable to pay for it to be done.
Don't have a system where work is only done at the whim and for the benefit of property owners.
If the work is never done, then people will keep working. They will do that because they want to work. It does not follow that we need bosses, hierarchy, management, government, property, militaries, and police forces to make us do the work just because there is work to be done.
So where did I lie?
P.S. I'm sorry for being aggressive. I am emphatic about this; I am not doing the work I want to do because I need to do the work someone with money wants me to do. Because people will toss me into the garbage disposal if I am not working for money. This article indicates that I am not alone; I am part of a majority.
When your outlook sustains, everything is good. But there is also a failure mode where you lose that motivation ("burn out") or never have it to begin with, and fall into a cycle of doing only what's required.
If that's only ever a small fraction of people at a time, then giving them food/shelter and letting them "freeload" is fine. But the worry is that by taking away any incentive to produce, that group will grow without bound and end up consuming non-neglible output from the people who do.
I'm not arguing to diminish your main point, but to strengthen it by adding nuance. The way I see it, our current system basically pushes people into burn out mode a priori, and only a lucky few escape to make money while still fully engaged. Which is why eg you visit the hospital and everyone there acts like what they're doing/saying actually makes sense, but when looking at the big picture it's obviously horribly broken. The Programmer's Stone (which I need to reread sometime) explores this phenomenon in depth while proposing a theory to explain it.
My take is that basic economics predicts that as people become more productive they should become wealthier. So their marginal utility of keeping their time goes up, their rate should go up (assuming they're worth it), and they should also start demanding to work less. But this is clearly not happening on a societal scale. IMHO because debt is the gradient version of slavery, and advances in surveillance technology have made debt such a prominent part of our society.
I accept your apology about being aggressive, especially since I may have been a bit too empathic myself (about work). The "lie" is about you saying that when work is done, people move on. I think the truth is that people say work is done so that they can move on, but work can never be done.
We do seem to agree on that point though, so I should probably retract your comment "lies". You're fine with people leaving 'projects' incomplete if they hate it...and I'm fine with that too. But work is indeed left incomplete, and that's why I made my comment.
If it makes you feel better, replace "employers" with "the open source community", and redefine pay to mean code/maintenance instead of money. I think my point still holds.
I accept your apology about being aggressive, especially since I may have been a bit too empathic myself (about work). The "lie" is about you saying that when work is done, people move on. I think the truth is that people say work is done so that they can move on, but work can never be done.
Sure, but the perfect has always been the enemy of the good. If we actually applied this advice, we'd never ship anything. At some point, things are good enough to send them off and go home.
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
"When the work's done right, there's no work to be done and we move on to something new."
The work is never done right. You talk about engineers and programmers right? Well they should know that their work never ends; there's always the need to continually improve the product so that you don't "fall behind", fix the rampant bugs that occur when you add in new features, fix the bugs that were caused by you fixing the previous bugs, realize that the customers actually wanted something different, need to refactor the code properly to match the latest design fad, have to rewrite the program in a brand new language...
And all this work has to be done. Because if you don't continually upgrade your product, then your product will quickly become old-fashioned and obsolete.
So, when we say "there's no work to be done", it's a blatant lie. Either it is an excuse we make up so that we can leave something that we obviously hate doing, or it's because our employers are unwilling or unable to pay for it to be done. Lying may make you happy, but it makes me less happy. I prefer misanthropy over delusion.
Open Source software survives without needing masters with whips above or the ruin of poverty below. When there's work to be done the people who do the work know there's work to be done and they will do the work.
Don't force people to do things they hate doing in order to survive when the amount of work it requires to feed and keep everyone comfortable is a far smaller quantity.
Don't have a system where work is only done at the whim and for the benefit of property owners.
If the work is never done, then people will keep working. They will do that because they want to work. It does not follow that we need bosses, hierarchy, management, government, property, militaries, and police forces to make us do the work just because there is work to be done.
So where did I lie?
P.S. I'm sorry for being aggressive. I am emphatic about this; I am not doing the work I want to do because I need to do the work someone with money wants me to do. Because people will toss me into the garbage disposal if I am not working for money. This article indicates that I am not alone; I am part of a majority.
When your outlook sustains, everything is good. But there is also a failure mode where you lose that motivation ("burn out") or never have it to begin with, and fall into a cycle of doing only what's required.
If that's only ever a small fraction of people at a time, then giving them food/shelter and letting them "freeload" is fine. But the worry is that by taking away any incentive to produce, that group will grow without bound and end up consuming non-neglible output from the people who do.
I'm not arguing to diminish your main point, but to strengthen it by adding nuance. The way I see it, our current system basically pushes people into burn out mode a priori, and only a lucky few escape to make money while still fully engaged. Which is why eg you visit the hospital and everyone there acts like what they're doing/saying actually makes sense, but when looking at the big picture it's obviously horribly broken. The Programmer's Stone (which I need to reread sometime) explores this phenomenon in depth while proposing a theory to explain it.
My take is that basic economics predicts that as people become more productive they should become wealthier. So their marginal utility of keeping their time goes up, their rate should go up (assuming they're worth it), and they should also start demanding to work less. But this is clearly not happening on a societal scale. IMHO because debt is the gradient version of slavery, and advances in surveillance technology have made debt such a prominent part of our society.
I accept your apology about being aggressive, especially since I may have been a bit too empathic myself (about work). The "lie" is about you saying that when work is done, people move on. I think the truth is that people say work is done so that they can move on, but work can never be done.
We do seem to agree on that point though, so I should probably retract your comment "lies". You're fine with people leaving 'projects' incomplete if they hate it...and I'm fine with that too. But work is indeed left incomplete, and that's why I made my comment.
If it makes you feel better, replace "employers" with "the open source community", and redefine pay to mean code/maintenance instead of money. I think my point still holds.
Sure, but the perfect has always been the enemy of the good. If we actually applied this advice, we'd never ship anything. At some point, things are good enough to send them off and go home.
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?