How is that mindset lazy? Unhappy customers also have a cost!
At my last job the customer just always bought hardware specifically for the software as a matter of process, partly because the price of the hardware compared to the price of the software was negligible. You literally couldn’t make a customer care.
In industrial software, I’m sure performance is a pretty stark line between “good enough” and “costing us money”.
The pattern I’ve seen in customer facing software is a software backend will depend on some external service (e.g. postgres), then blame any slowness (and even stability issues…) on that other service. Each time I’ve been able to dig into a case like this, the developer has been lazy, not understanding how the external service works, or how to use it efficiently. For example, a coworker told me our postgres system was overloaded, because his select queries were taking too long, and he had already created indexes. When I examined his query, it wasn’t able to use any of the indexes he created, and it was querying without appropriate statistics, so it always did a full table scan. All but 2 of the indexes he made were unused, so I deleted those, then added a suitable extended statistics object, and an index his query could use. That made the query run thousands of times faster, sped up writes, and saved disk space.
Most of the optimization I see is in algorithms, and most of the slowness I see is fundamentally misunderstanding what a program does and/or how a computer works.
Slowness makes customers unhappy too, but with no solid line between “I have what I want” and “this product is inadequate”.
Are you really asking how it’s lazy to pass unoptimized code to a customer and make their hardware do all the work for you because optimization was too costly?? Like I get that you are in an Enterprise space, but this mentality is very prevalent and is why computers from today don’t feel that much faster software wise than they did 10 years ago. The faster hardware gets, the lazier devs can be because why optimize when they’ve got all those cycles and RAM available?
And this isn’t a different at you, that’s software development in general, and I don’t see it getting any better.
It’s not just software development, it’s everywhere.
Devices are cheap, people are expensive. So it’s not lazy, he’s being asked to put his expensive time into efforts the customer actually wants to pay for.
If having him optimize the code further costs way more than buying a better computer, it doesn’t make sense economically for him to waste his time on that.
Is that yet another example of how the economy has strange incentives? For sure, but that doesn’t make him lazy.
I never called them lazy, I stated that the mentality is lazy, which it is. Whether or not that laziness is profit driven, it still comes down to not wanting to put forth the effort to make a product that runs better.
Systemic laziness as profit generation is still laziness. We’re just excusing it with cost and shit, and if everyone is lazy, then no one is.
If cost is a justification for this kind of laziness, it also justifies slop code development. After all, it’s cheaper that way, right?
Wouldn’t he only be lazy if he’s not doing anything else more productive instead?
He gets payed to do a specific job, and does it the best way possible given the constraints. I don’t see how you find lazyness in that.
The customer simply isn’t willing to pay the extra time for it to be optimized, and he ain’t doing it for free.
I don’t know which job you do, but do you spend a lot of voluntary overtime just to do things the customer isn’t even asking or paying for just because you think it’s better?
Wouldn’t he only be lazy if he’s not doing anything else more productive instead?
Of course not. It’s rather easy to see how one can choose to be lazy and not do hard work while being “productive” doing easier tasks. But this isn’t about the dev, it’s about the culture.
He gets payed to do a specific job,
Again, stop thinking I’m calling the dev lazy, you’re completely missing my point.
and does it the best way possible given the constraints. I don’t see how you find lazyness in that.
This is the laziness. The constraints imposed by management to get new features out the door at the expense of making their existing features work better is a hallmark of the current development era.
I’m not even going to respond to the last bit because it’s entirely irrelevant to (and completely misunderstands) the point I’m making.
Can you then give me your definition of “lazyness”
The dictionary just gives me “the quality of being unwilling to work or use energy; idleness.”
And i don’t see it anywhere in this situation. They’re asked to do a job a certain way (or for management, to make sure it happens in a certain way), and they do that to the best of their ability.
Could they do it better from an performance/software engineering standpoint if they had infinite time/budget? for sure. But that’s not the world we live in.
How is that mindset lazy? Unhappy customers also have a cost! At my last job the customer just always bought hardware specifically for the software as a matter of process, partly because the price of the hardware compared to the price of the software was negligible. You literally couldn’t make a customer care.
In industrial software, I’m sure performance is a pretty stark line between “good enough” and “costing us money”.
The pattern I’ve seen in customer facing software is a software backend will depend on some external service (e.g. postgres), then blame any slowness (and even stability issues…) on that other service. Each time I’ve been able to dig into a case like this, the developer has been lazy, not understanding how the external service works, or how to use it efficiently. For example, a coworker told me our postgres system was overloaded, because his select queries were taking too long, and he had already created indexes. When I examined his query, it wasn’t able to use any of the indexes he created, and it was querying without appropriate statistics, so it always did a full table scan. All but 2 of the indexes he made were unused, so I deleted those, then added a suitable extended statistics object, and an index his query could use. That made the query run thousands of times faster, sped up writes, and saved disk space.
Most of the optimization I see is in algorithms, and most of the slowness I see is fundamentally misunderstanding what a program does and/or how a computer works.
Slowness makes customers unhappy too, but with no solid line between “I have what I want” and “this product is inadequate”.
Are you really asking how it’s lazy to pass unoptimized code to a customer and make their hardware do all the work for you because optimization was too costly?? Like I get that you are in an Enterprise space, but this mentality is very prevalent and is why computers from today don’t feel that much faster software wise than they did 10 years ago. The faster hardware gets, the lazier devs can be because why optimize when they’ve got all those cycles and RAM available?
And this isn’t a different at you, that’s software development in general, and I don’t see it getting any better.
It’s not just software development, it’s everywhere. Devices are cheap, people are expensive. So it’s not lazy, he’s being asked to put his expensive time into efforts the customer actually wants to pay for. If having him optimize the code further costs way more than buying a better computer, it doesn’t make sense economically for him to waste his time on that.
Is that yet another example of how the economy has strange incentives? For sure, but that doesn’t make him lazy.
I never called them lazy, I stated that the mentality is lazy, which it is. Whether or not that laziness is profit driven, it still comes down to not wanting to put forth the effort to make a product that runs better.
Systemic laziness as profit generation is still laziness. We’re just excusing it with cost and shit, and if everyone is lazy, then no one is.
If cost is a justification for this kind of laziness, it also justifies slop code development. After all, it’s cheaper that way, right?
Wouldn’t he only be lazy if he’s not doing anything else more productive instead?
He gets payed to do a specific job, and does it the best way possible given the constraints. I don’t see how you find lazyness in that.
The customer simply isn’t willing to pay the extra time for it to be optimized, and he ain’t doing it for free.
I don’t know which job you do, but do you spend a lot of voluntary overtime just to do things the customer isn’t even asking or paying for just because you think it’s better?
Of course not. It’s rather easy to see how one can choose to be lazy and not do hard work while being “productive” doing easier tasks. But this isn’t about the dev, it’s about the culture.
Again, stop thinking I’m calling the dev lazy, you’re completely missing my point.
This is the laziness. The constraints imposed by management to get new features out the door at the expense of making their existing features work better is a hallmark of the current development era.
I’m not even going to respond to the last bit because it’s entirely irrelevant to (and completely misunderstands) the point I’m making.
Can you then give me your definition of “lazyness” The dictionary just gives me “the quality of being unwilling to work or use energy; idleness.”
And i don’t see it anywhere in this situation. They’re asked to do a job a certain way (or for management, to make sure it happens in a certain way), and they do that to the best of their ability.
Could they do it better from an performance/software engineering standpoint if they had infinite time/budget? for sure. But that’s not the world we live in.