"[A]n easy and comfortable fix that looks good because you can DoItNow? and you don't have to do all the hard thinking that comes from trying to do the RightThing."
Describe other bogus practices here:
- CodingStandard Who added this? The Mozilla Tinderbox page says " If you get more than 10 developers together without tools, there is going to be an explosion." Perhaps just 5 or even 3 is enough. A CodingStandard, or for those fussy about a name, CodingConventions, is one of those critical tools. --StevenNewton
Hang on - a comfortable fix that I can do now that passes all the tests seems ok to me (although the quote doesn't mention tests)? The RightThing
that still hasn't proved itself hours (invariably days) later is a very slippery slope... I would add however that sometimes that fix is just a small hop on the way to the right thing (and you need to do those other hops). However sometimes that fix is good enough (and sometimes it all ends up getting deleted anyway). -- TimMackinnon
This doesn't sound that bad to me: if it passes your tests but doesn't solve the problem, then maybe you have the wrong tests. Otherwise, shouldn't you do the SimplestThing?
The title of this page intrigues me. Does it suggest that "software engineering" is an illusion because software development is fundamentally different from engineering? Or does it suggest that some/many/all popular practices found in SE texts give only the illusion of engineering? -- MartijnMeijering
The second of those two.
Software Engineering is
engineering because it applies technology to provide useful products within economic constraints.
Mechanical Engineering is very different from Chemical Engineering in most respects, for example. But not that one.
I think this page was looking for examples of practices that provide the illusion of software engineering. Ex: obfuscating all your variable names with Hungarian Notation and not thinking about why you need 1000 lines in that function.
Along the lines of ProducingCodeAsExcretingProduct
, I'd like to ask what was the LargestSingleCodeModule
that any of you ever came across in production code.
Thank you. I'll take my answer off the air.
I've been trying to find my own definition of SoftwareEngineering
, and after months of frustration, I think I've finally gotten it narrowed down:
- SoftwareEngineering is any subset of the art/craft/science of using any management style to map anything to anything in any possibly way in any language to run on any machine over any network that is usable by any level of user at any level of quality at any level of cost at any level of abstraction, using any number of workers to solve a problem that is constantly changing.
No wonder it was so hard to pin down. . .
is the attempt
to apply discipline and regularity to the process of developing software. Whether it succeeds or not is another matter.
See also CargoCultSoftwareEngineering