You don't provide that.
You don't provide that.
What I am stating is that "it was in the requirements" is not a "get out of jail card" when someone says it's over-engineered.
All I'm saying is that it's a very comfortable position to abstract away personal responsibility and say "I'm not over-engineering, that's what X wants", but that's exactly how we get the over-engineered Linux-plus-wi-fi doorbells.
I'm perfectly fine with people having fun or over-engineering stuff, I'm just pointing out that it's still over-engineered in the end. Which is 100% fine!
Over-engineered simply means there is much more in that implementation than the baseline needed to tick off the requirements.
As an engineer (the traditional kind), I don't really appreciate nor can I afford the "not my problem" attitude of doing engineering in a vacuum, because in the end it's my responsibility.
Isn't everybody? Your whole case rests on the insistence that OP's core requirement is no good. Not for any objective engineering reasons, just because you think so.
I have a simple question that any engineer can answer in a heartbeat. Is a Christmas tree light installation with a bunch of series connected incandescent lights (I'm talking literally one of those classic Christmas lights set with absolutely no extra components or complexity beyond wires, bulbs, and plug) over engineered? Could you do it with even less engineering?
I never said it wasn't good.
I just said it led to over-engineering a doorbell.
"Good" or "bad" are words you're putting in my mouth.
I was trying to be diplomatic and use "good/bad" as shorthand for "should be part of a well engineered (not over/under) product or not". You don't like it, then let me use what you actually said: engineers who implement all the requirements given to them are like the Nazi soldiers who executed the people they were ordered to execute. Neither good nor bad, just over executing, right?
I asked you a question because it was an easy way to apply your logic on something concrete, so you can see that if it fails on something so simple, maybe it's not actually useful at all. You pretended not to see it like a fine engineer with responsibilities. Tripped on a Christmas light.
My whole point is that "something being in the requirements" is not a shield against something being considered "over engineering" by others. There's nothing more to it.
And I said exactly the opposite of that.
Doing bad things is bad, despite following orders.
Over-engineering is over-engineering, despite following requirements.
How do you define objectively as an engineer if "play MP3" is too much? A doorbell is a sound outputting device only, being able to select the sound seems like a reasonable extension. Is a digital doorbell overengineered when analog electric ones worked just fine for almost 2 centuries? Or were these overengineered when mechanical doorbells worked for many more centuries before? What if I attach a light to the doorbell, is that over engineering?
Or are you just fighting to save face after missing the point completely and making that tasteless Nurnberg trial parallel?
Then I want you to justify why commercial products offering this feature have 10-100 times more code or 10 times more complex hardware just to do what my doorbell does :-)
The person who gave an opinion about whether this is overengineered or not was Lukeify, not me:
> You are super-sensitive to over-engineering, so you over-engineered your requirements and ultimately your end product, just in a different methodology and framework.
It's still over-engineering to a lot of people, including lukeify, regardless of there existing something worse, regardless of any "it was the requirements" defence.
Over-engineering something is fine. Especially a personal project.
Just own it.
What if the default chime triggers some PTSD? (Probably doesn’t, but it could happen!) What if the landlord doesn’t want you to drill a hole through the side of your house and it doesn’t come with a doorbell?
The solution isn’t “over engineered” it’s just “engineered” (not an off the shelf product)
I never said otherwise?
Perhaps it was unproductive because you’re assuming I’m making a point while I’m not?
My point was entirely that other people can call this “over engineered” due to feature creep.
The person who called it over engineered in the first place wasn’t me.
I appreciate that you and other people seem to want to discuss doorbells, and someone else seems to want to discuss christmas lights, but I am not really interested in that.
I am arguing a general point (“feature creep can lead to overengineering”), not this specific product.
Regardless, this is irrelevant to the point of this entire thread, which is that it's possible to design a device, as I did, that is vastly simpler than commercial doorbells allowing user-customizable chimes.
Here, someone else explained. Maybe you can understand better if it comes from someone else: https://news.ycombinator.com/item?id=49508403