> As you say, worthwhile software is usually novel.
This is an interesting assumption. I’d argue that the overwhelming majority of software is the most boring LoB CRUD apps you can imagine, and not novel at all. Yet, people need to estimate the tasks on these projects as well.
And starting in the late 1970s, there were tools available to simplify building LoB CRUD apps. [1] That has continued with things like Rails and Salesforce and no-code tooling.
If something is truly boring in software, it gets turned into a library or a tool for non-programmers to use. Our value is always driven by the novelty of the need.
And no, people don't need to estimate the tasks. My dad did LoB apps in the 1970s to the 1990s. E.g., order entry and shop floor management systems for office furniture factories. His approach was to get something basic working, see how it worked for the users, and then iteratively improve things until they'd created enough business advantage and/or cost savings to move on. Exploratory, iterative work like that can at best be done with broad ballpark estimates.
I grant that people want estimates. But that is usually about managerial fear of waste and/or need for control. But I think there are better ways to solve those problems.
All of that is besides the point. People need to estimate their tasks if their managers want them to, and no amount of philosophical navel-gazing will change that.
I want to be clear that I am being entirely practical here. This is not navel-gazing. I am describing something that works. That has worked for me and others for decades.
And yes, if you are in an environment where people with power want things, you have to take that into account.
But no, we don't have to just blindly do what people with power ask. The difference between being a professional an a minion is that professionals know much more about the work and how to do it than the people paying them. Personally, I think we are professionals, which gives us a variety of responsibilities not just to the person with the money, but to the profession and society at large.
Does that mean I never have given estimates? Not at all. But it does mean that if somebody asks me to do things in a way I think suboptimal, I'm at least going to say, "Hey, there's a better way to satisfy your goals here." And then I'm going to help them learn enough about the better way that they're at least willing to try it.
Because "the manager says so" or because "estimates actually add some value"?
I think it's important that our "work culture" allows us to critique why we do certain tasks. When push comes to shove, I guess a manager can say: "Because I say so!", but I also hope those kind of managers are few and far between.
Both, kind of. The demand to have at least a rough estimate when something will be available is justified IMHO—other departments obviously need to maintain their own timelines and schedule work that depends on output from engineering.
Also, I wholeheartedly agree that we do need to question the work culture we follow and the measures we make, and that managers with control issues shouldn't dictate them.
On the other hand, the point I was getting to is that a critique of estimation that amounts to "the work I do is so bespoke and unique and novel and important that I can't be bothered to estimate how long it'll take", is just… ignorant. Most software engineers are not lone wolf 10X wizards without any accountability, have managers and other departments to report to, and thus are not eligible to make that point.
> the work I do is so bespoke and unique and novel and important that I can't be bothered to estimate how long it'll take
This absolutely can be the case some of the time though. I've never pressed back on estimates of standard work but it can be a real bastard to have to work within the "process" when you are slaying a truly novel beast. Having some jackass pestering you for updates on how long it takes to climb the beanstalk and find the golden harp is just too much.
This is a gross and misleading caricature of what I'm saying. I prefer this approach precisely because it increases accountability. If you'd like to learn what I'm actually suggesting, I'm happy to answer questions. Or you can read many of the things that have been written by other people on the topic.
Sure you can move the goalposts here, but OP clearly meant to say software tasks cannot be estimated because people only work on novel problems, since everything else is "not worth doing" (what a massively privileged thing to say by the way).
Just because something hasn't been done the exact same way you're doing, that doesn't mean you can't apply a generic solution. I have never changed a tyre on an SUV before, yet I do know how to do so based on my previous experience with a sedan. The same applies to a car mechanic; even if I bring a brand new car to the workshop they have never seen before, I can and should expect them to be able to (at least roughly) estimate how long a tyre change is going to take.
That's a double-edged sword, though. Those tax dollars don't just pay for the license, but for ongoing development, responsibility for security issues, support contracts, emergency personnel, and so on. With a purely Open Source strategy, you'll have to pay multiple external consultants to take care of part of this, and/or cover these roles in-house. And suddenly, you've taken up a lot of tasks completely foreign to your business domain, such as new infrastructure and its maintenance, documentation requirements, software development, and so on. And we haven't even talked about the massive effort of educating your entire workforce on new tools and workflows.
Assuming you just replace a proprietary software ecosystem with an Open Source one and immediately get the same thing for free is a very naive view that will get you in trouble.
Having said that, as a German, I am very happy this switch happens and seems to have some backing in the local administration at least. But it's still a high-risk wager and I'm afraid it'll turn out like the LiMux project in Munich, which was eventually (and cleverly so) framed as the origin of all problems in the municipal digital infrastructure. In the end, it got swapped out for a new Microsoft contract in a wonderful example of lobbyism and bribery, and Open Source and Linux have been discredited, to the point no winning mayor candidate can ever bring it up again as a viable alternative.
> With a purely Open Source strategy, you'll have to pay multiple external consultants to take care of part of this, and/or cover these roles in-house. And suddenly, you've taken up a lot of tasks completely foreign to your business domain, such as new infrastructure and its maintenance, documentation requirements, software development, and so on.
Yes, this is what I’m talking about. Hiring people and developing expertise instead of paying expensive consultants is a preferred use of my tax dollars.
> But it's still a high-risk wager and I'm afraid it'll turn out like the LiMux project in Munich, which was eventually (and cleverly so) framed as the origin of all problems in the municipal digital infrastructure.
While this may be true, there are also quite prominent cases where the massively expensive foreign consultant solutions have also lead to disastrous project overruns.
> Those tax dollars don't just pay for the license, but for ongoing development, responsibility for security issues, support contracts, emergency personnel, and so on.
Maybe this was true at one point in time. But now, it just pays for AI/Copilot and your latest support chatbot.
This. Also, with FOSS, you choose who you hire for support. From the article, it seems they’re hiring developers locally, so it’s also creating jobs in the region instead of outsourcing to MSFT. But I hope they donate a bit to the maintainers, too.
Heavens, thank you. It’s like people assume genius when RMS wiggles his little toe and wonder what grand intellectual insight might have moved Him to do so.
Stallman has been right so many times, usually decades ahead of time. On each hype cycle when most of us were bewildering at the latest shiny thing, Stallman was spelling out exactly how companies would use it to exploit us. And I'm not talking about obvious garbage with zero upside like crypto and IoT, I'm talking about more subtle hype that actually did have a degree of upside, like the cloud or javascript for example. I think he deserves a little bit more respect than that. I'm not saying "lets suspend our critical thinking and just follow whatever RMS says", I'm saying "this guy has been decades ahead of time in the most fundamental matters like morality and justice, lets give his quirkness a little leeway".
He’s also fairly arrogant and unreasonable in various interactions¹, forcing people to bend over backwards to accommodate his requests. He puts off a lot of people and severely harms his own movement by making people who are not part of it think he’s gross, both physically (the infamous picking something of his feet and eating it) and intellectually (I have examples in mind but don’t wish to start a flame war).
What good is it being a visionary if people ignore or actively reject the message because they are put off by the messenger? It’s not useful being a harbinger of doom if nothing changes anyway.
Stallman should be commended and recognised for starting the free software movement, but he should’ve stepped aside long long ago and let someone more charismatic be its figurehead.
¹ I’m sure someone reading this has had a different experience, but please do a cursory web search and recognise people’s negative interactions with Stallman are not rare.
The point is precisely that there are plenty of stories, there’s no need to single out any of them. Look for his treatment of women or while being a house guest. Heck, you can even read about disappointing (if minor) interactions in this very submission. I won’t link to them specifically because I remember more than one woman mentioning how they were harassed by Stallman fans after telling their stories. I have no desire to contribute further to that, I’m sure you’re capable of coming up with the searches yourself, it’s not remotely hard.
Disagree with you about crypto, it allows me to purchase high quality drugs online.
Also disagree with you about "IoT", I use zigbee devices that I can control remotely.
What seems like "obvious garbage" to you, might be a treasure to another person.
What I would like to learn is how to implement arbitrary client-chosen idempotency keys for public HTTP APIs to avoid duplicate requests. Stripe does this, for example; but other than keeping a record of every single request ever received, I don’t see an elegant solution…
It’s amazing how similar legislation is to software engineering in that regard: It all comes down to managing complexity. A good law is achieving its effect with as little special case handling in as few lines as possible while covering most of the problem space.
reply