{"id":5240,"date":"2018-05-23T10:30:13","date_gmt":"2018-05-23T05:00:13","guid":{"rendered":"http:\/\/innoroo.com\/blog\/?p=5240"},"modified":"2018-05-23T05:22:32","modified_gmt":"2018-05-22T23:52:32","slug":"rule-of-simplicity-glossary","status":"publish","type":"post","link":"https:\/\/innoroo.com\/blog\/2018\/05\/23\/rule-of-simplicity-glossary\/","title":{"rendered":"Rule of Simplicity | Glossary"},"content":{"rendered":"<p><span style=\"color: #0000ff\"><b>Definition:<\/b><\/span><\/p>\n<p><span style=\"font-weight: 400\">Kent Beck while developing Extreme Programming (XP) came up with rules of simple design. He recommended that developers should do the simplest thing that could possibly work. Simple code means you\u2019re travelling light &#8211; low up-front investment, and not much to slow down when things needs to change. Simplicity is being recognised as one of values in XP, where programmers are encouraged to start with simplest solution which helps them to focus on designing and coding for the needs of today instead of tomorrow.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Rule of Simplicity<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Pass All Tests<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Clear, Expressive &amp; Consistent<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Duplicates No Behaviour or Configuration<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Minimal Methods, Classes &amp; Modules<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">With these rules, we can judge whether the code developed is simple enough. What we can derive is to think about what is most important, the code should work, pass all tests. The next most important thing is that the code should be easy to understand, therefore we need to ensure that it expresses every idea \u00a0with clarity. Even though the code works, we need to consider maintainability, see to that there is no duplicate code. This minimises cost and maximise benefits over the lifetime of the software.<\/span><\/p>\n<p><span style=\"color: #0000ff\"><b>Further Reading:<\/b><\/span><\/p>\n<p><b>Book:<\/b><span style=\"font-weight: 400\"> Extreme Programming Explained: Embrace Change by Kent Beck<\/span><br \/>\n<b>Book:<\/b><span style=\"font-weight: 400\"> Understanding the 4 Rules of Simple Design by Corey Haines<\/span><br \/>\n<b>Book:<\/b><span style=\"font-weight: 400\"> Understanding Software by Max Kanat-Alexander<\/span><br \/>\n<a href=\"https:\/\/en.wikipedia.org\/wiki\/Extreme_programming\"><span style=\"font-weight: 400\">https:\/\/en.wikipedia.org\/wiki\/Extreme_programming<\/span><\/a><br \/>\n<a href=\"http:\/\/wiki.c2.com\/?XpSimplicityRules\"><span style=\"font-weight: 400\">http:\/\/wiki.c2.com\/?XpSimplicityRules<\/span><\/a><br \/>\n<a href=\"https:\/\/martinfowler.com\/bliki\/BeckDesignRules.html\"><span style=\"font-weight: 400\">https:\/\/martinfowler.com\/bliki\/BeckDesignRules.html<\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Definition: Kent Beck while developing Extreme Programming (XP) came up with rules of simple design. He recommended that developers should do the simplest thing that could possibly work. Simple code means you\u2019re travelling light &#8211; low up-front investment, and not much to slow down when things needs to change. Simplicity is being recognised as one [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":5242,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[102],"tags":[17,287,857,331,334,858,855,119,3,856,2,779,797,135,681,339,120],"class_list":["post-5240","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-glossary","tag-agile","tag-agility","tag-beck","tag-code","tag-coding","tag-coding-practices","tag-extreme","tag-extreme-programming","tag-kanban","tag-kent","tag-lean","tag-practices","tag-principles","tag-quality","tag-simplicity","tag-values","tag-xp"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/innoroo.com\/blog\/wp-content\/uploads\/2018\/05\/Rule-of-Simplicity.png?fit=3125%2C1709&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8Rui8-1mw","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/innoroo.com\/blog\/wp-json\/wp\/v2\/posts\/5240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/innoroo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/innoroo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/innoroo.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/innoroo.com\/blog\/wp-json\/wp\/v2\/comments?post=5240"}],"version-history":[{"count":2,"href":"https:\/\/innoroo.com\/blog\/wp-json\/wp\/v2\/posts\/5240\/revisions"}],"predecessor-version":[{"id":5243,"href":"https:\/\/innoroo.com\/blog\/wp-json\/wp\/v2\/posts\/5240\/revisions\/5243"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/innoroo.com\/blog\/wp-json\/wp\/v2\/media\/5242"}],"wp:attachment":[{"href":"https:\/\/innoroo.com\/blog\/wp-json\/wp\/v2\/media?parent=5240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/innoroo.com\/blog\/wp-json\/wp\/v2\/categories?post=5240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/innoroo.com\/blog\/wp-json\/wp\/v2\/tags?post=5240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}