<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: German Rodriguez Ortiz</title>
    <description>The latest articles on Forem by German Rodriguez Ortiz (@grmnsort).</description>
    <link>https://forem.com/grmnsort</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F71809%2Faa10f01c-f11d-47f2-87cf-dfb85054446f.jpg</url>
      <title>Forem: German Rodriguez Ortiz</title>
      <link>https://forem.com/grmnsort</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/grmnsort"/>
    <language>en</language>
    <item>
      <title>Making a case for english codebase to my boss</title>
      <dc:creator>German Rodriguez Ortiz</dc:creator>
      <pubDate>Wed, 17 Jun 2020 16:01:12 +0000</pubDate>
      <link>https://forem.com/grmnsort/making-a-case-for-english-codebase-to-my-boss-5e8o</link>
      <guid>https://forem.com/grmnsort/making-a-case-for-english-codebase-to-my-boss-5e8o</guid>
      <description>&lt;p&gt;Hi people :)&lt;/p&gt;

&lt;p&gt;I wanted to ask for your advice on a thing that I'm currently struggling with at my job.&lt;/p&gt;

&lt;p&gt;For a little context, I'm a web developer from Chile, and currently, I'm in charge of maintaining a very old vanilla PHP codebase. &lt;em&gt;(How old you say? It still has a &lt;strong&gt;JSON.php&lt;/strong&gt; and a &lt;strong&gt;PHP4 HTML parser&lt;/strong&gt; libraries on its assets that I just can't bear to delete from pure nostalgia. Lucky for me the code was barely refactored previously so It works on PHP 7)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;At the moment I managed to free some time so I can migrate this codebase to a Symfony project, but I'm having trouble trying to find "solid good reasons" to have the codebase entirely in English.&lt;/p&gt;

&lt;p&gt;Before this job, I was pretty much used to have my both my code and comments completely in English, and now having to propose this change to the "brass" I find myself without a reason to make this language change other than the classical:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"It´s the standard way"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"It kinda makes sense, since the framework is in English"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;"No need to think on tilde characters"&lt;/em&gt; (My heart dies little by little every time I see a &lt;em&gt;agno&lt;/em&gt; variable because we should not use &lt;em&gt;año&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To me, due to the circumstances, these reasons that make all the sense to me seem more like "aesthetic reasons" for this case, mainly because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's very likely that the code won´t be made public.&lt;/li&gt;
&lt;li&gt;It's even more likely that the dev team will be all "Chilean Spoken Natives" (Mandatory "Chilean Spanish is a different Spanish" reference xd).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But still, deep in my heart, I know that &lt;strong&gt;at least&lt;/strong&gt; the codebase should be in English :(&lt;/p&gt;

&lt;p&gt;So I ask you, dear dev community :)&lt;/p&gt;

&lt;p&gt;Have you ever had to make this choice?&lt;br&gt;
What reasons drove you to start/change to an all English codebase?&lt;br&gt;
has anyone failed on a similar issue? Why?&lt;/p&gt;

&lt;p&gt;Thanks for taking the time to help me with this thing :)&lt;/p&gt;

</description>
      <category>code</category>
      <category>help</category>
      <category>codebase</category>
    </item>
    <item>
      <title>Lessons learned by quitting both my jobs in the lapse of a week</title>
      <dc:creator>German Rodriguez Ortiz</dc:creator>
      <pubDate>Tue, 24 Sep 2019 14:05:02 +0000</pubDate>
      <link>https://forem.com/grmnsort/lessons-learned-by-quitting-both-my-jobs-in-the-lapse-of-a-week-86b</link>
      <guid>https://forem.com/grmnsort/lessons-learned-by-quitting-both-my-jobs-in-the-lapse-of-a-week-86b</guid>
      <description>&lt;p&gt;So, I wanted to write this because when facing the whole "quitting my job" process I had many misconceptions that I didn't know I had, and I don't know if it's just me because of the lack of experience doing it. I hope this helps someone who might be struggling with it.&lt;/p&gt;

