{"id":287,"date":"2015-04-28T15:14:11","date_gmt":"2015-04-28T15:14:11","guid":{"rendered":"https:\/\/ee.yelkdev.site\/?p=287"},"modified":"2023-09-22T17:53:23","modified_gmt":"2023-09-22T16:53:23","slug":"rigorous-development-practices","status":"publish","type":"post","link":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/","title":{"rendered":"Rigorous development practices"},"content":{"rendered":"<p>At Equal Experts all of our developers follow what we call rigorous development practices.<\/p>\n<p>A number of these practices were popularised in the software development community by the Extreme Programming methodology, but we find they are absolutely fundamental to ensuring quality and reliability of code no matter what software development process you decide to follow. They are simply good practice and should be followed\u00a0by any team developing software in a professional environment.<\/p>\n<h3>Test automation<\/h3>\n<p>The majority of testing should be automated. Asking people to manually step through a test script time and time again provides zero value and can actually cause more delays when bogus issues are raised. This doesn&#8217;t mean there is no place for manual testing, humans are great at finding edge cases and exploring scenarios that aren&#8217;t coded into a machine. However, the box checking grunt work should be performed by machines.<\/p>\n<p>We take a pragmatic approach based on the technology and the state of the current project. Not every scenario will be automated on every project as sometimes it&#8217;s not cost effective to automate everything. The approach you take to test automation can make or break your project. We favour a standard test pyramid approach with more low-level, fast running unit tests and\u00a0just enough integration or end to end tests to give the team confidence that the various components of the architecture are working together correctly.<\/p>\n<p>Ultimately your tests have to be fast to execute, can run on a developers machine and give consistent results that a machine can decide whether your code is working or not.<\/p>\n<h3>Continuous Integration<\/h3>\n<p>Build and test all your code whenever anyone checks in. This means you always know whether the latest version of the code is working or not. Each successful build creates a binary deployable artefact, which can be used to release, so you never have to go back and build anything when you want to release a change to production.<\/p>\n<h3>Refactoring<\/h3>\n<p>Writing simple code is hard, writing complex code is relatively easy. Changing complex code is REALLY hard, changing simple code is relatively easy. We focus on writing simple code in the first instance and then refactor that code when we figure out a way to make it even simpler in the future. By constantly driving for simplicity in the code base we create systems that continue to be relatively easy to change over time.<\/p>\n<h3>Check out and build<\/h3>\n<p>A developer should be able to check out the source code from the source repository and run a simple command to be able to build the software and run the automated tests. By ensuring that everyones development environment looks the same new developers can join the project and be productive on day one. We also eliminate the &#8220;it works on my machine argument&#8221; and allow\u00a0developers to\u00a0validate their changes locally before pushing to the central code repository.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At Equal Experts all of our developers follow what we call rigorous development practices. A number of these practices were popularised in the software development community by the Extreme Programming methodology, but we find they are absolutely fundamental to ensuring quality and reliability of code no matter what software development process you decide to follow. [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":1271,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[3],"tags":[],"location":[397],"class_list":["post-287","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-focus"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Rigorous Development Practices - Equal Experts<\/title>\n<meta name=\"description\" content=\"At Equal Experts all of our developers follow what we call rigorous development practices. A number of these practices were popularised in the software development community by the Extreme Programming methodology, but we find they are absolutely fundamental to ensuring quality and reliability of code no matter what software development process you decide to follow. They are simply good practice and should be followed by any team developing software in a professional environment.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rigorous development practices\" \/>\n<meta property=\"og:description\" content=\"At Equal Experts all of our developers follow what we call rigorous development practices. A number of these practices were popularised in the software development community by the Extreme Programming methodology, but we find they are absolutely fundamental to ensuring quality and reliability of code no matter what software development process you decide to follow. They are simply good practice and should be followed by any team developing software in a professional environment.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/\" \/>\n<meta property=\"og:site_name\" content=\"Equal Experts\" \/>\n<meta property=\"article:published_time\" content=\"2015-04-28T15:14:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-22T16:53:23+00:00\" \/>\n<meta name=\"author\" content=\"Jon Dickinson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EqualExperts\" \/>\n<meta name=\"twitter:site\" content=\"@EqualExperts\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jon Dickinson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/\"},\"author\":{\"name\":\"Jon Dickinson\",\"@id\":\"https:\/\/www.equalexperts.com\/#\/schema\/person\/3fc4cf00e13bd918f981cb1118894f99\"},\"headline\":\"Rigorous development practices\",\"datePublished\":\"2015-04-28T15:14:11+00:00\",\"dateModified\":\"2023-09-22T16:53:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/\"},\"wordCount\":487,\"publisher\":{\"@id\":\"https:\/\/www.equalexperts.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#primaryimage\"},\"thumbnailUrl\":\"\",\"articleSection\":[\"Tech Focus\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/\",\"url\":\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/\",\"name\":\"Rigorous Development Practices - Equal Experts\",\"isPartOf\":{\"@id\":\"https:\/\/www.equalexperts.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2015-04-28T15:14:11+00:00\",\"dateModified\":\"2023-09-22T16:53:23+00:00\",\"description\":\"At Equal Experts all of our developers follow what we call rigorous development practices. A number of these practices were popularised in the software development community by the Extreme Programming methodology, but we find they are absolutely fundamental to ensuring quality and reliability of code no matter what software development process you decide to follow. They are simply good practice and should be followed by any team developing software in a professional environment.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.equalexperts.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rigorous development practices\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.equalexperts.com\/#website\",\"url\":\"https:\/\/www.equalexperts.com\/\",\"name\":\"Equal Experts\",\"description\":\"Making Software. Better.\",\"publisher\":{\"@id\":\"https:\/\/www.equalexperts.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.equalexperts.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.equalexperts.com\/#organization\",\"name\":\"Equal Experts\",\"url\":\"https:\/\/www.equalexperts.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.equalexperts.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2018\/08\/Equal_Experts_Logo_CMYK_Colour.jpg\",\"contentUrl\":\"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2018\/08\/Equal_Experts_Logo_CMYK_Colour.jpg\",\"width\":719,\"height\":340,\"caption\":\"Equal Experts\"},\"image\":{\"@id\":\"https:\/\/www.equalexperts.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/EqualExperts\",\"https:\/\/www.linkedin.com\/company\/equal-experts\/?viewAsMember=true\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.equalexperts.com\/#\/schema\/person\/3fc4cf00e13bd918f981cb1118894f99\",\"name\":\"Jon Dickinson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.equalexperts.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2e212c3d9a44e3907f6bc07f5d12e7289659566317ff6915f4224b2468566981?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2e212c3d9a44e3907f6bc07f5d12e7289659566317ff6915f4224b2468566981?s=96&d=mm&r=g\",\"caption\":\"Jon Dickinson\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Rigorous Development Practices - Equal Experts","description":"At Equal Experts all of our developers follow what we call rigorous development practices. A number of these practices were popularised in the software development community by the Extreme Programming methodology, but we find they are absolutely fundamental to ensuring quality and reliability of code no matter what software development process you decide to follow. They are simply good practice and should be followed by any team developing software in a professional environment.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/","og_locale":"en_GB","og_type":"article","og_title":"Rigorous development practices","og_description":"At Equal Experts all of our developers follow what we call rigorous development practices. A number of these practices were popularised in the software development community by the Extreme Programming methodology, but we find they are absolutely fundamental to ensuring quality and reliability of code no matter what software development process you decide to follow. They are simply good practice and should be followed by any team developing software in a professional environment.","og_url":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/","og_site_name":"Equal Experts","article_published_time":"2015-04-28T15:14:11+00:00","article_modified_time":"2023-09-22T16:53:23+00:00","author":"Jon Dickinson","twitter_card":"summary_large_image","twitter_creator":"@EqualExperts","twitter_site":"@EqualExperts","twitter_misc":{"Written by":"Jon Dickinson","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#article","isPartOf":{"@id":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/"},"author":{"name":"Jon Dickinson","@id":"https:\/\/www.equalexperts.com\/#\/schema\/person\/3fc4cf00e13bd918f981cb1118894f99"},"headline":"Rigorous development practices","datePublished":"2015-04-28T15:14:11+00:00","dateModified":"2023-09-22T16:53:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/"},"wordCount":487,"publisher":{"@id":"https:\/\/www.equalexperts.com\/#organization"},"image":{"@id":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#primaryimage"},"thumbnailUrl":"","articleSection":["Tech Focus"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/","url":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/","name":"Rigorous Development Practices - Equal Experts","isPartOf":{"@id":"https:\/\/www.equalexperts.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#primaryimage"},"image":{"@id":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#primaryimage"},"thumbnailUrl":"","datePublished":"2015-04-28T15:14:11+00:00","dateModified":"2023-09-22T16:53:23+00:00","description":"At Equal Experts all of our developers follow what we call rigorous development practices. A number of these practices were popularised in the software development community by the Extreme Programming methodology, but we find they are absolutely fundamental to ensuring quality and reliability of code no matter what software development process you decide to follow. They are simply good practice and should be followed by any team developing software in a professional environment.","breadcrumb":{"@id":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/www.equalexperts.com\/blog\/tech-focus\/rigorous-development-practices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.equalexperts.com\/"},{"@type":"ListItem","position":2,"name":"Rigorous development practices"}]},{"@type":"WebSite","@id":"https:\/\/www.equalexperts.com\/#website","url":"https:\/\/www.equalexperts.com\/","name":"Equal Experts","description":"Making Software. Better.","publisher":{"@id":"https:\/\/www.equalexperts.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.equalexperts.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.equalexperts.com\/#organization","name":"Equal Experts","url":"https:\/\/www.equalexperts.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.equalexperts.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2018\/08\/Equal_Experts_Logo_CMYK_Colour.jpg","contentUrl":"https:\/\/www.equalexperts.com\/wp-content\/uploads\/2018\/08\/Equal_Experts_Logo_CMYK_Colour.jpg","width":719,"height":340,"caption":"Equal Experts"},"image":{"@id":"https:\/\/www.equalexperts.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/EqualExperts","https:\/\/www.linkedin.com\/company\/equal-experts\/?viewAsMember=true"]},{"@type":"Person","@id":"https:\/\/www.equalexperts.com\/#\/schema\/person\/3fc4cf00e13bd918f981cb1118894f99","name":"Jon Dickinson","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.equalexperts.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2e212c3d9a44e3907f6bc07f5d12e7289659566317ff6915f4224b2468566981?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2e212c3d9a44e3907f6bc07f5d12e7289659566317ff6915f4224b2468566981?s=96&d=mm&r=g","caption":"Jon Dickinson"}}]}},"_links":{"self":[{"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/posts\/287","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/comments?post=287"}],"version-history":[{"count":0,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/posts\/287\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/media?parent=287"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/categories?post=287"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/tags?post=287"},{"taxonomy":"location","embeddable":true,"href":"https:\/\/www.equalexperts.com\/wp-json\/wp\/v2\/location?post=287"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}