principles:keep_it_simple_stupid
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| principles:keep_it_simple_stupid [2025-11-18 06:36] – created veronicamcnally | principles:keep_it_simple_stupid [2025-11-25 10:53] (current) – old revision restored (2021-10-20 21:09) christian | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Uproot U.S. Healthcare: To Reform U.S. Healthcare was written by someone who should know the best way to reform the system. Deane Waldman, MD MBA is both a practicing physician, as a pediatric cardiologist, | + | ====== Keep It Simple Stupid (KISS) ====== |
| - | Family healthcare is some of the most important exactly what it the minds of the elders in your house. When it comes to children, the numbers of problems the growing system face cause increased going out of our home to play are a variety of. Since there are numerous infections in the air, it is difficult for want you to stay shielded from all illnesses. It is the same with adults in the house, absence in office, at the market, basically at a neighbor' | + | ===== Variations |
| - | Get knowledge | + | * (Rule of) Simplicity |
| + | * KISS may also mean "Keep it short and simple" | ||
| - | My greatest fear may be that this healthcare plan will limit services, increase costs, and overall reduce fairly of attention. Obama promises exactly opposite. I'm hoping he is perfect. My is actually that once the Acupuncture clinic government is actually charge can be certainly no dependability. The progressives express that over 40,000 people die each year because they not have access to healthcare. Once this bill is passed, that stat will be hidden. Generally if the bill passes, will anyone question 10 years from just how many died due to lack of care? Whether or not 80,000 would die brand new would claim success. They will say that 160,000 enjoy died minus the bill. | + | **Remarks**: |
| - | Hospital resources such as beds, operating theatres and delivery suites can be established well in advance, based close to the Osteopathic clinic number of patients. Will need to help to relieve the need for an emergency bed dissatisfaction with the fourth department. | ||
| - | Hospitals because medical locations need to Acupuncture clinic able to view how well they are going to do. Performance monitoring can be carried out using healthcare reporting systems, so that any areas that have to have be improved can be quickly unearthed. | + | ===== Context ===== |
| - | The government will mandate that insurance providers insure using "pre-existing conditions" | + | * [[contexts: |
| + | * [[contexts: | ||
| + | * [[contexts: | ||
| + | * [[contexts: | ||
| - | Of course, you can't simply expect a job to fall into your lap without any effort. Every one of these healthcare jobs will require some training, and faster that beginning it, greater off you will be. After all, this economy will not wait to make sure you pick up that novel. Start training today! | + | ===== Principle Statement ===== |
| - | PC based software possesses | + | A simple solution is better than a complex one, even if the solution looks stupid. |
| - | Don't ready to go for you to allowing Insurance providers to deny coverage with different pre-existing skin problem. And the days of canceling insurance each and every person is sick are gone. These changes that are perceived through public being good will stay in internet site. Insurance companies expect to have a large new pool of young, healthy folks buying insurance. If the does not happen, someone must spend cost. That could be you. Either you pay more for coverage pesticides government a new transfer price. Either way, we are liable. | ||
| - | You would be wise to look toward the news related for the industry. Require to also consider and find the actual companies which are hiring the healthcare agents. If you need it in taking a transfer from one industry to the 新潟市中央区 交通事故治療 then must first of all discover the qualities which is actually fruitful for the health companies. | + | ===== Description ===== |
| - | Republicans are saying they will attempt to obtain the bill repealed. This will be their issue in the 2010 elections. I am willing | + | The KISS principle is about striving for simplicity. Modern programming languages, frameworks |
| - | We are paying for treatment of situations | + | A solution |
| + | |||
| + | This does not mean that features like inheritance and polymorphism should not be used at all. Rather they should | ||
| + | |||
| + | ===== Rationale ===== | ||
| + | |||
| + | A simpler solution is better than a complex one because simple solutions are easier to maintain. This includes increased readability, | ||
| + | |||
| + | The advantage of simplicity is even more significant when the person who maintains the software is not the one who once wrote it. The maintainer might also be less familiar with sophisticated programming language features. So simple and stupid programs are easier to maintain because the maintainer needs less time to understand them and is less likely to introduce further defects. | ||
| + | |||
| + | One reason to create more complex code is to make it more flexible to accommodate further requirements. But one cannot know how to make it flexible or if that flexibility | ||
| + | |||
| + | "When you make your code more flexible or sophisticated than it needs to be, you over-engineer it. Some do this because they believe they know their system' | ||
| + | |||
| + | Another | ||
| + | "Three rules of optimization": | ||
| + | |||
| + | |||
| + | ===== Strategies ===== | ||
| + | |||
| + | This is a very general principle, so there is a large variety of possible strategies to adhere more to this principle largely depending on the given design problem: | ||
| + | |||
| + | * Avoid inheritance, | ||
| + | * Avoid low-level optimization of algorithms, especially when involving Assembler, bit-operations, | ||
| + | * Use simple brute-force solutions instead of complicated algorithms. Slower algorithms will work in the first place. | ||
| + | * Avoid numerous classes and methods as well as large code blocks (see [[More Is More Complex]]) | ||
| + | * For slightly unrelated but rather small pieces of functionality use private methods instead of an additional class. | ||
| + | * Avoid general solutions needing parameterization. A specific solution | ||
| + | * ... | ||
| + | |||
| + | |||
| + | ===== Caveats ===== | ||
| + | |||
| + | See section [[#contrary principles]]. | ||
| + | |||
| + | |||
| + | ===== Origin ===== | ||
| + | |||
| + | The principle was coined by the American engineer Kelly Johnson referring to the requirement that a military aircraft should | ||
| + | |||
| + | The principle of striving for simple solutions sometimes is also called "(rule of) simplicity" | ||
| + | |||
| + | |||
| + | ===== Evidence ===== | ||
| + | /* Comment out what is not applicable and explain the rest: */ | ||
| + | /* * [[wiki: | ||
| + | /* * [[wiki: | ||
| + | |||
| + | |||
| + | [[wiki: | ||
| + | |||
| + | [[wiki: | ||
| + | |||
| + | The following hypotheses can be stated: | ||
| + | - Simpler solutions are faster to implement. | ||
| + | - Simpler solutions yield fewer implementation faults (which reduces testing effort). | ||
| + | - Simpler solutions are easier to maintain, i.e. detecting and correcting defects is more effective and efficient. | ||
| + | - Simpler solutions yield more reliable software, i.e. fewer defects show up after releasing the software. | ||
| + | |||
| + | All these hypotheses can be examined with respect to different complexity metrics. | ||
| + | |||
| + | Hypothesis 1 is true by definition. If the solution cannot be implemented quickly, it is not simple. | ||
| + | |||
| + | Though hypotheses 2 and 3 are not true by definition but they can be regarded intuitively clear. Nevertheless, | ||
| + | |||
| + | Furthermore, | ||
| + | |||
| + | Lastly, hypothesis 4 is likely to be false. Several studies relating complexity metrics and post-release reliability show that module size in lines of code predicts reliability at least as good as the McCabe metric (also called cyclomatic complexity) ((see Albert Endres, Dieter Rombach: //A Handbook of Software and Systems Engineering//, | ||
| + | |||
| + | |||
| + | ===== Relations to Other Principles ===== | ||
| + | |||
| + | ==== Generalizations ==== | ||
| + | |||
| + | ==== Specializations ==== | ||
| + | |||
| + | * [[More Is More Complex]] (MIMC): KISS states that one should strive for simplicity. MIMC makes this more concrete stating that more of anything (methods, classes, lines of code, ...) increases complexity. | ||
| + | * [[You Ain't Gonna Need It]] (YAGNI) | ||
| + | * [[Rule of Parsimony]] | ||
| + | * [[Rule of Robustness]] | ||
| + | |||
| + | ==== Contrary Principles ==== | ||
| + | |||
| + | Note that many principles are contrary to KISS. This means that it is worthwhile to consider KISS when considering one of those. Nevertheless this does not mean that this is true the other way around. When considering KISS, one wouldn' | ||
| + | |||
| + | * **[[Generalization Principle]] (GP)**: This is the directly converse principle. A generally applicable solution typically is not simple anymore. | ||
| + | * **[[Murphy' | ||
| + | * [[Model Principle]] (MP): There are often simpler ways to build a software system than to model and mirror the real-world behavior, which frequently means having more objects and more complicated structures. Nevertheless, | ||
| + | |||
| + | ==== Complementary Principles ==== | ||
| + | |||
| + | ==== Principle Collections ==== | ||
| + | |||
| + | {{page> | ||
| + | {{page> | ||
| + | |||
| + | |||
| + | ===== Examples ===== | ||
| + | |||
| + | ==== Example 1: Fuzzy Simplicity ==== | ||
| + | |||
| + | Simplicity is a blurry, partly subjective measure. Sometimes it is difficult to tell what is simpler. The following example shows that: | ||
| + | |||
| + | <code java> | ||
| + | public String weekday1(int dayOfWeek) | ||
| + | { | ||
| + | switch (dayOfWeek) | ||
| + | { | ||
| + | case 1: return " | ||
| + | case 2: return " | ||
| + | case 3: return " | ||
| + | case 4: return " | ||
| + | case 5: return " | ||
| + | case 6: return " | ||
| + | case 7: return " | ||
| + | default: throw new IllegalArgumentException(" | ||
| + | } | ||
| + | } | ||
| + | |||
| + | public String weekday2(int dayOfWeek) | ||
| + | { | ||
| + | if ((dayOfWeek < 1) || (dayOfWeek > 7)) | ||
| + | throw new IllegalArgumentException(" | ||
| + | |||
| + | final String[] weekdays = { | ||
| + | " | ||
| + | |||
| + | return weekdays[dayOfWeek-1]; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Both methods do exactly the same thing. They return a string representing the weekday. Just the implementation is different. Both versions may be seen as simpler than the other depending on the view taken. '' | ||
| + | |||
| + | On the other hand '' | ||
| + | |||
| + | So it's not objectively clear which of the two implementations KISS prefers without saying which complexity metric to apply. But this ambiguity is not a problem since principles | ||
| + | ===== Description Status ===== | ||
| + | /* Choose one of the following and comment out the rest: */ | ||
| + | / | ||
| + | [[wiki: | ||
| + | / | ||
| + | |||
| + | ===== Further Reading ===== | ||
| + | |||
| + | * [[wiki> | ||
| + | * [[wp> | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | ===== Discussion ===== | ||
| + | |||
| + | Discuss this wiki article and the principle on the corresponding [[talk: | ||
principles/keep_it_simple_stupid.1763444199.txt.gz · Last modified: by veronicamcnally
