Occam's razor. (JWRC) Simplest does, however, mean a minimal solution. Don't build a giant super-efficient object, sorted and hashed and linked together, if an Array will do the job. Simplest might mean "just use a Dictionary". It...
See more »
Occam's razor. (JWRC) Simplest does, however, mean a minimal solution. Don't build a giant super-efficient object, sorted and hashed and linked together, if an Array will do the job. Simplest might mean "just use a Dictionary". It might mean "create a little object". It might mean "refactor the part hierarchy so that entitlements and deductions both have positive balance when they are normal". What it does mean, however, is to pick something you can do and do quickly, so that you can get on with the other things you really need to do. Then do that thing professionally and well, complete with all appropriate refactoring. As for the things you're gonna need: YouArentGonnaNeedIt. One final note: ExtremeProgramming rests, I believe, on the assumption that developers want to do well, and that when they know what is expected, they will do well. We do, as a team, require that our rules about testing and other key processes be followed. In almost every case, that works just fine. If a developer doesn't follow the rules, we correct or remove them. The developer? Or the rules? Quality is terribly important in payroll. Airplanes won't fall out of the sky, but the factory could go on strike, and you could make tens of thousands of people very angry. There is no reason why simplicity and quality are in conflict: in my experience, they go hand in hand. -- RonJeffries Remember, however, that "quality" is probably impossible to fully define. Accuracy in a payroll system is only valuable up to a point. No one expects a US payroll system to accurately deduct income taxes; it is expected that each employee will have to make a manual adjustment with his yearly income tax filing. Variation, however, is usually not accepted. Depending upon the system, one usually expects a consistent total amount from period to period or expects a consistent pay rate from period to period. Increased accuracy in withheld taxes would probably be judged as lower quality if it lead to wider variation in the amounts on pay checks. In the end, the "quality" of a software based system must be sufficient to meet the expectations of the users; the purpose of the system is really immaterial to the argument. [Please note, the intent of this is not to denigrate accounting systems, but rather to highlight the subjective nature of "quality".] -- WayneMack There are second order effects to asking yourself "What is the simplest thing that could possibly work?" -- KentBeck * You get done sooner * Your work is easier to communicate * Duplication is obvious, so the needs and means for refactoring are clearer * Tests are easier to write * The code is easier to performance tune Or, at least, there will be more scope for tuning performance * You feel less stress, which enhances all of the above Be sure to see the ShakerQuote that starts, "If it is not useful or necessary, free yourself from imagining that you need to make it." WhatIsSimplest is a very interesting question to me. -- MichaelFeathers DoSimpleThings is a simple answer, speaking to one's awesome power to be complex. -- PCP Isn't this just SmallIsBeautiful applied to programming? -- HelmutLeitner See DrawingHand for a response to the concerns about simplicity possibly resulting in FlimsyAndBarelyFunctional software. Suggested as related are SimplestThingReplyFromJamesCollins; SimplestThingReplyFromRonJeffries; XpSimplicityRules; GoldilocksSolution; ManagingEvolutionaryDesign; EvolutionaryArchitecture I think DTSTTCPW and XP look like a TetrisAnalogy -- FrancisTownsend One little step at a time, lest I be presumptuous, lest I hurt myself, lest I hurt others. -- JoanHalifax It means one knows everything about programming there is to, but only applies one technique at a time. I tell a story about discovering the extremeness of DTSTTCPW at SimplestVersusRight. -- MitchellModel Where I am having difficulty here is that 'simplest' has no metric. So "the fewest programming environment operations to get the next test case running" could actually be what is meant. Or, "fewest lines of source code". Or, "source
See less »
Kaboodle will send you a newsletter and updates from your friends. You can unsubscribe at any time. Kaboodle does not sell or share your email address or personal information with anyone.
Kaboodle requires all users to provide their real date of birth as both a safety precaution and as a means
of preserving the integrity of the site. You will be able to hide this information from your profile if you wish.
Added by 1 people