&lt;p&gt;To give a little background, when I talk about 2 jobs, I used to work in two companies, a Project Management SAAS platform, and a "Quiz Management" Web App, I'm a co-founder of the latter and I came to work for the first one when they bought shares into my web platform, five years ago.&lt;/p&gt;

&lt;p&gt;At that time I was just starting my career as a developer, I learned a lot during these five years, but slowly I started to realize that some things weren't feeling right for me, then I started to see some red lights, but I resisted even when I started seeing things that at least to me were outright bad. And then two things happened that made me realize what was happening to me.&lt;/p&gt;

&lt;p&gt;A couple of friends had to prepare for some interviews, and we got together to review the process and solve some coding problems. After that, and an ungodly amount of beers later, I asked them why and how did they come to the decision of leaving their current jobs. Both told me it was about growing, on how sometimes where you are working you'll hit a ceiling on how far can you keep going, or trying to look for something better. To me it came as my first lesson:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;There is nothing wrong with wanting to keep growing. And if you can't do it where you are currently working, maybe it's time to leave.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The second thing happened at a party, I was talking to another friend and he offered me to come work with him. &lt;/p&gt;

&lt;p&gt;In the past, I've received some offers &lt;em&gt;(mild humble brag)&lt;/em&gt; but I've almost instantly rejected them because I didn't see myself working in another place than where I was. This time I seriously gave it a thought, in the end, it didn't go anywhere, but the fact that I was considering it was enough for me to realize the truth.&lt;/p&gt;

&lt;p&gt;I didn't want to accept it but I resisted because I was scared to start all over again. I was afraid because I didn't know how to quit my job and I wasn't sure what was going to happen, I thought people would get angry, that I was betraying some "trust thing"  between me and the bosses because we had a very personal treatment between one another, I actually thought that I would end fighting with someone over my reasons to leave. &lt;/p&gt;

&lt;p&gt;And so during the last months of the past year I finally made my mind and started to look for another job ( I probably will make a &lt;em&gt;lessons learned from looking for a job when you've never done it&lt;/em&gt; article) and luckily through tips friends gave me I managed to find and land a new job in early January. &lt;/p&gt;

&lt;p&gt;I don't know how it works in other countries, but here in Chile, the normal thing to do is to give a month's notice to your boss when you resign. And so there I was walking to my boss's office after asking to meet with him to present my resignation letter (he didn't know I was going to do that). I walked through the door and I sat in front of him, we start talking and I lay it on him, I say "this is probably the most adult thing I've done so far, but I'm here to present you my resignation". &lt;/p&gt;

&lt;p&gt;Little did I know, this was his first gig as a head developer, and never had to be on that situation, his surprise to it was something I was not expecting, and it actually felt more like I dropped a severed head on the table and no one knew what to do with it. We talked and I explained my reasons to leave, that I felt that during this five years with them I wasn't in the place where I wanted to be, I've hit a ceiling and felt I couldn't grow anymore. I was nervous and didn´t know what was going to happen, and then he talked.&lt;/p&gt;

&lt;p&gt;He told me he was glad that I found another job, as a friend and as my head developer. He understood my reasons and was really proud that I landed something better. There I got my second lesson:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;All those things you have in your head about what might happen are probably excuses for not doing it. It's not going to be the end of the world, be respectful and speak the truth and things will result in the only way the could result.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After some small talk, he called the "big boss", after all, he handles all the HR things and should be notified of this. He came, and we talked, but I saw something different this time, he was really calmed, but I mean like really really calmed, I realized then that he has done this many times and they're still here. Cue my third lesson:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A resignation is a big deal, but not that much. Many companies go through this and will survive you leaving. We are not that really important to the company, as a business.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;He took it like a champ, he thanked me for the time I've worked and said he will miss me :(. Then we started to plan the rest of the month so I can finish the most important things that have to be finished before my departure.&lt;/p&gt;

