>There's a good chance that this will solve 95% of all needs. Most of the features suggested in the article beyond the original premise are unnecessary.
The teacher is the client. The client is the one who will better estimate what is necessary or not.
If you own a company and someone wants to contract you for work, you start explaining how what the client says it needs is not necessary and how he can manage with less than he demands?
This is absurd. The students are the client. They asked the teacher for ideas for a hobby project. The teacher provided one, then followed up with a question about an estimate. Naturally, a student gave an estimate of how much time it would take to produce the product that they themselves were envisioning.
It’s not unreasonable for the teacher to point out additional features they might want to do, and how that affects such an estimate, but it IS unreasonable to call the original estimate “wrong.” It’s not wrong for a particular scope.
> If you own a company and someone wants to contract you for work, you start explaining how what the client says it needs is not necessary and how he can manage with less than he demands?
Absolutely, you don't just build the first thing that the client asks for. And certainly not as a single main deliverable.
Every idiot with a stupid idea for a piece of software is a client, but vanishingly few clients are good customers.
In different words: there are tens or hundreds of thousands of people who can describe software that would be very useful for them, but very few of those ideas would be profitable to fully develop.
Opportunity cost! Every stupid idea implemented snuffs out what could have been a good idea.
Given the circumstances it seems reasonable to assume a programming teacher can use a program without it being foolproof enough that my mom can use it. Further, if they wanted more features (usability-wise or otherwise), they are also knowledgeable enough to ask for them, unlike an average user. Still, the students even asked clarifying questions, the author wrote. And yet they came up with a 2-hour estimate.
Of course nobody is going to come to a consultancy firm to ask for a command line utility that technically solves the problem. That's an entirely different situation you're describing.
>
The teacher is the client. The client is the one who will better estimate what is necessary or not.
If you work in a consulting company, it is "good practice" to "convince" the client that he needs a lot more features so that you can sell him more man-days.
On the other hand, if you get payed a fixed price, incentives are turned around.
> If you own a company and someone wants to contract you for work, you start explaining how what the client says it needs is not necessary and how he can manage with less than he demands?
Yes, it happens all of the time actually. Most clients don't come to you with clearly thought out solutions, they come with poorly articulated problems, and your job is to explore the problems they want to solve until they are well understood, and then devise a solution with the lowest cost.
Of those rare, rare clients that do know exactly what they need, they still have multiple constraints beyond those needs. For instance, budget. The client wants X within firm budget Y, X cannot be done within budget Y, therefore you make the case that either the budget must expand or they can make do with X' which only does 90% of X and that will fall within budget Y.
The teacher is the client. The client is the one who will better estimate what is necessary or not.
If you own a company and someone wants to contract you for work, you start explaining how what the client says it needs is not necessary and how he can manage with less than he demands?