{"id":987515658,"date":"2023-11-13T14:10:38","date_gmt":"2023-11-13T14:10:38","guid":{"rendered":"https:\/\/pmchampions.com\/devops-transformation-for-enhanced-agility\/"},"modified":"2024-01-31T14:11:18","modified_gmt":"2024-01-31T14:11:18","slug":"devops-transformation-for-enhanced-agility","status":"publish","type":"post","link":"https:\/\/pmchampions.com\/en\/devops-transformation-for-enhanced-agility\/","title":{"rendered":"DevOps Transformation for Enhanced Agility"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/11\/transfo-devops-en.png&#8221; title_text=&#8221;transfo-devops-fr&#8221; align=&#8221;center&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#fff3cd&#8221; custom_margin=&#8221;30px||30px||false|false&#8221; custom_css_main_element=&#8221;overflow:visible&#8221; border_radii=&#8221;on|0.25rem|0.25rem|0.25rem|0.25rem&#8221; border_width_all=&#8221;1px&#8221; border_color_all=&#8221;#dee2e6&#8243; box_shadow_style=&#8221;preset3&#8243; box_shadow_vertical=&#8221;5px&#8221; box_shadow_blur=&#8221;15px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb title=&#8221;Key points&#8221; image=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/10\/key-point.png&#8221; alt=&#8221;key point&#8221; icon_placement=&#8221;left&#8221; content_max_width_tablet=&#8221;&#8221; content_max_width_phone=&#8221;&#8221; content_max_width_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; header_level=&#8221;h3&#8243; header_font=&#8221;Acme||||||||&#8221; header_font_size=&#8221;22px&#8221; background_color=&#8221;#edf8ff&#8221; image_icon_custom_margin=&#8221;1px|0px|0px|0px|false|false&#8221; image_icon_custom_padding=&#8221;||||false|false&#8221; width=&#8221;200px&#8221; width_tablet=&#8221;200px&#8221; width_phone=&#8221;200px&#8221; width_last_edited=&#8221;on|desktop&#8221; max_width=&#8221;200px&#8221; max_width_tablet=&#8221;200px&#8221; max_width_phone=&#8221;200px&#8221; max_width_last_edited=&#8221;on|desktop&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;-55px||||false|false&#8221; custom_margin_tablet=&#8221;-55px||||false|false&#8221; custom_margin_phone=&#8221;-55px||||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;5px|5px|0px|5px|false|false&#8221; child_filter_saturate=&#8221;200%&#8221; header_font_size_tablet=&#8221;22px&#8221; header_font_size_phone=&#8221;22px&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; border_radii=&#8221;on|0.25rem|0.25rem|0.25rem|0.25rem&#8221; border_width_all=&#8221;1px&#8221; border_color_all=&#8221;#dee2e6&#8243; box_shadow_style=&#8221;preset3&#8243; box_shadow_horizontal=&#8221;6px&#8221; box_shadow_vertical=&#8221;11px&#8221; box_shadow_blur=&#8221;8px&#8221; text_shadow_style=&#8221;preset1&#8243; text_shadow_vertical_length=&#8221;0.15em&#8221; text_shadow_blur_strength=&#8221;0.3em&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_blurb][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;|30px||30px|false|false&#8221; global_colors_info=&#8221;{}&#8221;]<p><span>This article will explore the initial steps to kick-start a <strong>DevOps transformation<\/strong>, shedding light on essential concepts, release management, <strong>automation<\/strong> , and <strong>monitoring<\/strong>.<\/span><\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;20px|20px|20px|20px|false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; border_width_all=&#8221;1px&#8221; global_colors_info=&#8221;{}&#8221;]<h2>Introduction<\/h2>\n<p>In the world of software development, DevOps (Development + Operations) and Agility come together for greater efficiency.<\/p>\n<p>DevOps automates the steps, ensuring continuous <strong>integration (CI)<\/strong> and <strong>continuous deployment (CD),<\/strong> while breaking down barriers between development and operations teams.<\/p>\n<p>This synergy between DevOps and Agility creates a culture that fosters continuous innovation. Faster development cycles, consistent quality thanks to CI\/CD.<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row module_class=&#8221;pmc-bullet&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h2>HOW DO I START A DEVOPS TRANSFORMATION?<\/h2>\n<h3>EVALUATE AND ESTABLISH OUR DEVOPS ROADMAP<\/h3>\n<p><strong>1st step<\/strong> : We bring together the stakeholders of a project and we carry out an assessment of the current level of maturity on the different themes proposed: Culture and Organization, Design and Architecture, Build and Deployment, Testing and Verification, Information and Reporting.<\/p>\n<ul>\n<li>Allows for uniform sharing around current practices<\/li>\n<li>Allows us to discuss the themes and share the vision around the practices<\/li>\n<\/ul>\n<p><strong>Step 2<\/strong> : We set ourselves ambitions and objectives around this maturity model<\/p>\n<ul>\n<li>We evaluate our target level on each of the themes<\/li>\n<\/ul>\n<p><strong>Step 3<\/strong>: We build our roadmap to reach the previously established target<\/p>\n<ul>\n<li>This roadmap will be the guiding thread to assess overall progress<\/li>\n<\/ul>[\/et_pb_text][et_pb_text module_class=&#8221;pmc-bullet&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;16px|||||&#8221; global_colors_info=&#8221;{}&#8221;]<h3>MAKING THE PRODUCT LIFE CYCLE VISIBLE: VALUE STREAM MAPPING <\/h3>\n<p>Conducting a VSM workshop means showing a realistic picture of the life cycle of an application as a whole.<\/p>\n<p>The goal of VSM is to reduce the time between request and opening to users. It is carried out in 4 steps:<\/p>\n<ul>\n<li>Map the current state with value-added and non-value-added actions (delay)<\/li>\n<li>Measure the times of each of the stages<\/li>\n<li>Identify areas for improvement and implement actions to achieve them<\/li>\n<li>Change the current state to the future state once actions are taken<\/li>\n<\/ul>\n<p>&nbsp;<\/p>[\/et_pb_text][et_pb_text module_class=&#8221;pmc-bullet&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h3>ESTABLISHING AND ANIMATING A DEVOPS COMMUNITY <\/h3>\n<p>Create an organization-wide DevOps community:<\/p>\n<ul>\n<li>Development-side technical experts<\/li>\n<li>Operators<\/li>\n<li>Hosts<\/li>\n<li>Theme Sponsors<\/li>\n<li>Etc.<\/li>\n<\/ul>\n<p>Animate this community in an agile way<\/p>\n<ul>\n<li>Create a <strong><a href=\"https:\/\/pmchampions.com\/en\/how-to-refine-the-product-backlog\/\">Product Backlog<\/a><\/strong>, set up a continuous improvement process &#8211; <strong><a href=\"https:\/\/pmchampions.com\/en\/facilitating-a-sprint-retrospective-to-strengthen-your-team\/\">retrospective<\/a><\/strong>, set up the notion of sprint (one-month sprints for example), etc.<\/li>\n<li>Bridging Development (Dev) and Operations Teams (Ops)<\/li>\n<\/ul>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#8300E9&#8243; background_enable_pattern_style=&#8221;on&#8221; background_pattern_style=&#8221;confetti&#8221; background_pattern_color=&#8221;#EDF000&#8243; custom_margin=&#8221;70px||10px||false|false&#8221; custom_css_main_element=&#8221;overflow:visible&#8221; border_radii=&#8221;on|0.25rem|0.25rem|0.25rem|0.25rem&#8221; border_width_all=&#8221;1px&#8221; border_color_all=&#8221;#dee2e6&#8243; box_shadow_style=&#8221;preset3&#8243; box_shadow_vertical=&#8221;5px&#8221; box_shadow_blur=&#8221;15px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/10\/laugh-out-loud.png&#8221; alt=&#8221;laugh&#8221; title_text=&#8221;laugh-out-loud&#8221; align=&#8221;center&#8221; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; width=&#8221;15%&#8221; width_tablet=&#8221;20%&#8221; width_phone=&#8221;40%&#8221; width_last_edited=&#8221;on|desktop&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;-80px||||false|false&#8221; border_radii=&#8221;on|50%|50%|50%|50%&#8221; border_width_all=&#8221;1px&#8221; border_color_all=&#8221;#a0a2a5&#8243; box_shadow_style=&#8221;preset3&#8243; box_shadow_vertical=&#8221;14px&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#edf8ff&#8221; custom_padding=&#8221;|30px||30px|false|false&#8221; border_width_top=&#8221;5px&#8221; border_color_top=&#8221;#8300E9&#8243; border_style_top=&#8221;ridge&#8221; border_width_bottom=&#8221;5px&#8221; border_color_bottom=&#8221;#8300E9&#8243; border_style_bottom=&#8221;ridge&#8221; global_colors_info=&#8221;{}&#8221;]<p><span><strong>DevOps and Agility<\/strong> : where code errors become &#8216;<strong>unexpected features<\/strong>&#8216; and where every meeting is a training session for sprint marathons. It&#8217;s almost like doing acrobatics, but with <strong>waiters<\/strong> instead of balls.<\/span><\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;pmc-bullet&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h2>KEY DEVOPS CONCEPTS TO GET STARTED<\/h2>\n<p>Everything as Code:<\/p>\n<ul>\n<li>Infrastructure as Code<\/li>\n<li>Configuration as Code<\/li>\n<li>Pipeline as Code<\/li>\n<li>Documentation as Code \u2013 Living Documentation<\/li>\n<\/ul>\n<p>SSOT \u2013 Single Source Of Truth.<\/p>\n<p>Continuous Integration \u2013 Branch by Abstraction \u2013 Feature Flipping \u2013 Release Management Monitoring.<\/p>\n<p>Automation &#8211; Continuous Delivery.<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;pmc-bullet&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h3>INFRASTRUCTURE AS CODE <\/h3>[\/et_pb_text][et_pb_text module_class=&#8221;blue-list&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<p>Why change architecture to a cloud-based architecture? <\/p>\n<ul>\n<li>Make delivery a non-event<\/li>\n<li>Defining a Delivery Pipeline<\/li>\n<\/ul>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<blockquote>\n<p style=\"text-align: center;\"><strong>Architecture Transformation Example <\/strong><\/p>\n<\/blockquote>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_3,1_3,1_3&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#edf8ff&#8221; custom_padding=&#8221;20px|20px|20px|20px|false|false&#8221; border_radii=&#8221;on|20px|20px|20px|20px&#8221; border_width_all=&#8221;1px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/11\/devops-infra-sas-init.png&#8221; title_text=&#8221;devops-infra-sas-init&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/11\/devops-infra-sas2.png&#8221; title_text=&#8221;devops-infra-sas2&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_3&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_image src=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/11\/devops-infra-sas3.png&#8221; title_text=&#8221;devops-infra-sas3&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;blue-list&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<ul>\n<li><strong>Goal <\/strong>: Automate infrastructure creation using definition as code<\/li>\n<ul>\n<li>The manual action of implementing an environment has no added value<\/li>\n<li>In the event of an incident, code correction, destruction, and reconstruction of an environment from its definition<\/li>\n<\/ul>\n<li> <strong>Benefits <\/strong>: time saved to build and rebuild an environment and improved scalability of environments<\/li>\n<\/ul>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#edf8ff&#8221; custom_padding=&#8221;20px|20px|20px|20px|false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; border_width_all=&#8221;1px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<blockquote>\n<p><strong><span class=\"ms-rteStyle-References\">Example of infrastructure as code for creating the Jenkins environment with Docker<\/span><\/strong><\/p>\n<\/blockquote>[\/et_pb_text][et_pb_image src=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/11\/docker-example.png&#8221; title_text=&#8221;docker-example&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;blue-list&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h3>CONFIGURATION AS CODE<\/h3>\n<p> <strong>Goal <\/strong>: Ensure the same runtime configuration across all environments<\/p>\n<ul>\n<li>Using YAML to Describe Configuration<\/li>\n<li>Storing the configuration with the source code<\/li>\n<li>Consolidates application and runtime configuration<\/li>\n<\/ul>\n<blockquote>\n<p>The configuration is built at the same time as the construction of the application binary<\/p>\n<\/blockquote>\n<p> <strong>Benefits <\/strong>: Regardless of the platform, the application works with the same runtime environment <\/p>[\/et_pb_text][et_pb_text module_class=&#8221;blue-list&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h3>PIPELINE AS CODE <\/h3>\n<p><strong>Objective <\/strong>: to be able to deploy at any time with the Pipeline<\/p>\n<p>As soon as a source code is pushed to GIT, the integration pipeline is triggered<\/p>\n<ul>\n<li>Packaging of the &#8220;Release candidate&#8221; application and its configuration\n<ul>\n<li>Building the application binary<\/li>\n<li>Building Docker images<\/li>\n<\/ul>\n<\/li>\n<li>Execution of all Automated Tests: Automated Unit or Integration Testing &#8230;\n<ul>\n<li>In case of an error in the execution of the tests:\n<ul>\n<li>Deployment is interrupted<\/li>\n<li>The team is informed in order to correct as soon as possible<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Deployment to the integration environment\n<ul>\n<li>Database update<\/li>\n<li>Deploying Application Components<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Benefits <\/strong>: Deployment of stable versions, deployment on the &#8220;Integration&#8221; environment is only done if all automated tests are passed.<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#edf8ff&#8221; custom_padding=&#8221;20px|20px|20px|20px|false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; border_width_all=&#8221;1px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<blockquote>\n<p><strong><span class=\"ms-rteStyle-References\">Pipeline Example:<\/span><\/strong><\/p>\n<\/blockquote>[\/et_pb_text][et_pb_image src=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/11\/pipeline.png&#8221; title_text=&#8221;pipeline&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;blue-list&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h3>LIVING DOCUMENTATION<\/h3>\n<p><strong>Objective <\/strong>: to bring documentation to life in the same cycle as the source code<\/p>\n<ul>\n<li>Document the product throughout its construction<\/li>\n<\/ul>\n<blockquote><\/blockquote>\n<ul>\n<li>Build functional and technical documentation\n<ul>\n<li>The documentation produced corresponds to what is completed<\/li>\n<li>Build technical documentation from source code elements<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><strong>Benefits <\/strong>: Up-to-date and easily maintainable documentation<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#ffd1d1&#8243; custom_margin=&#8221;30px||30px||false|false&#8221; custom_css_main_element=&#8221;overflow:visible&#8221; border_radii=&#8221;on|0.25rem|0.25rem|0.25rem|0.25rem&#8221; border_width_all=&#8221;1px&#8221; border_color_all=&#8221;#dee2e6&#8243; box_shadow_style=&#8221;preset3&#8243; box_shadow_vertical=&#8221;5px&#8221; box_shadow_blur=&#8221;15px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb title=&#8221;Important!&#8221; image=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/10\/important.png&#8221; alt=&#8221;important&#8221; icon_placement=&#8221;left&#8221; content_max_width_tablet=&#8221;&#8221; content_max_width_phone=&#8221;&#8221; content_max_width_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; header_font=&#8221;Acme||||||||&#8221; header_font_size=&#8221;22px&#8221; background_color=&#8221;#edf8ff&#8221; image_icon_custom_margin=&#8221;1px|0px|0px|0px|false|false&#8221; image_icon_custom_padding=&#8221;||||false|false&#8221; width=&#8221;200px&#8221; width_tablet=&#8221;200px&#8221; width_phone=&#8221;200px&#8221; width_last_edited=&#8221;on|desktop&#8221; max_width=&#8221;200px&#8221; max_width_tablet=&#8221;200px&#8221; max_width_phone=&#8221;200px&#8221; max_width_last_edited=&#8221;on|desktop&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;-55px||||false|false&#8221; custom_margin_tablet=&#8221;-55px||||false|false&#8221; custom_margin_phone=&#8221;-55px||||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;5px|5px|0px|5px|false|false&#8221; child_filter_saturate=&#8221;200%&#8221; header_font_size_tablet=&#8221;22px&#8221; header_font_size_phone=&#8221;22px&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; border_radii=&#8221;on|0.25rem|0.25rem|0.25rem|0.25rem&#8221; border_width_all=&#8221;1px&#8221; border_color_all=&#8221;#dee2e6&#8243; box_shadow_style=&#8221;preset3&#8243; box_shadow_horizontal=&#8221;6px&#8221; box_shadow_vertical=&#8221;11px&#8221; box_shadow_blur=&#8221;8px&#8221; text_shadow_style=&#8221;preset1&#8243; text_shadow_vertical_length=&#8221;0.15em&#8221; text_shadow_blur_strength=&#8221;0.3em&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_blurb][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;|30px||30px|false|false&#8221; global_colors_info=&#8221;{}&#8221;]<p><em><strong>Avoid<\/strong> writing a <strong>300-page<\/strong> specification before producing the <strong>1st line of code<\/strong><\/em><\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;blue-list&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h3>SSOT: SINGLE SOURCE OF TRUST<\/h3>\n<p> <strong>Objective <\/strong>: To have a single repository for ANY element of the project (Single Repository Of Trust)<\/p>\n<p><strong>Application<\/strong><\/p>\n<ul>\n<li>Application source code, as well as dependencies (libraries, static content, etc.)<\/li>\n<li>All DB schema creation scripts, reference data, etc.<\/li>\n<li>All automated testing, as well as manual scenarios<\/li>\n<li>Any other artifacts of the project (functional documentation, technical documentation, release notes, etc.)<\/li>\n<\/ul>\n<p><strong>Packaging &amp; Environments<\/strong><\/p>\n<ul>\n<li>All scripts allowing the packaging of the application, deployment, migration of data from the database and provisioning of environments<\/li>\n<li>All of the tools for creating environments and artifacts described in the previous items<\/li>\n<li>All files used to create containers (e.g. Docker file)<\/li>\n<\/ul>\n<p><strong>Configuration<\/strong><\/p>\n<ul>\n<li>All cloud platform configuration files<\/li>\n<li>Any other scripts needed to configure the product in its environment<\/li>\n<\/ul>[\/et_pb_text][et_pb_text module_class=&#8221;blue-list&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h3>PLUGGED BY ABSTRACTION AND FEATURE FLIPPING<\/h3>\n<p><strong>Example of a project context:<\/strong><\/p>\n<ul>\n<li>There can be several iterations in parallel at different phases in the production cycle (technical design, development, correction of internal anomalies, correction of acceptance anomalies, etc.)<\/li>\n<li>Each iteration brings its share of corrections and changes<\/li>\n<li>It is necessary to be able to deliver each iteration with the relevant content<\/li>\n<li>There are several possible strategies<\/li>\n<\/ul>\n<p><strong>Use branches:<\/strong><\/p>\n<ul>\n<li>Involves the multiplication of Merges<\/li>\n<\/ul>\n<blockquote>\n<p><em>A Merge Isn&#8217;t Always Automatic<\/em><\/p>\n<p><em>A Merge is never done serenely<\/em><\/p>\n<p><em>A merge is ultimately a set of standard code changes: requires testing each element of the merge<\/em><\/p>\n<\/blockquote>\n<ul>\n<li>Increased risk of regression<\/li>\n<li>Generates complexity<\/li>\n<\/ul>\n<blockquote>\n<p><em>A branch can diverge drastically from the master&#8217;s degree<\/em><\/p>\n<p><em>A branch can be maintained for several weeks, months, etc.<\/em><\/p>\n<p><em>A Merge Is Potentially Impossible<\/em><\/p>\n<\/blockquote>\n<ul>\n<li style=\"list-style-type: none;\">This sometimes means re-implementing the solution<\/li>\n<li>Not an ideal candidate for continuous integration<\/li>\n<\/ul>\n<blockquote>\n<p><em>Who advocates a single job on the master&#8217;s degree<\/em><\/p>\n<p><em>Who considers that the multiplication of jobs is complicated<\/em><\/p>\n<\/blockquote>\n<ul>\n<li>Holding back a continuous deployment \/ DevOps approach<\/li>\n<\/ul>\n<p><strong>Branch by abstraction<\/strong><\/p>\n<ul>\n<li>Simply don&#8217;t use branches (at least not necessarily one by iteration)<\/li>\n<li> <strong>No branch\u2192 No merge<\/strong><\/li>\n<li>All developments are carried out on the master<\/li>\n<li>Incomplete jobs are disabled by the use of feature flags<\/li>\n<li>The master is always stable, ready to be delivered<\/li>\n<\/ul>\n<p><strong>Feature Flipping<\/strong><\/p>\n<ul>\n<li>Ability to enable and disable features at any time<\/li>\n<li>Allows you to enable features for certain users only<\/li>\n<li>If there is a problem, there is no going back, only deactivation.<\/li>\n<li>Ability to push unfinished code<\/li>\n<li>Avoiding Merge Problems<\/li>\n<\/ul>\n<p><strong>Feature Flipping is a practice related to continuous deployment<\/strong><\/p>\n<ul>\n<li>Used by the big web: Flickr, Facebook, Gmail, Netflix, Yellow Pages<\/li>\n<\/ul>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;blue-list&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h2>RELEASE MANAGEMENT<\/h2>\n<ul>\n<li>Separating the concept of release from that of deployment<\/li>\n<li>Possibility of using a <strong>Blue-Green Deployments<\/strong> technique<\/li>\n<li><span>Possibility of using a <strong>Canary Release<\/strong> technique <\/span><\/li>\n<\/ul>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#edf8ff&#8221; custom_margin=&#8221;||30px||false|false&#8221; custom_padding=&#8221;20px|20px|20px|20px|false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; border_width_all=&#8221;1px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<blockquote>\n<p><strong>Blue-green deployments<\/strong><\/p>\n<\/blockquote>[\/et_pb_text][et_pb_image src=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/11\/blue-green.png&#8221; title_text=&#8221;blue-green&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#edf8ff&#8221; custom_padding=&#8221;20px|20px|20px|20px|false|false&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; border_width_all=&#8221;1px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<blockquote>\n<p><strong>Canary Release<\/strong><\/p>\n<\/blockquote>[\/et_pb_text][et_pb_image src=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/11\/canary-release.png&#8221; title_text=&#8221;canary-release&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; border_radii=&#8221;on|10px|10px|10px|10px&#8221; box_shadow_style=&#8221;preset3&#8243; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;blue-list&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<p><strong>Ability to use a Dark Launch technique<\/strong><\/p>\n<ul>\n<li>This pattern makes it possible to deploy the non-visible part of a feature, gradually simulating the traffic that will be generated by the use of the target feature.<\/li>\n<\/ul>\n<ul>\n<li>The objective of this pattern is to be able to validate the performance and scalability of the platform. By simulating the expected traffic gradually, we can prepare and optimize the platform so that the opening of the feature to end users takes place in the best conditions on D-Day.<\/li>\n<\/ul>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;blue-list&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h2>MONITORING<\/h2>\n<h3><strong>User Behavior Tracking<\/strong><\/h3>\n<ul>\n<li>Challenge users&#8217; use of the product\n<ul>\n<li>User Experience Questionnaire<\/li>\n<li>Feedback to adjust the <strong><a href=\"https:\/\/pmchampions.com\/en\/how-to-refine-the-product-backlog\/\">Product Backlog<\/a><\/strong><\/li>\n<\/ul>\n<\/li>\n<li>Monitor the use of functions<\/li>\n<\/ul>\n<h3><strong>Monitoring Environments<\/strong><\/h3>\n<ul>\n<li>Technical and functional: response time, memory usage, etc.<\/li>\n<\/ul>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text module_class=&#8221;blue-list&#8221; _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<h2> AUTOMATION<\/h2>\n<p> <strong>Goal <\/strong>: Reduce manual actions with little value<\/p>\n<ul>\n<li>Ensure process reproducibility<\/li>\n<\/ul>\n<p>In the end, it is possible to find actions to automate at any level of the project:<\/p>\n<ul>\n<li>Infrastructure<\/li>\n<li>Testing<\/li>\n<li>Generation of binaries and document deliverables<\/li>\n<li>Deployment<\/li>\n<li>Documentation<\/li>\n<\/ul>\n<p>Process automation ensures that everyone involved in the project is well understood<\/p>\n<p> <strong>Benefits <\/strong>: Faster feedback in case of errors and easier promotion of the application on different environments.<\/p>\n<p>&nbsp;<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row module_class=&#8221;pmc-bullet&#8221; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#ffdbc4&#8243; custom_margin=&#8221;30px||30px||false|false&#8221; custom_css_main_element=&#8221;overflow:visible&#8221; border_radii=&#8221;on|0.25rem|0.25rem|0.25rem|0.25rem&#8221; border_width_all=&#8221;1px&#8221; border_color_all=&#8221;#dee2e6&#8243; box_shadow_style=&#8221;preset3&#8243; box_shadow_vertical=&#8221;5px&#8221; box_shadow_blur=&#8221;15px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blurb title=&#8221;Complement&#8221; image=&#8221;https:\/\/pmchampions.com\/wp-content\/uploads\/2023\/10\/complementary.png&#8221; alt=&#8221;key point&#8221; icon_placement=&#8221;left&#8221; content_max_width_tablet=&#8221;&#8221; content_max_width_phone=&#8221;&#8221; content_max_width_last_edited=&#8221;on|phone&#8221; _builder_version=&#8221;4.22.0&#8243; _module_preset=&#8221;default&#8221; header_level=&#8221;h3&#8243; header_font=&#8221;Acme||||||||&#8221; header_font_size=&#8221;22px&#8221; background_color=&#8221;#edf8ff&#8221; image_icon_custom_margin=&#8221;1px|0px|0px|0px|false|false&#8221; image_icon_custom_padding=&#8221;||||false|false&#8221; width=&#8221;200px&#8221; width_tablet=&#8221;200px&#8221; width_phone=&#8221;200px&#8221; width_last_edited=&#8221;on|desktop&#8221; max_width=&#8221;200px&#8221; max_width_tablet=&#8221;200px&#8221; max_width_phone=&#8221;200px&#8221; max_width_last_edited=&#8221;on|desktop&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;-55px||||false|false&#8221; custom_margin_tablet=&#8221;-55px||||false|false&#8221; custom_margin_phone=&#8221;-55px||||false|false&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;5px|5px|0px|5px|false|false&#8221; child_filter_saturate=&#8221;200%&#8221; header_font_size_tablet=&#8221;22px&#8221; header_font_size_phone=&#8221;22px&#8221; header_font_size_last_edited=&#8221;on|phone&#8221; border_radii=&#8221;on|0.25rem|0.25rem|0.25rem|0.25rem&#8221; border_width_all=&#8221;1px&#8221; border_color_all=&#8221;#dee2e6&#8243; box_shadow_style=&#8221;preset3&#8243; box_shadow_horizontal=&#8221;6px&#8221; box_shadow_vertical=&#8221;11px&#8221; box_shadow_blur=&#8221;8px&#8221; text_shadow_style=&#8221;preset1&#8243; text_shadow_vertical_length=&#8221;0.15em&#8221; text_shadow_blur_strength=&#8221;0.3em&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_blurb][et_pb_text _builder_version=&#8221;4.23.1&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;|30px||30px|false|false&#8221; global_colors_info=&#8221;{}&#8221;]<p><strong><a href=\"https:\/\/circleci.com\/blog\/canary-vs-blue-green-downtime\/\" target=\"_blank\" rel=\"noopener\">To Deepen Your Knowledge!<\/a><\/strong><\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"<p>This article will explore the steps to kick-start a DevOps transformation, with a focus on versioning, automation, and monitoring.<\/p>\n","protected":false},"author":1,"featured_media":987515642,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[62,29,50],"tags":[24],"class_list":["post-987515658","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-advanced-agile-practices","category-agility","category-devops-2","tag-en"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/pmchampions.com\/en\/wp-json\/wp\/v2\/posts\/987515658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pmchampions.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pmchampions.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pmchampions.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pmchampions.com\/en\/wp-json\/wp\/v2\/comments?post=987515658"}],"version-history":[{"count":0,"href":"https:\/\/pmchampions.com\/en\/wp-json\/wp\/v2\/posts\/987515658\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pmchampions.com\/en\/wp-json\/wp\/v2\/media\/987515642"}],"wp:attachment":[{"href":"https:\/\/pmchampions.com\/en\/wp-json\/wp\/v2\/media?parent=987515658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pmchampions.com\/en\/wp-json\/wp\/v2\/categories?post=987515658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pmchampions.com\/en\/wp-json\/wp\/v2\/tags?post=987515658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}