&lt;p&gt;And just like that, I did something I thought would be much much harder than what I thought and I had to do it again. &lt;/p&gt;

&lt;p&gt;To make things short, I called for a meeting with the rest of the board of my web app, I used the lessons learned and I respectfully explained why I was stepping down from the company and thanked them for everything. We talked and also planned what and how we were going to complete the process, but I was out. I finally made it, and it left me with yet another lesson:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's going to be weird every time you have to do it. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But that's it, I hope this can help anyone struggling about leaving their job. If could, I certainly believe you can do it. I believe in you :)&lt;/p&gt;

&lt;p&gt;I do have to say, It was a weird week, but in a good way :) . Thanks for taking the time of reading this.&lt;/p&gt;

</description>
      <category>story</category>
      <category>career</category>
    </item>
    <item>
      <title>A journey of self-discovery... and also how I learned how to use Git</title>
      <dc:creator>German Rodriguez Ortiz</dc:creator>
      <pubDate>Mon, 26 Nov 2018 05:14:57 +0000</pubDate>
      <link>https://forem.com/grmnsort/a-journey-of-self-discovery-and-also-how-i-learned-how-to-use-git-1n6</link>
      <guid>https://forem.com/grmnsort/a-journey-of-self-discovery-and-also-how-i-learned-how-to-use-git-1n6</guid>
      <description>&lt;p&gt;For my very first post I wanted to tell a story about how I learned to use and love Git, but I'd like to start much earlier on, when I was just learning about VCS tools.&lt;/p&gt;

&lt;p&gt;While studying I was exposed to SVN as my default VCS, we struggled with a couple of friends trying to understand its mysteries while developing the prototype of some forgotten web application. &lt;/p&gt;

&lt;p&gt;Our young and unworthy minds could barely grasp the very concept of trunks, branches, commits, and everything else in between. We would finally set on a single trunk and issue related branches to separate our work. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcweda19o0svvortqcoh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgcweda19o0svvortqcoh.jpg" alt="Actual picture of me and my friends preparing to merge some feature into the master trunk" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;
Actual picture of me and my friends preparing to merge some feature into the master trunk - circa 2008



&lt;p&gt;But our poor understanding led us to make several mistakes when merging our work, with a mixed set of problems, varying from methods getting scrambled, to complete classes being overwritten. Many "accidents" later we gave up on the idea of a VCS, we weren't capable of both handling its components and understanding how did that tool fit into our workflow. Thus I gave up entirely, that early on, on even using such tools.&lt;/p&gt;

&lt;p&gt;So I kept to my studies and from time to time developing, somehow, without any form of VCS, until I landed my first serious job (and to the date of this article, my current one). It was December 2013, and I was to join a small team of developers that had been using Git for just over a year. I was blown away when they explained to me what it was, how they used it and how simple it felt over my previous tragic experience with SVN.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fti0dh2gjmd4echle4115.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fti0dh2gjmd4echle4115.gif" width="280" height="184"&gt;&lt;/a&gt;&lt;/p&gt;
The inside of my head as I realized for how long I had lived a sinful life without using a VCS tool



&lt;p&gt;Back then the development workflow was centered around two main Git branches: &lt;em&gt;master&lt;/em&gt; that hosted all of the verified and stable code deployed to our production environment and &lt;em&gt;test&lt;/em&gt;, a branch that contained all the code that had to be reviewed by our QA team, this branch was deployed to a special "testing" environment. Also, each developer would create a feature/bugfix branch to solve particular issues, these branches were to be deployed on local instances of the system for every developer. Once each developer finished their work they would immediately merge it into the test branch. &lt;/p&gt;

