To view parent comment, click here.
To read all comments associated with this story, please click here.
Uh no. That's like saying Trabant was a good car because it worked. Working is not a measurement of good engineering, for numerous reasons. For one, badly written code is hard to verify by both manual or automatic means so it's hard to know if it actually works and under what circumstances it will work or fail. Secondly, what works right now might not work tomorrow or next week. We don't live in a static world and it's a lot easier to adapt well-written and structured code to changing requirements.
You're assuming something other than using the software is required to know if it works. You're assuming the software working is conditional. You're playing "what if" by suggesting it may not work tomorrow. In _some cases_ you have a valid point. However, in other cases it simply doesn't apply or is untrue.
Also, your idea of what is "well-written and structured" can be and is very different from what other people deem as the same. One huge thing you seem to be missing is that personal opinion plays a large role in making judgments about someones code. I know several great coders who are often times in disagreement about code-related issues. To put it simply, coding is not black & white the way you think it is. It's not correct or incorrect. It's not right or wrong. There is a lot of grey area and more than one way to skin a cat.
In many cases that may be true. In many cases it is not.
Sure but it's a completely different thing and we're not talking about rewriting code. We're talking about doing it right in the first place.
Again, what's "right" is often times a matter of opinion therefore there is no right or wrong -- only working and non-working.
Making assumptions about things that don't apply (when they don't apply) is pointless. Unnecessarily over-complicating things is pointless. "Fixing" something that isn't broken is pointless. Deeming software to be "wrong" because it doesn't follow your own coding philosophies is pointless.
Earlier you pointed that we don't live in a static world. In addition to that, coding `rightness` and `wrongness` isn't always static either.
ilovebeer,
"You can't get around the fact that if the software works it has been engineered correctly because it's doing what it was designed to do."
It works...until it doesn't.
As long as it's limited to personal code, and the original developer doesn't care about how it's engineered, then maybe it doesn't matter to him. But if he's working in a corporate setting, some other poor sole will inherit that code and he'll be none-to-pleased to learn that the earlier developer completely disregarded code quality in his work.
"Also, your idea of what is 'well-written and structured' can be and is very different from what other people deem as the same. One huge thing you seem to be missing is that personal opinion plays a large role in making judgments about someones code. I know several great coders who are often times in disagreement about code-related issues."
Of course there are different opinions, especially with details that come down to different tastes. But ask them if they think the engineering doesn't matter at all as long as the end product works. The good software engineers I know are proud of good engineering.





Member since:
2005-08-18
Uh no. That's like saying Trabant was a good car because it worked. Working is not a measurement of good engineering, for numerous reasons. For one, badly written code is hard to verify by both manual or automatic means so it's hard to know if it actually works and under what circumstances it will work or fail. Secondly, what works right now might not work tomorrow or next week. We don't live in a static world and it's a lot easier to adapt well-written and structured code to changing requirements.
In my experience, most people who argue that the end, "working" programs, justifies the means are those who write terrible and fragile code.
Sure but it's a completely different thing and we're not talking about rewriting code. We're talking about doing it right in the first place.