{"id":76,"date":"2022-01-21T21:30:18","date_gmt":"2022-01-22T00:30:18","guid":{"rendered":"<!-- wp:paragraph -->\n<p>Software versioning is a full topic on its own, version updates are often a simple, easy and cost-effective way to add new features and improve your user experience. By using a released version number the source control systems kn"},"modified":"2022-01-26T15:21:53","modified_gmt":"2022-01-26T18:21:53","slug":"how-to-release-new-version-in-your-organization-organically","status":"publish","type":"post","link":"https:\/\/miguelorama.com\/blog\/2022\/01\/21\/how-to-release-new-version-in-your-organization-organically\/","title":{"rendered":"How to release a new version of your application in your organization organically"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Software versioning is a full topic on its own, version updates are often a simple, easy and cost-effective way to add new features and improve your user experience. By using a released version number the source control systems know that the code is the latest version and it can not be modified by other people (accidentally or intentionally).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In case on commercial software a new version releases success will impact user\u2019s experience, user conversion rates, lots of complains and disappointed users leaving your services.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Most of the time, releasing a new version of a software could be to add new functionality or fixing a bug, of course, it will depend on the organization or business.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In my case, the test environment overlaps production environment, don\u2019t judge me!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let me gives you some context.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Being one-man team developing for a small organization with around 50 users give you no advantage at all because everything need to be done it is up to you. A supervisor performs as the only test environment before new build is released, build will be tested in general aspects and the specific new feature or to fix a bug.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"prerequisite\"><em><span style=\"color:#0071a1\" class=\"has-inline-color\">Prerequisite<\/span><\/em><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">All devices are in the same network<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Have read access to a share folder or network drive repository or local mapped drive, we will called drive Z:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your software, lets name it ABC, being installed on the devices.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"what-do-you-need\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#0071a1\" class=\"has-inline-color\"><em>What do you need?<\/em><\/mark><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A little files settings in Z: and in the devices in Program Files\/ABC\/ folder<br>The idea it is to copy the content from Z:\/\/Update\/ to&nbsp; Program Files\/ABC\/ in the devices when certain file was modified.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"so-how-does-it-works\"><em><span style=\"color:#0071a1\" class=\"has-inline-color\">So, how does it works?<\/span> <\/em><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Every time you launch the application, a MS-DOS routine will run and compare two files: one located in Program Files\/ABC\/ and one located in Z:. If they are different, the MS-DOS routine copies files and resources from Z: to Program Files\/ABC\/. Then it launches your application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Simple, right?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That way every morning or every time users open the application on their devices, these routines checks for new releases and therefore users will be using the last released version of your application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Of course, this method has pros and cons.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><tbody><tr><td>&nbsp;<\/td><td class=\"has-text-align-center\" data-align=\"center\">Pros<\/td><td class=\"has-text-align-center\" data-align=\"center\">Cons<\/td><\/tr><tr><td>Run a MS-DOS routine before the application<\/td><td class=\"has-text-align-center\" data-align=\"center\">&nbsp;<\/td><td class=\"has-text-align-center\" data-align=\"center\">x<\/td><\/tr><tr><td>Z: drive should be mapped or accessible so you<\/td><td class=\"has-text-align-center\" data-align=\"center\">&nbsp;<\/td><td class=\"has-text-align-center\" data-align=\"center\">x<\/td><\/tr><tr><td>Update or new release anytime<\/td><td class=\"has-text-align-center\" data-align=\"center\">x<\/td><td class=\"has-text-align-center\" data-align=\"center\">&nbsp;<\/td><\/tr><tr><td>Dashboard Tool<\/td><td class=\"has-text-align-center\" data-align=\"center\">x<\/td><td class=\"has-text-align-center\" data-align=\"center\">&nbsp;<\/td><\/tr><tr><td>Set it and forget it<\/td><td class=\"has-text-align-center\" data-align=\"center\">x<\/td><td class=\"has-text-align-center\" data-align=\"center\">&nbsp;<\/td><\/tr><tr><td>&nbsp;<\/td><td class=\"has-text-align-center\" data-align=\"center\">&nbsp;<\/td><td class=\"has-text-align-center\" data-align=\"center\">&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Since this ERP application security is Role Base Access Control (RBAC) it always useful having a Log Tracking or Access Control Log features running on your application so you know users activities at all times.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/miguelorama.com\/blog\/wp-content\/uploads\/2022\/01\/10_3-1024x576.png\" alt=\"\" class=\"wp-image-134\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a Dashboard view that displays information about Last Released Date, Last Login, Last Updated the versions per user, this is important to detect if users are \u201cup to date\u201d with the last version of the application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/miguelorama.com\/blog\/wp-content\/uploads\/2022\/01\/10_1-1024x658.png\" alt=\"\" class=\"wp-image-135\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"conclusions\"><em><span style=\"color:#0071a1\" class=\"has-inline-color\">Conclusions<\/span><\/em><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s a simple solution that as a developer save me time it is seamless for the users because for they doesn\u2019t have to worry about anything else.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Make it simple.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Software versioning is a full topic on its own, version updates are often a simple, easy and cost-effective way to add new features and improve your user experience. By using a released version number the source control systems know that the code is the latest version and it can not [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-76","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/miguelorama.com\/blog\/wp-json\/wp\/v2\/posts\/76","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/miguelorama.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/miguelorama.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/miguelorama.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/miguelorama.com\/blog\/wp-json\/wp\/v2\/comments?post=76"}],"version-history":[{"count":0,"href":"https:\/\/miguelorama.com\/blog\/wp-json\/wp\/v2\/posts\/76\/revisions"}],"wp:attachment":[{"href":"https:\/\/miguelorama.com\/blog\/wp-json\/wp\/v2\/media?parent=76"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/miguelorama.com\/blog\/wp-json\/wp\/v2\/categories?post=76"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/miguelorama.com\/blog\/wp-json\/wp\/v2\/tags?post=76"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}