&lt;p&gt;At certain times during the day, our head developer would deploy the contents of the &lt;em&gt;test&lt;/em&gt; branch into the testing environment. Once the testing was done and all of the content of the &lt;em&gt;test&lt;/em&gt; branch was considered as "approved", then our head developer would merge the &lt;em&gt;test&lt;/em&gt; branch into our &lt;em&gt;master&lt;/em&gt; branch and proceed to deploy all of its contents into the production environment. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4quhylts1s35e2iglzke.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4quhylts1s35e2iglzke.gif" width="500" height="264"&gt;&lt;/a&gt;&lt;/p&gt;
Our fearless head developer waiting to merge the test branch into the master branch



&lt;p&gt;Please consider that at that time I thought that was the most awesome thing I had ever seen ... &lt;/p&gt;

&lt;p&gt;This workflow had many problems, among them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No feature or bugfix branch was updated with the changes added to the master branch in between deploys. This caused massive conflicts for older features that sometimes implied making the whole thing again.&lt;/li&gt;
&lt;li&gt;All merging was done with fast-forward (at that time we had no idea what that meant) making the logs barely readable for tracking groups of changes made to the system.&lt;/li&gt;
&lt;li&gt;To accomplish the production deploy our head developer would have all of us stop merging our features and fixtures into the &lt;em&gt;test&lt;/em&gt; branch until he was done. Occasionally a developer would forget this and merge something into it causing what in my country slang we would call a "midfield goal" (mandatory soccer reference from a Chilean ... check) effectively deploying code straight into production without anyone from the QA team giving it a simple AOK.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a graph, it looked something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvd3b73c8lxdmv9ehneti.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvd3b73c8lxdmv9ehneti.png" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;
On this graph new commits are closer to the right



&lt;p&gt;Somehow we managed to grind through with this workflow up to mid 2014 when we finally hit critical mass, the poorly solved conflicts and the many "midfield goals" placed us on a really bad place, missing deadlines and not being totally capable of guaranteeing &lt;em&gt;stable-ish&lt;/em&gt; code on our production environment, we needed a change and we needed it fast. &lt;/p&gt;

&lt;p&gt;Enter Gitflow, descending upon us from the hands of our fearless head developer, a "new-to-us" way to organize our work and reclaim control of the mess we had on the master branch. We were to add the &lt;em&gt;development&lt;/em&gt; branch to separate the lifecycles of our feature and bugfix branches and use the &lt;em&gt;release&lt;/em&gt; branches to gradually add features to the system in a controlled and, hopefully, planned manner. Tags were to be used not only as flags to indicate the given status of the application in the git history but also as specific points to perform deployments to the production environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yurhxmhcje7zso4p9pm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yurhxmhcje7zso4p9pm.jpg" width="583" height="728"&gt;&lt;/a&gt;&lt;/p&gt;
How we saw our head developer, as he told us about GitFlow



&lt;p&gt;We had the added challenge that our &lt;em&gt;test&lt;/em&gt; branch had to stay, because it was still the only way we had to deploy code so it could be tested by our QA team, so in practice, we ended up with two Gitflows, one for &lt;em&gt;test&lt;/em&gt; branch and one for the &lt;em&gt;master&lt;/em&gt; branch. Bugfixes and releases would get merged into either branch given its current status.&lt;/p&gt;

&lt;p&gt;As a graph this new workflow looked like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp925r3hzp7cqo2wplod3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp925r3hzp7cqo2wplod3.png" width="671" height="687"&gt;&lt;/a&gt;&lt;/p&gt;
On this graph new commits are closer to the bottom



&lt;p&gt;We were also told that we would no longer have to wait to deploy merged code to the &lt;em&gt;test&lt;/em&gt; branch for bugfixes. If a developer finished, in addition to from immediately merging the branch into the test branch they would also deploy that code into the test environment.&lt;/p&gt;

&lt;p&gt;And for a while this was ok.&lt;/p&gt;

