{"id":32099,"date":"2021-01-27T10:35:00","date_gmt":"2021-01-27T09:35:00","guid":{"rendered":"https:\/\/blexin.com\/?p=32099"},"modified":"2021-05-20T20:11:20","modified_gmt":"2021-05-20T18:11:20","slug":"say-goodbye-to-pr-with-the-trunk-based-development","status":"publish","type":"post","link":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/","title":{"rendered":"Say goodbye to PR with the Trunk Based Development"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" data-attachment-id=\"32094\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/attachment\/2_21_1105x656-blog-tbd-a-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&amp;ssl=1\" data-orig-size=\"1105,656\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"2_21_1105x656 blog TBD A\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A.png?fit=1024%2C608&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A.png?resize=1024%2C608&#038;ssl=1\" alt=\"\" class=\"wp-image-32094\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A-1024x608.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A-980x582.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A-480x285.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A few months ago, I started working on a new project, and the team decided to insert some innovative technology and try a new branching model called Trunk Based Development (TBD).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We usually have a &#8220;Story&#8221; backlog to work on. The work is divided into&nbsp;a&nbsp;two-week &#8220;Sprint&#8221; and,&nbsp;with a meeting at the beginning of each sprint,&nbsp;we decide which Story to work on. At that point, the developers are free to&nbsp;work on&nbsp;any&nbsp;Story in the &#8220;To Do&#8221; state,&nbsp;keeping an eye on priorities decided during the sprint meeting.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The branching model we usually use is a variant of the&nbsp;well-known&nbsp;&#8220;GitHub&nbsp;Flow&#8221;:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>When&nbsp;you&nbsp;start the&nbsp;development&nbsp;on a Story, a&nbsp;branch&nbsp;is&nbsp;created&nbsp;from master.&nbsp;&nbsp;<\/li><li>You&nbsp;work on&nbsp;that&nbsp;branch&nbsp;without&nbsp;thinking&nbsp;about&nbsp;anything&nbsp;else. Development can last hours, days, weeks.&nbsp;When&nbsp;the work&nbsp;is&nbsp;finished, the code&nbsp;is&nbsp;pushed&nbsp;to the server, and the build tool (Jenkins)&nbsp;tries&nbsp;to build and&nbsp;run&nbsp;the&nbsp;tests.<\/li><li>If everything works, a Pull Request (PR) is opened to the branch master, which all team members can review. Those who want can make comments by entering a comment on the PR and, if necessary, changes are made and then pushed, waiting for new approvals from the team.&nbsp;<\/li><li>Once the PR has been approved, the merge on the branch master is made and the Continuous Integration (CI) process starts a build creating the &#8220;package&#8221; to deploy on different application environments.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The problem with this workflow is the part of PR code reviews opened. The mechanism by which the code is reviewed (consisting of comments, responses, implementations, and feedbacks) can sometimes last weeks: actually, those who review the code usually also manage other activities, since there are not review-dedicated persons, and this can significantly slow down the development cycle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To overcome this problem, we decided to use the TBD, which consists of pushing the code directly onto the branch master, with no need to create other branches. I know it may sound weird, but keep read on.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"366\" data-attachment-id=\"32097\" data-permalink=\"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/attachment\/tbd_1-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/tbd_1.jpeg?fit=640%2C366&amp;ssl=1\" data-orig-size=\"640,366\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"tbd_1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/tbd_1.jpeg?fit=640%2C366&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/tbd_1.jpeg?resize=640%2C366&#038;ssl=1\" alt=\"\" class=\"wp-image-32097\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2021\/01\/tbd_1.jpeg 640w, https:\/\/blexin.com\/wp-content\/uploads\/2021\/01\/tbd_1-480x275.jpeg 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 640px, 100vw\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How can we make TBD?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Obviously it is not enough pushing on master: in order to have a real advantage from this model, you must respect some rules.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Robust<\/strong><strong>&nbsp;<\/strong><strong>commits<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each commit must leave the application in a &#8220;working&#8221; state, and no tests must fail, so you have to organize the development of your feature, especially if it is large, to achieve this result.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pair<\/strong><strong>&nbsp;Programming<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At&nbsp;least&nbsp;two&nbsp;pairs&nbsp;of&nbsp;eyes&nbsp;on&nbsp;each&nbsp;line of code:&nbsp;this&nbsp;way,&nbsp;the code&nbsp;is&nbsp;subjected&nbsp;to the control of multiple people.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Feature Flags<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It can happen, during the development, that the branch master contains features that have not yet been tested, and that we still do not want to bring to the attention of the business. We can disable them using feature flags technique (I recommend this interesting article by Martin Fowler:&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/martinfowler.com\/articles\/feature-toggles.html\" target=\"_blank\">Feature Toggles (aka Feature Flags) (martinfowler.com)<\/a>.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Design Review<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No longer having the pull request mechanism, the code review is postponed to a weekly meeting in which to discuss the various implementations made. In this meeting, a presenter explains what has been developed and the other participants make any comments. Changes can happen directly during the meeting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How&nbsp;our&nbsp;development&nbsp;has&nbsp;improved<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Starting with this approach was difficult. The main problem to deal with is to find the right size of commits to push. Initially, some team members were not confident in pushing small, robust commits, but rather preferred a single push as the feature was completed, causing several problems in code merging.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Despite this, after the first phase of adjustment, the team has found many benefits from this model, and I try to list some of them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The code&nbsp;<\/strong><strong>belongs<\/strong><strong>&nbsp;to the team<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When a feature&#8217;s code is written by a single person, who follows its entire loop up to merge on master, there is a tendency to believe that code is a &#8220;property&#8221; of the developer who wrote it. Using the TBD, the code belongs to the team because, with each commit you see your application growing, perhaps refactoring on a part of code previously pushed by your colleague, making the development more dynamic and team.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Fast feedback<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With the PR mechanism, feedbacks only come as the work has been done. The code review stage is complicated to manage: our team doesn\u2019t have persons dedicated, then we must find out the time to make it. Once done, if anyone finds something he\/she\u2019s not sure about, he\/she leaves a comment, and the other person in charge has to find the time to view it and answer if necessary. This process requires a strong interaction among different parts, and it may also be motivating, but it is usually a mere approval. On the contrary, when there is a continuous commit flow, code reviews are always in progress, so choosing a different path can be easier to implement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Better&nbsp;<\/strong><strong>f<\/strong><strong>eedback<\/strong><strong>&nbsp;<\/strong><strong>quality<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With PR, comments come in the form of comments, written in a text box, with all the difficulties of the case. The reviewer may not be able to express his point of view correctly, or the developer may not grasp the exact reason for the comment, considering it almost a personal attack.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Having the opportunity to discuss the code in real time, perhaps while doing Pair Programming, certainly avoids misunderstandings and makes development smoother.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Team&nbsp;<\/strong><strong>development<\/strong><strong>&nbsp;<\/strong><strong>methodology<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pair programming and TBD lead the team to create a development methodology shared by everyone, making subsequent code reviews simple and fast.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Propensity<\/strong><strong>&nbsp;to&nbsp;<\/strong><strong>refactor<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When a PR gets the required approvals and is brought to the branch master, it tends to be considered as finished, although the pushed code would need some refactoring. You try to avoid it mainly to prevent problems with merge, which may be necessary. When development is continuous, refactoring small pieces of code becomes easier and there is no need to take the risk of solving complex merge conflicts.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Visibility<\/strong><strong>&nbsp;<\/strong><strong>at<\/strong><strong>&nbsp;<\/strong><strong>everyone&#8217;s<\/strong><strong>&nbsp;work<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When developments take place in a separate branch they are invisible until the branch is pushed. If, on the other hand, everyone pushes on the branch master there is the possibility, in real time, to see which features the team works on at that time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Does TBD&nbsp;fit&nbsp;all&nbsp;teams?<\/strong>&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I want to clarify one point: TBD development in itself offers no objective advantage and if you think about it, it is nothing special. What instead gives objective advantages are the practices that you need to put in place to be able to perform trunk-based development.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a team to be able to work directly on masters, everyone needs to be able to work without breaking the code, everyone knows how to write robust tests, and everyone knows how to work together effectively.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How to&nbsp;<\/strong><strong>get<\/strong><strong>&nbsp;<\/strong><strong>started<\/strong><strong>?<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are currently developing in feature branches and want to start using TBD, I would recommend two things to you:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>Fortify&nbsp;the way&nbsp;you&nbsp;write&nbsp;tests<\/strong>.&nbsp;Try to work to get to a build that you think has no problems, even if you can never be sure. Try using the TDD (Test Driven Development) technique, so you&#8217;ll realize you&#8217;re putting in an amount of testing that almost manages to cover everything your application can do.&nbsp;<\/li><li><strong>Do&nbsp;Pair&nbsp;Programming<\/strong>.&nbsp;&nbsp;Deleting the Pull Request and Code Review process is critical that the code is developed under the control of at least two people.<\/li><li><strong>Code&nbsp;analysis:<\/strong>&nbsp;It is possible to integrate static code analysis mechanisms into your CI (we use Sonarqube). We can thus make the style rules enforcing, simplifying even more part of the review process.<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">I&nbsp;hope&nbsp;I&nbsp;intrugued&nbsp;you&nbsp;about&nbsp;a new way of&nbsp;developing.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">See you at the&nbsp;next&nbsp;article&nbsp;<\/p>\n\n\n\n\n[et_pb_section global_module=\"26253\"][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"<p>A field experience using this development methodology <\/p>\n","protected":false},"author":196716246,"featured_media":32094,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_crdt_document":"","inline_featured_image":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","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[688637524],"tags":[],"class_list":["post-32099","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Say goodbye to PR with the Trunk Based Development - Blexin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Say goodbye to PR with the Trunk Based Development - Blexin\" \/>\n<meta property=\"og:description\" content=\"A field experience using this development methodology\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-27T09:35:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-20T18:11:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i1.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1105\" \/>\n\t<meta property=\"og:image:height\" content=\"656\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Francesco de Vicariis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Francesco de Vicariis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/\"},\"author\":{\"name\":\"Francesco de Vicariis\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#\\\/schema\\\/person\\\/6f8514ed8b0d3be31369ca5436c4781f\"},\"headline\":\"Say goodbye to PR with the Trunk Based Development\",\"datePublished\":\"2021-01-27T09:35:00+00:00\",\"dateModified\":\"2021-05-20T18:11:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/\"},\"wordCount\":1425,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&ssl=1\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/\",\"name\":\"Say goodbye to PR with the Trunk Based Development - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&ssl=1\",\"datePublished\":\"2021-01-27T09:35:00+00:00\",\"dateModified\":\"2021-05-20T18:11:20+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#\\\/schema\\\/person\\\/6f8514ed8b0d3be31369ca5436c4781f\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&ssl=1\",\"width\":1105,\"height\":656},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/blog-en\\\/say-goodbye-to-pr-with-the-trunk-based-development\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Say goodbye to PR with the Trunk Based Development\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/blexin.com\\\/en\\\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blexin.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blexin.com\\\/en\\\/#\\\/schema\\\/person\\\/6f8514ed8b0d3be31369ca5436c4781f\",\"name\":\"Francesco de Vicariis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g\",\"caption\":\"Francesco de Vicariis\"},\"url\":\"https:\\\/\\\/blexin.com\\\/en\\\/author\\\/francesco-devicariisblexin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Say goodbye to PR with the Trunk Based Development - Blexin","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:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/","og_locale":"en_US","og_type":"article","og_title":"Say goodbye to PR with the Trunk Based Development - Blexin","og_description":"A field experience using this development methodology","og_url":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/","og_site_name":"Blexin","article_published_time":"2021-01-27T09:35:00+00:00","article_modified_time":"2021-05-20T18:11:20+00:00","og_image":[{"width":1105,"height":656,"url":"https:\/\/i1.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&ssl=1","type":"image\/png"}],"author":"Francesco de Vicariis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Francesco de Vicariis","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/"},"author":{"name":"Francesco de Vicariis","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/6f8514ed8b0d3be31369ca5436c4781f"},"headline":"Say goodbye to PR with the Trunk Based Development","datePublished":"2021-01-27T09:35:00+00:00","dateModified":"2021-05-20T18:11:20+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/"},"wordCount":1425,"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&ssl=1","articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/","url":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/","name":"Say goodbye to PR with the Trunk Based Development - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&ssl=1","datePublished":"2021-01-27T09:35:00+00:00","dateModified":"2021-05-20T18:11:20+00:00","author":{"@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/6f8514ed8b0d3be31369ca5436c4781f"},"breadcrumb":{"@id":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&ssl=1","width":1105,"height":656},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/en\/blog-en\/say-goodbye-to-pr-with-the-trunk-based-development\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/en\/"},{"@type":"ListItem","position":2,"name":"Say goodbye to PR with the Trunk Based Development"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/en\/#website","url":"https:\/\/blexin.com\/en\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blexin.com\/en\/#\/schema\/person\/6f8514ed8b0d3be31369ca5436c4781f","name":"Francesco de Vicariis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g","caption":"Francesco de Vicariis"},"url":"https:\/\/blexin.com\/en\/author\/francesco-devicariisblexin-com\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2021\/01\/2_21_1105x656-blog-TBD-A.png?fit=1105%2C656&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-8lJ","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/32099","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/users\/196716246"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/comments?post=32099"}],"version-history":[{"count":28,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/32099\/revisions"}],"predecessor-version":[{"id":32913,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/posts\/32099\/revisions\/32913"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media\/32094"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/media?parent=32099"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/categories?post=32099"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/en\/wp-json\/wp\/v2\/tags?post=32099"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}