<?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>DEV Community: Ségolène Alquier</title>
    <description>The latest articles on DEV Community by Ségolène Alquier (@segolenealquier).</description>
    <link>https://dev.to/segolenealquier</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%2F389475%2F8c86785d-4738-4318-8be3-ee677c415d93.jpeg</url>
      <title>DEV Community: Ségolène Alquier</title>
      <link>https://dev.to/segolenealquier</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/segolenealquier"/>
    <language>en</language>
    <item>
      <title>How to reduce back-and-forths on a pull request ⚡️</title>
      <dc:creator>Ségolène Alquier</dc:creator>
      <pubDate>Tue, 10 Nov 2020 16:24:26 +0000</pubDate>
      <link>https://dev.to/doctolib/how-to-reduce-back-and-forths-on-a-pull-request-43gp</link>
      <guid>https://dev.to/doctolib/how-to-reduce-back-and-forths-on-a-pull-request-43gp</guid>
      <description>&lt;p&gt;Having your code reviewed is a great opportunity to improve but it can also be very &lt;strong&gt;time-consuming&lt;/strong&gt; at the beginning.&lt;/p&gt;

&lt;p&gt;The more comments or requested changes you get, the more time your pull request waits before being merged.&lt;br&gt;
If you work on a big codebase, this means... &lt;strong&gt;more possible merge conflicts!!&lt;/strong&gt; (Noooooooo 😱)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fzb6avriohcownr3izwn1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fzb6avriohcownr3izwn1.gif" alt="gif git merge conflict"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If your team is struggling with pull requests taking too long to merge because pull requests bounce back and forth a lot, here's 6 tricks you can apply to shorten the code review process:&lt;/p&gt;
&lt;h2&gt;
  
  
  1. ✂️ Don't hesitate to split user stories
&lt;/h2&gt;

&lt;p&gt;A user story is a &lt;strong&gt;description of a unit of work that needs to be done&lt;/strong&gt;. It is usually written from the &lt;strong&gt;perspective of the user.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A user story (or ticket) should be scoped to a single feature that a user can do in the system being built. &lt;/p&gt;

&lt;p&gt;Scoping a project in small tickets has the following benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;allows to &lt;strong&gt;ship features faster&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;keeps the &lt;strong&gt;team motivated&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;makes &lt;strong&gt;code reviews easier&lt;/strong&gt; (less changes on a pull request)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;At &lt;a href="https://dev.to/doctolib"&gt;Doctolib&lt;/a&gt;, all tickets are expected to take between 1 to 3 days of development. If a ticket is supposed to last longer, we have to split it&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  2. 💡 Clarify what needs to be done before development starts
&lt;/h2&gt;

&lt;p&gt;If there are still uncertainties regarding the feature, don't hesitate to discuss with the relevant people to &lt;strong&gt;find answers before you start coding&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;It's &lt;strong&gt;harder to keep an eye on the big picture when you start coding&lt;/strong&gt; (because there will be other issues to fix!), so you better start with a clear idea of what's expected.&lt;/p&gt;
&lt;h3&gt;
  
  
  From a functional point of view
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Discuss the output, edge cases, final design e.t.c. with the Product Manager&lt;/li&gt;
&lt;li&gt;Don't hesitate to challenge their vision if you think of another technical solution&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  From a technical point of view
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If you're not sure how to implement the feature, discuss the possible solutions with the other developers or your manager&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  3. 📝 Add context to your pull request
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add the &lt;strong&gt;ticket link&lt;/strong&gt; if there is one&lt;/li&gt;
&lt;li&gt;Add a &lt;strong&gt;short description&lt;/strong&gt; of the pull request if there is no ticket&lt;/li&gt;
&lt;li&gt;Explain why you chose &lt;strong&gt;this specific solution&lt;/strong&gt; if you hesitated with another approach&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add comments&lt;/strong&gt; if you feel it's necessary&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  4. 📍 Tag reviewers when the pull request is 100% ready
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Wait for &lt;strong&gt;all tests to pass&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;As the author of the PR, add the &lt;strong&gt;relevant comments and PR description&lt;/strong&gt; beforehand&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  5. 🧐 Contact the author of a comment you don't understand
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If a comment is not clear enough, reach out to the person and &lt;strong&gt;make sure you understand&lt;/strong&gt; what they meant. This will reduce the noise of back-and-forth clarifications in the PR and will allow you to get your answer quicker!&lt;/li&gt;
&lt;li&gt;Then &lt;strong&gt;document the answer in the conversation&lt;/strong&gt; in the pull request, to make sure everyone has access to the answer&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  6. 🙅 Don’t hesitate to challenge some comments
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;I know it can be hard to challenge or refuse a comment (especially as a junior or as a new joiner) BUT you can!&lt;/li&gt;
&lt;li&gt;Problem is: when applying all comments immediately, you can get the opposite feedback by the next reviewer… which can lead to a lot of back-and-forths.&lt;/li&gt;
&lt;li&gt;When not sure, you can &lt;strong&gt;check with a third person&lt;/strong&gt; if a comment is relevant or not. &lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;I hope you enjoyed this article! &lt;/p&gt;