&lt;p&gt;You see, we thought that just by changing the branching strategy would solve all our problems, when we should have also reviewed our handling of the branches, specifically: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We still weren't properly updating old branches.&lt;/li&gt;
&lt;li&gt;We still weren't sure what this "fast-forward" strategy was.&lt;/li&gt;
&lt;li&gt;Conflicts were resolved without really paying much attention to what was really happening. At that time we weren't using diff tools to resolve merges, and a popular strategy in the office was just accepting the changes currently being merged into the target branch as the "correct" ones, instead of having to read and manually accepting either set of changes.&lt;/li&gt;
&lt;li&gt;The &lt;em&gt;test&lt;/em&gt; branch started to "clutter" with all the issue related branches we were constantly merging, causing many unnecessary conflicts and false positives on issues that weren't really solved. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;17 releases ... that was all it took us to crash and burn again. A year and a half had almost passed since we adopted this modified Gitflow and that last release took at least a week and a half to fully solve every single conflict it had. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3frkbv0xht7mx6fhsisa.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3frkbv0xht7mx6fhsisa.gif" width="240" height="211"&gt;&lt;/a&gt;&lt;/p&gt;
average production deploy during our GitFlow period



&lt;p&gt;We had to fix this mess and we weren´t sure what to do, we started by dropping GitFlow altogether, going back to our "2 main branch workflow",  and slowly trying to identify what went wrong. From there we started addressing each problem detected, one at a time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We learned about the different strategies to keep our development up to date.&lt;/li&gt;
&lt;li&gt;We established a proper channel to discuss the resolution of conflicts.&lt;/li&gt;
&lt;li&gt;We agreed to use non fast-forward merges so our code would be easily grouped an read.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With that in mind, we designed a workflow model, based on both our past experiences and things that we found from articles online, that could be adapted to our learning process and to the reality of our development process lifecycle.&lt;/p&gt;

&lt;p&gt;We ended up setting on a workflow that required:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;That each branch that hasn't been merged into &lt;em&gt;master&lt;/em&gt; must be updated relative to the last pushed tag.&lt;/li&gt;
&lt;li&gt;The branch update strategy was through rebasing.&lt;/li&gt;
&lt;li&gt;Any merge done into the &lt;em&gt;master&lt;/em&gt; or &lt;em&gt;test&lt;/em&gt; branches is done in "non-fast-forward" format, leaving an additional commit, properly identifying when an issue related branch was merged.&lt;/li&gt;
&lt;li&gt;The &lt;em&gt;test&lt;/em&gt; branch must be as close as possible in content to the latest pushed tag on &lt;em&gt;master&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also dropped the immediate test merge and deploy of any issue related branches and opted for a "wait until we really need this on the test environment" approach.&lt;/p&gt;

&lt;p&gt;Also, we adopted a procedure where whenever we push a new tag to master, we would delete the &lt;em&gt;test&lt;/em&gt; branch and started a new one by branching from the newly pushed tag.&lt;/p&gt;

&lt;p&gt;As a graph our new workflow looked like this:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Farldt4rzaglhl5375qsb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Farldt4rzaglhl5375qsb.png" width="376" height="777"&gt;&lt;/a&gt;&lt;/p&gt;
On this graph new commits are closer to the bottom



&lt;p&gt;With these changes we managed to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Almost completely eliminate big conflicts on either main branch. And reduce small conflicts from a "daily frequency on the majority of the issue related branches" to "a once a month on a couple issue related branches".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a simple and readable git history, where all the work performed for each issue could be easily identifiable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Almost completely eliminate false positives during the testing phase of the issues.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We've continued to tweak this model up to this very day, the last thing we've done is introduce Gitlab to the mix hoping to use Merge Requests and CI/CD in the near future. We hope to continue to grow and establish a more robust workflow with each passing day.&lt;/p&gt;

&lt;p&gt;As I look back on this story, I almost can't believe how much has passed and how much we had to work and learn to get to where we are. I'll try not to forget this as I continue to learn. &lt;/p&gt;

&lt;p&gt;Thanks for taking the time to read this :)&lt;/p&gt;

</description>
      <category>git</category>
      <category>beginners</category>
      <category>story</category>
      <category>horror</category>
    </item>
  </channel>
</rss>