&lt;p&gt;I am particularly interested in the topic of Code Reviews and reducing the back and forth on a pull request can definitely lighten the process!&lt;/p&gt;

&lt;p&gt;If you're interested in how to be a great reviewer too, I have written  an article about it: &lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;div class="ltag__link__content"&gt;
    &lt;div class="missing"&gt;
      &lt;h2&gt;Article No Longer Available&lt;/h2&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Also, feel free to reach out to me if you want to add anything on this topic or have some tips you’d like to share! I'd love to hear about them 🙌&lt;/p&gt;

</description>
      <category>github</category>
      <category>opensource</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Make your first pull request to an open-source project 💪</title>
      <dc:creator>Ségolène Alquier</dc:creator>
      <pubDate>Fri, 16 Oct 2020 16:15:20 +0000</pubDate>
      <link>https://dev.to/doctolib/make-your-first-pull-request-to-an-open-source-project-1m57</link>
      <guid>https://dev.to/doctolib/make-your-first-pull-request-to-an-open-source-project-1m57</guid>
      <description>&lt;p&gt;Does the world of open-source sound both mysterious and appealing to you? You're not alone! &lt;br&gt;
The best way to demystify it is to dare making your first pull request on a project!&lt;/p&gt;

&lt;p&gt;You don't know where to start? No worries, this article should help you do so 😌.&lt;/p&gt;




&lt;h2&gt;
  
  
  Find a project you want to contribute to 🎯
&lt;/h2&gt;

&lt;p&gt;Think about the tools that you enjoy using: whether it's a CSS or JavaScript library, a VSCode extension, a gem... &lt;br&gt;
Some of them could be open-source (it's the case for dev.to with &lt;a href="https://github.com/forem/forem" rel="noopener noreferrer"&gt;forem&lt;/a&gt; ✨)&lt;/p&gt;

&lt;p&gt;If you run out of ideas, you can get fresh ones by filtering by programming language for instance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/mungell/awesome-for-beginners" rel="noopener noreferrer"&gt;Github repo awesome-for-beginners&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://up-for-grabs.net" rel="noopener noreferrer"&gt;up-for-grabs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/firstcontributions/first-contributions" rel="noopener noreferrer"&gt;Github repo first-contributions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Find an issue you want to solve 🔮
&lt;/h2&gt;

&lt;p&gt;Ok now let's say &lt;strong&gt;you identified the project&lt;/strong&gt; you want to work on! Where do you start, right?&lt;/p&gt;

&lt;h3&gt;
  
  
  1 - 🔎 Find a good first issue
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Filter issues
&lt;/h4&gt;

&lt;p&gt;You can filter the issues by topic or level of difficulty. For a first PR, you can for instance look for the labels &lt;code&gt;easy&lt;/code&gt; or &lt;code&gt;first issue&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fz57m8lv62zymlxw9w6it.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fz57m8lv62zymlxw9w6it.png" alt="Click issues and then labels on Github repo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3bowocsxme3g6w9sneuq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3bowocsxme3g6w9sneuq.png" alt="Filter by labels"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Make sure no one is working on it
&lt;/h4&gt;

&lt;p&gt;Click on the issue and go through the comments to make sure no one is working on it. If the last comment dates back from a few weeks, you can probably comment and ask to do it!&lt;/p&gt;

&lt;h3&gt;
  
  
  2 - 🙋 Identify yourself
&lt;/h3&gt;

&lt;p&gt;Leave a comment to &lt;strong&gt;ask if you can work on the issue&lt;/strong&gt;. It's best if you wait for an approval before starting, as it can be frustrating to spend time working on something for nothing!&lt;/p&gt;

&lt;p&gt;This way you'll also notify others that you are working on this issue.&lt;/p&gt;

&lt;h3&gt;
  
  
  3 - ✅ Make sure you understand what's expected
&lt;/h3&gt;

&lt;p&gt;Don't hesitate to ask questions in the comments to make sure you are crystal clear on the following before starting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what's the expected result&lt;/li&gt;
&lt;li&gt;how you can test it&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Start coding! 🔥
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1 - 📥 Fork the repo
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftrnquym1bf4pr5f4joq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftrnquym1bf4pr5f4joq4.png" alt="Fork Github repo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will create a copy of the repository on your GitHub account.&lt;/p&gt;

&lt;p&gt;You can then clone the forked repository on your machine and let the fun begin! ✨&lt;/p&gt;

&lt;h3&gt;
  
  
  2 - 📚 Take a look at the doc
&lt;/h3&gt;

&lt;p&gt;Take a look at the README.md and the CONTRIBUTING.md if there is one. &lt;/p&gt;

&lt;p&gt;They should help you getting started and explain how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;create and name your branch&lt;/strong&gt;: each project has its own conventions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;start the server and set-up the dev environment&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3 - 💻  Code the feature, fix the issue,...
&lt;/h3&gt;

&lt;p&gt;Now that you got your server running, your environment setup, and your branch created... you can start coding! 🔥&lt;/p&gt;

&lt;h3&gt;
  
  
  4 - ✅ Don't forget the tests!
&lt;/h3&gt;

&lt;p&gt;Make sure you don't forget to test your feature or bugfix! &lt;/p&gt;

&lt;p&gt;Once again, take a look at the doc, it should explain how to add tests to the project.&lt;/p&gt;




&lt;h2&gt;
  
  
  Make your pull request 🙏
&lt;/h2&gt;

&lt;p&gt;Once you're satisfied with your work, git push what you've done on the remote repository.&lt;/p&gt;

&lt;p&gt;If you then go to the GitHub repo, it should now offer you to create a pull request!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzrndhqgq7vzo1xakhn3u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzrndhqgq7vzo1xakhn3u.png" alt="Create pull request github"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don't hesitate to &lt;strong&gt;provide details&lt;/strong&gt; on what you've done, how you proceeded or why you chose this technical solution rather than another, in order to help the people who will review it and make sure your PR gets merged!&lt;/p&gt;




&lt;p&gt;I hope you enjoyed this article and if it helps you take the plunge... I couldn't be happier! 🥳&lt;/p&gt;

&lt;p&gt;If there are still bits that are not clear or you want to add anything, please don't hesitate to comment!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>The art of giving and receiving feedback 💌</title>
      <dc:creator>Ségolène Alquier</dc:creator>
      <pubDate>Mon, 17 Aug 2020 16:31:38 +0000</pubDate>
      <link>https://dev.to/doctolib/the-art-of-giving-and-receiving-feedback-m74</link>
      <guid>https://dev.to/doctolib/the-art-of-giving-and-receiving-feedback-m74</guid>
      <description>&lt;p&gt;A few weeks ago @doctolib we had a great workshop about &lt;strong&gt;giving and receiving feedback.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We shared a lot of tips that I had never thought of and wanted to share them with you! 🤓&lt;/p&gt;




&lt;h2&gt;
  
  
  First thing first: what is a GOOD feedback?
&lt;/h2&gt;

&lt;p&gt;A feedback is a &lt;strong&gt;return of experience from another person on yourself that helps you grow&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 It has to be either: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;positive&lt;/strong&gt; or &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;constructive&lt;/strong&gt;: give the receiver insights into improving &lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How do you usually give or receive feedback as a developer?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;👯 With your &lt;strong&gt;peers&lt;/strong&gt;: 

&lt;ul&gt;
&lt;li&gt;via &lt;em&gt;code reviews&lt;/em&gt;, &lt;em&gt;peer-programming&lt;/em&gt;...&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;👔 With your &lt;strong&gt;manager&lt;/strong&gt;: 

&lt;ul&gt;
&lt;li&gt;during &lt;em&gt;1:1 sessions&lt;/em&gt;, &lt;em&gt;code reviews&lt;/em&gt;...&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;🎨 With your &lt;strong&gt;product owner or designer&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;during &lt;em&gt;planning poker estimation&lt;/em&gt;, when &lt;em&gt;working on a ticket&lt;/em&gt;, 
when &lt;em&gt;delivering a feature&lt;/em&gt;...&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;🤝 With your &lt;strong&gt;client(s) or user(s)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;through &lt;em&gt;user interviews&lt;/em&gt;, &lt;em&gt;A/B testing&lt;/em&gt;...&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why is it important to foster a feedback culture as a company?
&lt;/h2&gt;

&lt;p&gt;Implementing a feedback culture will: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌱 allow people to &lt;strong&gt;improve and grow&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🤲 reinforce &lt;strong&gt;trust&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;💪 boost &lt;strong&gt;motivation&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Plus it's a virtuous circle: you get feedback, you get better, you feel more motivated, you give feedback to others...&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How to give good feedback? 📤
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1 - 🙌 Be prepared!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Know what you will talk about and how you will illustrate your feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2 - ✨ Create the right context: time and environment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;For &lt;strong&gt;constructive feedbacks&lt;/strong&gt;: prefer 1:1 sessions&lt;/li&gt;
&lt;li&gt;For &lt;strong&gt;positive feedbacks&lt;/strong&gt;: spontaneous or public feedbacks are a good option if the person is comfortable with&lt;/li&gt;
&lt;li&gt;Make sure you are &lt;strong&gt;available&lt;/strong&gt;: present and listening&lt;/li&gt;
&lt;li&gt;Make sure your &lt;strong&gt;interlocutor is physically and emotionally ready&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Find a &lt;strong&gt;calm place&lt;/strong&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3 - 📊 Be factual!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Support your feedback with &lt;strong&gt;concrete examples and figures&lt;/strong&gt;, not only with your feelings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Praise efforts&lt;/strong&gt; and not just results&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4 - 🧐 Don't be judgemental
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Don't judge directly but &lt;strong&gt;talk about perception&lt;/strong&gt;: by using the &lt;strong&gt;first person 'I'&lt;/strong&gt;. You could for instance use &lt;code&gt;it seems to me that...&lt;/code&gt; rather than &lt;code&gt;you are this way...&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5 - 📋 Come up with concrete actions or solutions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Make sure you give &lt;strong&gt;clear next steps&lt;/strong&gt; for the person to improve&lt;/li&gt;
&lt;li&gt;But &lt;strong&gt;don't enforce them&lt;/strong&gt;: it's way better if you can define them together&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6 - 🗣 C-O-M-M-U-N-I-C-A-T-E
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ask how the other person feels&lt;/strong&gt; after receiving your feedback&lt;/li&gt;
&lt;li&gt;Make sure he/she &lt;strong&gt;understands and agrees on the actions&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Understand how the person works and what's the &lt;strong&gt;best way for them to receive feedback&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't make assumptions&lt;/strong&gt;: if you assume what the other people are thinking, you’ll never get their truth but only your version of it... which leads to misunderstandings! Better ask the other person how they feel &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7 - 📆 And there you go again
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Make it a habit in order to &lt;strong&gt;demystify the process&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;If you have a &lt;strong&gt;regular dedicated time&lt;/strong&gt;, you won't apprehend a 1:1 as a potential fearful encounter&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;On that topic, another Doctoliber wrote this fun article &lt;a href="https://medium.com/doctolib/how-to-ruin-a-1-1-56437b2409e2" rel="noopener noreferrer"&gt;How to ruin a 1:1&lt;/a&gt;, in which he lists the worst things you can do to sabotage a 1:1 😈.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How to get the most out of the feedback you receive? 📥
&lt;/h2&gt;

&lt;p&gt;Receiving feedback is not only hearing it without being mad or hurt. It also means being able to build on it, find meaningful actions and ask for advice.&lt;/p&gt;

&lt;h3&gt;
  
  
  1 - 👂 Practice active listening
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Avoid interrupting&lt;/strong&gt; your interlocutor&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2 - 💬 Take the point
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Make sure you understood&lt;/strong&gt;, rephrase if necessary&lt;/li&gt;
&lt;li&gt;But &lt;strong&gt;don't feel obligated to say something&lt;/strong&gt; back!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3 - 🙏 Thank the person
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;For &lt;strong&gt;having the courage&lt;/strong&gt; to give you feedback!&lt;/li&gt;
&lt;li&gt;Remember it can be &lt;strong&gt;uncomfortable on both sides&lt;/strong&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4 - 📝 Keep the feedback
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Write it down or just keep it in mind, so you can &lt;strong&gt;go back to it when necessary&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5 - 🏃 Don't avoid feedback
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Be proactive&lt;/strong&gt;: don't hesitate to ask for feedback&lt;/li&gt;
&lt;li&gt;Suggest having &lt;strong&gt;regular 1:1 sessions&lt;/strong&gt; when necessary&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 If you don't feel comfortable with a feedback you received:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;don't hesitate to &lt;strong&gt;reschedule&lt;/strong&gt; until you're prepared&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;change the scenery&lt;/strong&gt;: go grab a coffee, go for a walk...&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;




&lt;p&gt;I hope you enjoyed this article 🥳. &lt;/p&gt;

&lt;p&gt;I am particularly interested in the topic of Code Reviews and giving / receiving feedback is definitely key in that process!&lt;/p&gt;

&lt;p&gt;If you're interested too, I wrote an article about it: &lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;div class="ltag__link__content"&gt;
    &lt;div class="missing"&gt;
      &lt;h2&gt;Article No Longer Available&lt;/h2&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Also, feel free to reach out to me if you want to add anything on that topic or have tips! I'd love to hear about them 🙌&lt;/p&gt;

</description>
      <category>management</category>
      <category>communication</category>
      <category>team</category>
      <category>tips</category>
    </item>
    <item>
      <title>Which CSS libraries do you use with React? 🧐</title>
      <dc:creator>Ségolène Alquier</dc:creator>
      <pubDate>Tue, 21 Jul 2020 21:03:38 +0000</pubDate>
      <link>https://dev.to/segolenealquier/which-css-libraries-do-you-use-with-react-2pm5</link>
      <guid>https://dev.to/segolenealquier/which-css-libraries-do-you-use-with-react-2pm5</guid>
      <description>&lt;p&gt;Hi folks,&lt;/p&gt;

&lt;p&gt;I'm starting a new project on RoR / React and was wondering which CSS library to use.&lt;br&gt;
I've worked with Material-UI before but would consider trying something else!&lt;/p&gt;

&lt;p&gt;Which CSS libraries do you use for your React (or not) projects and why do you love them? 😍&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>react</category>
      <category>css</category>
    </item>
    <item>
      <title>How to make great code reviews? 🤝</title>
      <dc:creator>Ségolène Alquier</dc:creator>
      <pubDate>Thu, 28 May 2020 21:02:56 +0000</pubDate>
      <link>https://dev.to/doctolib/how-to-make-great-code-reviews-5h7b</link>
      <guid>https://dev.to/doctolib/how-to-make-great-code-reviews-5h7b</guid>
      <description>&lt;p&gt;Today at @doctolib we had a very interesting workshop about code reviews: why they matter, how to ensure they are done well and how they serve both the team and the product quality.&lt;/p&gt;

&lt;p&gt;I thought it would be interesting to share what I learned! 🤓&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a code review?
&lt;/h2&gt;

&lt;p&gt;Once you've finished working on a feature, you can &lt;code&gt;push&lt;/code&gt; your work on your branch and make a &lt;strong&gt;pull request&lt;/strong&gt;. Another developer will then look over your code and &lt;strong&gt;consider if your work can be merged to master&lt;/strong&gt; (or another branch you specify).&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the goals of a code review?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✨ &lt;strong&gt;Improve code quality and coding standards&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🕷 &lt;strong&gt;Find bugs as early as possible&lt;/strong&gt;: the sooner, the better&lt;/li&gt;
&lt;li&gt;🎓 &lt;strong&gt;Share knowledge and learn from others&lt;/strong&gt;: regardless of your level of seniority, you can learn a lot!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  An example of a good code review workflow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1 - 🛎 Know there is a pull request waiting for you
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Set &lt;strong&gt;notifications&lt;/strong&gt; on GitHub / GitLab&lt;/li&gt;
&lt;li&gt;Check your &lt;strong&gt;project management board&lt;/strong&gt; (Jira, Trello, Asana...)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;h4&gt;
  
  
  💻 As PR creator :
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tag&lt;/strong&gt; reviewers on Github to make sure they are notified&lt;/li&gt;
&lt;li&gt;Or &lt;strong&gt;ping&lt;/strong&gt; them directly on slack or whatever tool you use&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2 - ⏳ Take time: schedule the code review
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Set a &lt;strong&gt;dedicated time&lt;/strong&gt; to focus when you are assigned a PR to review&lt;/li&gt;
&lt;li&gt;Or you can even have &lt;strong&gt;recurring&lt;/strong&gt; dedicated times in your calendar&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;h4&gt;
  
  
  💻 As PR creator :
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Don't hesitate to &lt;strong&gt;suggest a slot&lt;/strong&gt; to the reviewer so you can go through the code together&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3 - 💡 Get to know the task
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Check the &lt;strong&gt;user story or bug report&lt;/strong&gt;: to fully understand the context and the expected behavior of a feature or fix&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask&lt;/strong&gt; someone who knows: the developer who coded it or the product owner in charge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the tests&lt;/strong&gt;: they can also be a good way to understand the expected behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;h4&gt;
  
  
  💻 As PR creator :
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Don't hesitate to add &lt;strong&gt;screenshots / gifs&lt;/strong&gt; of the feature so that it will be easier for the reviewer to understand what's going on&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  4 - 🕷 Find bugs: what to look for?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Make sure the whole story is covered&lt;/strong&gt;: check if the tests and implementation cover the edge cases you can think of&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance issues&lt;/strong&gt;: look at performance to make sure there is nothing slowing down&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conventions&lt;/strong&gt;: make sure the naming, syntax, etc... respect the standards defined&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code quality/clarity&lt;/strong&gt;: check if the code is easily readable and understandable and whether it could be refactored&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI design&lt;/strong&gt;: make sure the changes respect the wireframes and user experience&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: verify you don't see a security breach introduced by the PR&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;h4&gt;
  
  
  💻 As PR creator :
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;It's your responsibility to test as much as you can and ask for the PR only when it seems in order to you&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  5 - 🤝 Give feedback
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;It's &lt;strong&gt;harder to communicate in writing&lt;/strong&gt;: remember that text can easily be misinterpreted so don't hesitate to emphasize what's good and choose your words wisely&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask open questions&lt;/strong&gt;: to make sure you understand the code and decisions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Have empathy&lt;/strong&gt;: make sure you're making suggestions in a positive way and there is no frustration if things need to be modified&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Focus first on what matters the most&lt;/strong&gt;: don't spend too much time discussing minor syntax errors if you also spot serious bugs or security breaches&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Request changes&lt;/strong&gt; if necessary &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;h4&gt;
  
  
  💻 As PR creator :
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Remember it's your code that is criticized... not you!&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  6 - 🎉 Approve the pull request!
&lt;/h3&gt;

&lt;h4&gt;
  
  
  When should you approve a pull request?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;when the feature does what it is supposed to do&lt;/li&gt;
&lt;li&gt;when you feel comfortable maintaining the code&lt;/li&gt;
&lt;li&gt;when you feel comfortable debugging the code&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;This great workshop was made by &lt;a href="https://medium.com/@emmanuel.gautier"&gt;Emmanuel Gautier&lt;/a&gt;, thanks! 👏&lt;/p&gt;

&lt;p&gt;If you have other good practices, tips or tools for code reviews, I'd love to hear about them! 🙌&lt;/p&gt;

</description>
      <category>github</category>
      <category>productivity</category>
      <category>testing</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Mastering GIT step-by-step: collaborating on a project</title>
      <dc:creator>Ségolène Alquier</dc:creator>
      <pubDate>Sun, 24 May 2020 20:50:13 +0000</pubDate>
      <link>https://dev.to/segolenealquier/mastering-git-step-by-step-collaborating-on-a-project-2b2p</link>
      <guid>https://dev.to/segolenealquier/mastering-git-step-by-step-collaborating-on-a-project-2b2p</guid>
      <description>&lt;p&gt;Do you start freaking out when you have to use git commands? You're not alone, we've all been there. I still am to be honest 🙈. I am writing this as much for me as for you!&lt;/p&gt;

&lt;p&gt;In a previous article, I went over GIT basics. I'd recommend to read it first if you're not too familiar with git.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/segolenealquier" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q552VSd3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--bqWurcNk--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/389475/8c86785d-4738-4318-8be3-ee677c415d93.jpeg" alt="segolenealquier image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/segolenealquier/mastering-git-step-by-step-back-to-basics-1f44" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Mastering GIT step-by-step: back to basics&lt;/h2&gt;
      &lt;h3&gt;Ségolène Alquier ・ May 19 ・ 2 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#git&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#github&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#codenewbie&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;p&gt;Today, let's focus on the &lt;strong&gt;good practices when collaborating with a team on a project&lt;/strong&gt; 👯‍♀️👯‍♂️.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why is it a 🔥 topic on a coding project?
&lt;/h1&gt;

&lt;p&gt;Coding a project means you will have to create, edit and eventually delete toooons of files or repositories. If you're on your own, no big deal: you just save the changes, and &lt;code&gt;commit&lt;/code&gt; them when you're happy with.&lt;/p&gt;

&lt;p&gt;Easy-peasy. Now let's say that you start working with your coding crew on the same project. You'll create a few files and edit them, and the others will do the same on their computers. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you access their work &amp;amp; vice-versa?&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  The magic of remote repositories
&lt;/h1&gt;

&lt;p&gt;Remember the &lt;code&gt;git push&lt;/code&gt; command? This is what sends your files from your local repository (your computer) to a remote repository (a storage server).&lt;br&gt;
Everyone having access to this remote repository can then access the modified files. &lt;/p&gt;

&lt;p&gt;So if you create and update files on your computer and then &lt;code&gt;git push&lt;/code&gt; them on the remote repository, the others are now able to see these modifications and work on it. &lt;/p&gt;

&lt;p&gt;In order &lt;strong&gt;to get the updates&lt;/strong&gt;, the others will have to use the &lt;code&gt;git pull&lt;/code&gt; command. This command will detect the commits that they don't have on their local machine (new repos, new files, new lines, new code...) and import them. This way, &lt;strong&gt;they'll have the files YOU created on THEIR machine&lt;/strong&gt;.&lt;/p&gt;
&lt;h1&gt;
  
  
  Team collaboration with git: git branches 🌳
&lt;/h1&gt;

&lt;p&gt;I bet you wouldn't like it if someone was to step on your work and overwrite things you spent hours working on 😡. Basically that's what branches are made for: protect you from that pain!&lt;/p&gt;
&lt;h2&gt;
  
  
  What are git branches?
&lt;/h2&gt;

&lt;p&gt;As you start making commits, you’re given a &lt;strong&gt;master branch&lt;/strong&gt; (the default and main branch) that points to the last commit you made. &lt;br&gt;
&lt;strong&gt;Every time you commit, the master branch pointer moves forward automatically.&lt;/strong&gt; That pointer is called the HEAD.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;💡 The HEAD is the pointer to the current branch reference.
When you commit or switch to another branch, it moves to point to that new commit object.  
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Let's pretend you're committing your work regularly on master, your commits would be linear:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c5xjJaax--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3n2898ytrq0hk94evtaa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c5xjJaax--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/3n2898ytrq0hk94evtaa.png" alt="Alt Git master branch"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now if you're two to work on it, it's better if you both &lt;strong&gt;create a branch&lt;/strong&gt;. This way, you won't have to worry about what the other is doing. This is usually how branches are schematized: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IcyUiZkg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gnab2s29niuzoagfjxwo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IcyUiZkg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/gnab2s29niuzoagfjxwo.png" alt="Alt Git create branch"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;💡 Branches don't represent anything physical. They simply are pointers to a commit. 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  The basic git branches commands
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Get a list of existing branches
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;git branch&lt;/code&gt;: lists all local branches&lt;br&gt;
&lt;code&gt;git branch -a&lt;/code&gt;: lists all local + remote branches&lt;/p&gt;
&lt;h3&gt;
  
  
  Create a branch
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;the &lt;strong&gt;short&lt;/strong&gt; way: &lt;code&gt;git checkout -b &amp;lt;branch name&amp;gt;&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;in &lt;strong&gt;two commands&lt;/strong&gt;: &lt;code&gt;git branch &amp;lt;branch name&amp;gt;&lt;/code&gt; &amp;amp; &lt;code&gt;git checkout &amp;lt;branch name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both will create a branch with defined name AND moves the head to this branch&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;💡 When you create a new branch and switch to it, you'll find the exact same file system.
Why? Because the new branch is just a pointer to the previous commit.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Delete a branch
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;git branch -d &amp;lt;branch name&amp;gt;&lt;/code&gt;: deletes the specified branch&lt;/p&gt;

&lt;h2&gt;
  
  
  Merging git branches
&lt;/h2&gt;

&lt;p&gt;So far we have a notion of what git branches are and how they can be useful, how to create them and work on them. &lt;/p&gt;

&lt;p&gt;Now if my teammates and I have been respectively working and pushing on our own branches, &lt;strong&gt;how do we put our work together?&lt;/strong&gt; This is where &lt;strong&gt;merging&lt;/strong&gt; comes! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/W3PC5F30mb6Yo/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/W3PC5F30mb6Yo/giphy.gif" alt="Alt git merge gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The theory
&lt;/h3&gt;

&lt;p&gt;In a repo, every commit points to the same, original commit: the &lt;strong&gt;root commit&lt;/strong&gt;. This means there will always be a common ancestor for two commits.&lt;/p&gt;

&lt;p&gt;When merging two branches, git will &lt;strong&gt;look for that common ancestor and compare the filesystems&lt;/strong&gt; between this commit and the two child commits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;if both commits impacted an area with different changes&lt;/strong&gt;: you trapped yourself with a merge-conflict. No worries, you can check and handle it manually&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;otherwise&lt;/strong&gt;: you're good to go, the two branches are merged!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the branches are merged, a new commit is made with the changes from both branches integrated into the new snapshot. &lt;/p&gt;

&lt;h3&gt;
  
  
  The git collaboration workflow &amp;amp; commands
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Prepare for merging
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;git status&lt;/code&gt;: to make sure that HEAD is pointing to the correct receiving branch. If needed, execute &lt;code&gt;git checkout &amp;lt;branch name&amp;gt;&lt;/code&gt; to switch to the receiving branch. &lt;/p&gt;

&lt;h4&gt;
  
  
  Make sure you have the latest remote commits
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;git pull&lt;/code&gt;: on both receiving &amp;amp; merging branches&lt;/p&gt;

&lt;h4&gt;
  
  
  Merging
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;git merge &amp;lt;branch name&amp;gt;&lt;/code&gt;: this will merge the specified branch into your active branch (master by default)&lt;/p&gt;

&lt;p&gt;And voilààà your work is merged. Take some rest, you deserve it! 🎉&lt;br&gt;
If you want to continue, then just repeat that process!&lt;/p&gt;

&lt;h2&gt;
  
  
  Git best practices
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/icEKqWbHBxSXS/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/icEKqWbHBxSXS/giphy.gif" alt="Alt git merge gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd recommend the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;give your commits explicit names&lt;/strong&gt;: to be able to return to the one you need if necessary 
(&lt;em&gt;I am a big fan of commits named "Please work for once" but trust me, they won't help much&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;make a &lt;strong&gt;branch for each feature&lt;/strong&gt; (rather than for each person)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;give the branches explicit names&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;clean your branches regularly&lt;/strong&gt;: check with your mates which branches are not used anymore and delete them&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;That's it for the basics of collaborating on a development project with git. Thanks to branches, you can develop features independently from the others without overwriting on your teammates' work! 🤝&lt;/p&gt;

&lt;p&gt;I hope you got to understand those concepts better and it will help you coding with others. &lt;/p&gt;

&lt;p&gt;In the next article(s), I want to cover &lt;strong&gt;some more advanced git concepts &amp;amp; commands&lt;/strong&gt;! Stay tuned if you're interested in that topic 👋&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Mastering GIT step-by-step: back to basics</title>
      <dc:creator>Ségolène Alquier</dc:creator>
      <pubDate>Tue, 19 May 2020 18:11:22 +0000</pubDate>
      <link>https://dev.to/segolenealquier/mastering-git-step-by-step-back-to-basics-1f44</link>
      <guid>https://dev.to/segolenealquier/mastering-git-step-by-step-back-to-basics-1f44</guid>
      <description>&lt;p&gt;Do you start freaking out when you have to use git commands? You're not alone, we've all been there. I still am to be honest 🙈. I am writing this as much for me as for you! &lt;/p&gt;

&lt;p&gt;So I wanted to make a few articles to simply go over the basics and some less known - yet useful - commands. Let's go! 🤓&lt;/p&gt;

&lt;h1&gt;
  
  
  What's git?
&lt;/h1&gt;

&lt;p&gt;It's a &lt;strong&gt;version control tool that allows you to take snapshots of your files at specific moments&lt;/strong&gt;, so that you can easily go from a version to another. &lt;/p&gt;

&lt;p&gt;Since it's not tangible, it can be hard to apprehend. But you can think of it as the revision history feature on Google Docs for example.&lt;br&gt;
You can see all the modifications that were made on a document and choose to go back to the state of the document at any point of those revisions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cBE5Y-kG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://zappy.zapier.com/22818562-FAAC-4B69-9C9E-10E7E015FE80.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cBE5Y-kG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://zappy.zapier.com/22818562-FAAC-4B69-9C9E-10E7E015FE80.png" alt="alt Google doc history" title="Google doc history"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Who uses it &amp;amp; why?
&lt;/h1&gt;

&lt;p&gt;It is mainly used by software engineers in order to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;keep track of files &amp;amp; files' modifications&lt;/li&gt;
&lt;li&gt;be able to rollback to a previous version of your files if a bug occured&lt;/li&gt;
&lt;li&gt;have several people working on a same project AND at the same time&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  The basic git commands: add, commit &amp;amp; push
&lt;/h1&gt;

&lt;p&gt;In order to understand the basic commands, we need to understand the different component of a .git project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Workspace&lt;/strong&gt;: your file system, where you can view and modify files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Staging area&lt;/strong&gt;: where git keeps the modified files before they are committed. After committing, your Staging area will be empty.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local repository&lt;/strong&gt;: it is the area that saves everything, where you will find all of your checkpoints or &lt;em&gt;commits&lt;/em&gt; *.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;💡 A *COMMIT IS A SNAPSHOT OF ALL YOUR FILES AT A POINT IN TIME
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Remote repository&lt;/strong&gt;: server where changes made to files are uploaded (usually shared with collaborators).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--50GqNRZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cn2b2qqygh9sl8f2xg15.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--50GqNRZj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/cn2b2qqygh9sl8f2xg15.png" alt="Alt Git schema"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can see the 4 different components on the diagram: &lt;strong&gt;workspace, staging area, local repository &amp;amp; remote repository&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  But how do we move our files from one stage to the other?
&lt;/h2&gt;

&lt;p&gt;By using the 3 following commands (also on the diagram). And yes, the order matters:&lt;/p&gt;

&lt;p&gt;1 - &lt;code&gt;Git add &amp;lt;filename&amp;gt;&lt;/code&gt;: the command will stage the file&lt;br&gt;
💡 If you want to add all files, you can type &lt;code&gt;Git add *&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;2 - &lt;code&gt;Git commit -m "commit message"&lt;/code&gt;: the command will take all the files in the staging area and save them in the commit (snapshot). Your modified files are now saved, yaaayyy 🎉!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;💡 WRITE IN THE COMMIT MESSAGE WHAT MODIFICATIONS YOU MADE. 
THIS WILL BE USEFUL IF YOU NEED TO GO BACK TO A SPECIFIC COMMIT.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;3 - &lt;code&gt;Git push&lt;/code&gt;: this command will send the modified files to a distant instance - the remote repository - and make it accessible to other developers&lt;/p&gt;




&lt;p&gt;That's it for the basics. I hope you don't hate git yet &amp;amp; you got to understand some concepts better.&lt;/p&gt;

&lt;p&gt;In the next articles, I want to cover the &lt;strong&gt;good practices when working in a team (branches, merging,...), &amp;amp; some other useful commands&lt;/strong&gt;! Stay tuned if you're interested in that topic 👋&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
