<?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: Justus Romijn</title>
    <description>The latest articles on Forem by Justus Romijn (@justusromijn).</description>
    <link>https://forem.com/justusromijn</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%2F420436%2F2714200c-c75a-4493-9256-57936326bbbf.jpeg</url>
      <title>Forem: Justus Romijn</title>
      <link>https://forem.com/justusromijn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/justusromijn"/>
    <language>en</language>
    <item>
      <title>The zero bug policy: in practice</title>
      <dc:creator>Justus Romijn</dc:creator>
      <pubDate>Mon, 21 Mar 2022 07:21:24 +0000</pubDate>
      <link>https://forem.com/justusromijn/the-zero-bug-policy-in-practice-1dmj</link>
      <guid>https://forem.com/justusromijn/the-zero-bug-policy-in-practice-1dmj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a follow up to my &lt;a href="https://dev.to/justusromijn/the-zero-bug-policy-31d"&gt;original post about implementing a zero-bug-policy&lt;/a&gt;. With my team at Rabobank, we've embraced this policy and I want to share our experience from the last year.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A year has passed
&lt;/h2&gt;

&lt;p&gt;We started out with a backlog littered with about 140 bugs. We were aware that a part of those could be closed instantly, for a couple of reasons. Basically it came down to try to reproduce the bug, and if it was not possible, we would log the reason and close it. Some example reasons to close issues were: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;bug already fixed (side effect of a refactor, for example)&lt;/li&gt;
&lt;li&gt;a duplicated ticket (people don't look for duplicates when reporting, I don't blame them)&lt;/li&gt;
&lt;li&gt;the bug context no longer exists (feature removed or changed so the behaviour is gone)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Initial scan
&lt;/h3&gt;

&lt;p&gt;It took some serious effort to go through all these tickets, some of which had been opened years before. But it was really satisfying to be able to close about 40 or so tickets, just because the administration was messy. This left us with something over 100 bugs that were valid.&lt;/p&gt;

&lt;h3&gt;
  
  
  From many to not so many
&lt;/h3&gt;

&lt;p&gt;About 100 open bugs can still be daunting: how do you ever get to zero? Our goal for each sprint was to at least have less bugs on the backlog than at the start of the sprint. At the end of each sprint, we would log the closed bugs, opened bugs, and the grand total open. During demo's we were transparent about the process so everyone could see how we were doing. It also helps you as a team to have an extra reason to do well on this part: a lot of stakeholders really liked our progress so we really wanted to keep that up!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example of one of our bug status reports during sprint review&lt;/em&gt; &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Critical&lt;/th&gt;
&lt;th&gt;Major&lt;/th&gt;
&lt;th&gt;Minor&lt;/th&gt;
&lt;th&gt;Trivial&lt;/th&gt;
&lt;th&gt;Total&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Open at start&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;New reports&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Closed&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open at end&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In periods where we had less demand for new features or changes, there was room for specific focus on bug fixing and we were able to get it down with big jumps: this really boosts team morale!&lt;/p&gt;

&lt;h3&gt;
  
  
  Having zero bugs
&lt;/h3&gt;

&lt;p&gt;Somewhere at the end of last year we finally made it to the zero! It felt as a big achievement, and it had some very positive side effects as well:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;less pressure from stakeholders that try to get attention to open issues: we didn't have any!&lt;/li&gt;
&lt;li&gt;We jump immediately on new bugs, and because of this we are pretty fast to solve them: if you take on bugs that are still hot from the plate, you can get context and background information very easily, and the reporters are very much willing to help out.&lt;/li&gt;
&lt;li&gt;A clear, up-to-date backlog!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Note: Having zero bugs on the backlog does not mean they don't exist: this policy is just meant to take bugs heads on when they are reported.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;As a team we really take pride in having no open bugs, and it gives us also peace of mind when shipping new code and working on new features. It also saves much time during planning sessions (bugs always must be picked up) and if a bug is much more trouble or reveals a bigger issue inside, you are very quickly made aware of it. &lt;/p&gt;

&lt;p&gt;I'll try to advocate for this policy as much as possible, as my personal experience, as well as that of our team (including our product owner) has been very positive!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>agile</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The zero bug policy</title>
      <dc:creator>Justus Romijn</dc:creator>
      <pubDate>Sun, 04 Apr 2021 17:45:43 +0000</pubDate>
      <link>https://forem.com/justusromijn/the-zero-bug-policy-31d</link>
      <guid>https://forem.com/justusromijn/the-zero-bug-policy-31d</guid>
      <description>&lt;p&gt;Most software developers that have been around for a while are  familiar with the &lt;a href="https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/"&gt;Joel test&lt;/a&gt;. Some companies like to show off with a maximum score (12) on this test to attract high profile developers. A lot of best practices that are included in the scoring system are commonplace in the organisations that I've worked for, but I'd like to take a look at item number five.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;5: Do you fix bugs before writing new code? &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/7eZ3FVNSBOhVK/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="This is Mambo Number Five" src="https://i.giphy.com/media/7eZ3FVNSBOhVK/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've never worked somewhere where this question could be answered with "yes", so I'd like to make this practice top of mind again.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 'Zero Bug Policy' explained
&lt;/h2&gt;

&lt;p&gt;First, let us get a misconception out of the way. The name of this policy is a bit misleading, as writing bug-free code is a myth. Where there is code, there are bugs, no discussion about it.&lt;/p&gt;

&lt;p&gt;The policy aims to have zero bugs on your &lt;strong&gt;backlog&lt;/strong&gt;. While doing research on this topic, a couple of different implementations of this policy popped up, but they all share this common goal of a &lt;strong&gt;zero bug backlog&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The differences between adaptations are in how to achieve this zero backlog:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always fix the bug;&lt;/li&gt;
&lt;li&gt;Inbox zero style, decide whether:

&lt;ul&gt;
&lt;li&gt;it needs to be fixed. Pick up directly;&lt;/li&gt;
&lt;li&gt;it won't be fixed, Close directly;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do note that bug triage needs to be taken very serious. Often enhancements or originally missing requirements can be brought in as bugs, but make sure to validate it and relabel those issues, to avoid working on bugs that aren't really bugs.&lt;/p&gt;

&lt;p&gt;The companies that have embraced the zero bug policy (see sources below), take the  &lt;strong&gt;inbox zero&lt;/strong&gt; approach: once a bug comes in, you must decide directly what to do with this: fix or don't fix.&lt;/p&gt;

&lt;p&gt;If it is too trivial, or just simply not worth the cost, it is closed as a won't fix, so you never have to look at it again.&lt;br&gt;
If it must be picked up, there are usually only two different types of issues: ones that require immediate attention, which means drop whatever you are doing. Otherwise, fix directly after you've completed your current task.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where are the gains
&lt;/h2&gt;

&lt;p&gt;By forcing a product to have no known open bugs, a couple of practices are automatically in place, and considerable waste can be removed from the development process. &lt;/p&gt;

&lt;h3&gt;
  
  
  I like my bugs fresh
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/65Jh3mpR5RPc4/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Smeagol enjoys a fresh fish" src="https://i.giphy.com/media/65Jh3mpR5RPc4/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anytime a bug comes in, it immediately requires resolution. An important benefit is that the possible reproduction scenarios, and the person logging the issue are probably quite easy to find, making it way easier to fix this issue. Fresh bugs often also relate to recent changes, so it is easier to backtrack where this issue was introduced. Of course there can be other reasons why new bugs emerge, but it really helps to start on them directly. I'm sure many developers have dealt with an issue that was over an year old. Trying to reproduce it or asking questions about context is basically out of the window, as the original reporter has no clue about it anymore or might even be gone from the company. Maybe the troublesome feature has been rewritten in the meantime, so you don't even know if this even is an issue. Waste, waste, waste.&lt;/p&gt;

&lt;h3&gt;
  
  
  Avoid the endless backlog
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/B7o99rIuystY4/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Spongebob todo list" src="https://i.giphy.com/media/B7o99rIuystY4/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Deferring non-critical bugs to the backlog is a good way to create this huge steaming pile of work that, when being realistic, you will never end up doing. New work tends to always be more important and jumping the line, because of deadlines and promises. During backlog sessions, these open bugs are looked at time and time again, and dragged around while they probably will never be fixed. A big waste.&lt;/p&gt;

&lt;p&gt;I can't talk for others, but having a huge steaming pile of open bug reports is a good way to smash motivation as well. For me, it always takes a chunk of mental space, even when I decide to ignore it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Raise the quality
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/pO7jomKrTwfSw/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Arnold Schwarzenegger montage" src="https://i.giphy.com/media/pO7jomKrTwfSw/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When bugs are considered an acceptable thing, it can become normal to introduce bugs with new features. Developers can become senseless to bugs.&lt;/p&gt;

&lt;p&gt;When having known bugs, and you introduce code that has to deal with the buggy part, it is commonplace to create workarounds or temporary fixes. This is bloat and debt that often is ignored once a bug finally gets resolved. It makes me cringe.&lt;/p&gt;

&lt;p&gt;Forcing to work on bugs first shortens the feedback loop on issues with new features. When bugs emerge on new features easily, it means improvements are to be made in the process itself. Why do bugs slip in? You want to look at code reviews, testing and specifications to reduce the chance of introducing new bugs. Being bug-free is an award on its own, and it can help to grow it as a culture.&lt;/p&gt;

&lt;h3&gt;
  
  
  Become predictable and flexible
&lt;/h3&gt;

&lt;p&gt;Having a bug-free backlog makes you more predictable and gives you more freedom to change focus of work. There is less risk of running into deadlocks, and there is no need for allocated bug-squashing time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final notes
&lt;/h2&gt;

&lt;p&gt;I hope this article inspires both developers and Product Owners to give Zero Bug Policy a shot, as I've outlined the benefits. I think it is all about being realistic and draw a clear line where effort goes, and won't go. &lt;/p&gt;

&lt;p&gt;At my current employment we are aiming for the Zero Bug Backlog, we are gradually moving towards it and will give it a try to keep it at 0. It has been a stretch to clean everything up, but it felt very similar to when I first adapted Inbox Zero (which meant cleaning up over 1000 emails).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/x0bXxds620UoFpaZVC/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img alt="Broom Dance" src="https://i.giphy.com/media/x0bXxds620UoFpaZVC/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/"&gt;The Joel Test: 12 steps to better code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.xolv.io/articles/zero-bug-software-development/"&gt;Zero Bug Software Development by Sam Hatoum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sookocheff.com/post/process/zero-bug-policy/"&gt;Zero Bug Policy by Kevin Sookocheff&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.infoq.com/articles/0-bugs-policy/"&gt;0 Bug Policy by InfoQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hilton.org.uk/blog/zero-bug-policy"&gt;Implement a zero bug policy by Peter Hilton&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dcme.nu/zero-bug-policy-a-fast-way-for-paying-back-technical-debt/"&gt;Zero bug policy. A fast way for paying back technical debt.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>agile</category>
      <category>management</category>
      <category>productivity</category>
    </item>
    <item>
      <title>What is all that stuff in this frontend repo?</title>
      <dc:creator>Justus Romijn</dc:creator>
      <pubDate>Thu, 02 Jul 2020 11:32:28 +0000</pubDate>
      <link>https://forem.com/justusromijn/what-is-all-that-stuff-in-this-frontend-repo-4o02</link>
      <guid>https://forem.com/justusromijn/what-is-all-that-stuff-in-this-frontend-repo-4o02</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;You are getting ready for your next assignment. Should be an easy job, just update some templates to implement a new menu design, so let's get down to it. Clone this git repo, allright! Wait...wut... what is all this stuff?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/l3q2K5jinAlChoCLS/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/l3q2K5jinAlChoCLS/giphy.gif" alt="Huh?"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My assumption is that a lot of developers have gone through such a moment, where you look a new project in the face and think: what is all this stuff? To help you get back down in your seat again and approach this with some confidence, I will drill down some more common frontend setups that you will encounter anno 2020.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: this is (of course) not a full, exhaustive list. Every project is different, and I've seen some rare custom setups over time. This article is aimed to help starting developers to find their way in most projects.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Anatomy of frontend repositories
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Files
&lt;/h3&gt;

&lt;p&gt;Independent of framework or type of project, there's going to be a bunch of files in the root folder.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;README.md&lt;/code&gt; (&lt;a href="https://www.makeareadme.com/"&gt;make a readme&lt;/a&gt;)&lt;br&gt;
Always start here. A lot of tools by default open a README file if they find it in the root. Most of the time, this is the best place to find documentation written by the actual maintainers of this project about how to get started, requirements to be able to run it, and possible other details that are relevant.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;LICENSE&lt;/code&gt; (&lt;a href="https://choosealicense.com/"&gt;license help&lt;/a&gt;)&lt;br&gt;
Some legal information about usage, warranty and sharing of the code. Also often refer to standard software licenses like MIT, GNU, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;package.json&lt;/code&gt; (&lt;a href="https://docs.npmjs.com/files/package.json"&gt;npm docs&lt;/a&gt;)&lt;br&gt;
This is also important to peek into. A package.json file indicates that this project relies on the &lt;code&gt;npm&lt;/code&gt; ecosystem. Wether or not this project is actually exposed publicly, beside details like name/description/author of this project, it usually also lists dependencies (other packages from npm). Another important aspect is that it often lists a couple of npm scripts that perform certain tasks within a project, like installing dependencies, start a development environment, test the codebase and build/bundle for production. For node projects, the &lt;code&gt;main&lt;/code&gt; field in the package.json is rather important as it targets it as the entry point for the package. For website packages, this is not relevant.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;package-lock.json&lt;/code&gt; (&lt;a href="https://docs.npmjs.com/configuring-npm/package-lock-json.html"&gt;npm docs&lt;/a&gt;)&lt;br&gt;
The package lockfile holds metadata about which dependencies were installed in the node_modules. This is very useful to be able to exactly reproduce a specific situation, as by design dependencies are able to be of different version depending on when you run your install command (by allowing patch and minor updates, see &lt;a href="https://semver.org/"&gt;semver&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;.gitignore&lt;/code&gt; (&lt;a href="https://git-scm.com/docs/gitignore"&gt;git on gitignore&lt;/a&gt;)&lt;br&gt;
This file has instructions of what to exclude from version control. It can be specific files, as well as entire directories. Think about the build-output of your project, temporary folders or dependencies. Common items include &lt;code&gt;node_modules&lt;/code&gt;, &lt;code&gt;tmp&lt;/code&gt;, &lt;code&gt;dist&lt;/code&gt;, &lt;code&gt;www&lt;/code&gt;,&lt;code&gt;build&lt;/code&gt; and so on.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;.editorconfig&lt;/code&gt; (&lt;a href="https://editorconfig.org/"&gt;editorconfig docs&lt;/a&gt;)&lt;br&gt;
To avoid unneeded clashes of handling charactersets and whitespace, this file will help editors pick (among others) tabs vs spaces, level of indentation and how to handle newlines, based on filename/extension.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;.[SOMETHING]rc&lt;/code&gt;&lt;br&gt;
What exactly is the definition of &lt;code&gt;RC&lt;/code&gt; is &lt;a href="https://stackoverflow.com/questions/11030552/what-does-rc-mean-in-dot-files"&gt;not entirely clear &lt;/a&gt;, but all those RC files are basically configurations for anything that runs in your project and supports it. Often you will find these: &lt;code&gt;.npmrc&lt;/code&gt;, &lt;code&gt;.babelrc&lt;/code&gt;, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;[SOMETHING].config.js&lt;/code&gt; &lt;code&gt;[SOMETHING].config.json&lt;/code&gt;&lt;br&gt;
Configuration settings for the specified...thing. Think of linters (&lt;code&gt;eslint&lt;/code&gt;, &lt;code&gt;prettier&lt;/code&gt;), transpilers (&lt;code&gt;babel&lt;/code&gt;,&lt;code&gt;traceur&lt;/code&gt;), bundlers (&lt;code&gt;rollup&lt;/code&gt;,&lt;code&gt;parcel&lt;/code&gt;,&lt;code&gt;webpack&lt;/code&gt;), typescript (&lt;code&gt;ts&lt;/code&gt;), etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Folders
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;node_modules&lt;/code&gt; (&lt;a href="https://docs.npmjs.com/configuring-npm/folders.html"&gt;npm on folders&lt;/a&gt;)&lt;br&gt;
All installed dependencies will go in here. Usually this folder is created once you run &lt;code&gt;npm install&lt;/code&gt; or &lt;code&gt;yarn install&lt;/code&gt;, as it almost always is ignored by git (see &lt;code&gt;.gitignore&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;scripts&lt;/code&gt; (undocumented convention)&lt;br&gt;
Command line actions from the package.json often refer to executing files in this folder. Building, linting, testing, often the instructions for performing these tasks are in here.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;src&lt;/code&gt; (undocumented convention)&lt;br&gt;
The real meat: the source code of this project. Probably 90% or more of the repo activity has its place in this folder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;assets&lt;/code&gt; (undocumented convention)&lt;br&gt;
Any audio, image, font, video or other static assets are often stored together here.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;build&lt;/code&gt;|&lt;code&gt;dist&lt;/code&gt; (undocumented convention, &lt;a href="https://stackoverflow.com/questions/22842691/what-is-the-meaning-of-the-dist-directory-in-open-source-projects"&gt;Stack Overflow question&lt;/a&gt;)&lt;br&gt;
The bundled or optimized output of the sourcecode. Depending on the goal of this repo, this may or may not be included in &lt;code&gt;git&lt;/code&gt;, so you might have to run some build script first before this will be summoned into existence.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;tmp&lt;/code&gt; | &lt;code&gt;.tmp&lt;/code&gt; (undocumented convention)&lt;br&gt;
When running projects in development mode, it often needs temporary workspace to serve to the browser, it might need intermediate files. Either way, this folder is as it states, temporary. Don't expect it to be there for long.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;bin&lt;/code&gt; (convention, probably originates in &lt;a href="http://www.linfo.org/bin.html"&gt;linux&lt;/a&gt; and other operating systems)&lt;br&gt;
Any command-line executables are defined here. In the scope of frontend projects, it is mostly limited to some command-line utilities like scaffolding tools (for example generate new pages or components).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;lib&lt;/code&gt; | &lt;code&gt;vendor&lt;/code&gt; (undocumented convention)&lt;br&gt;
Sometimes you need libraries that you cannot, or do not want to rely on through npm. 3th party assets are often stored in this folder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;test&lt;/code&gt; (undocumented convention)&lt;br&gt;
For tests that you don't want next to your source code, there is a separate directory. Direct page testing is often something that is written in this folder.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Enjoy your journey
&lt;/h3&gt;

&lt;p&gt;This is just scratching the surface, hopefully this gives beginning developers a clue on what to expect when starting with projects. Basically my advice usually is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start with the &lt;code&gt;README&lt;/code&gt;! Other maintainers want you to read this first before getting your hands dirty;&lt;/li&gt;
&lt;li&gt;Next up: &lt;code&gt;package.json&lt;/code&gt;: see what script instructions there are for installation, development, testing and building.&lt;/li&gt;
&lt;li&gt;Lets get to it! &lt;code&gt;src&lt;/code&gt;: look at how this folder is organised, probably you will start recognising things here and get a clou of how to get things done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I know that those instructions sound almost blatantly straightforward, but how often did I have someone at my desk asking how to get a project up and running, where I would reply... Did you read the README?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/myub4wKKdR0Wc/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/myub4wKKdR0Wc/giphy.gif" alt="kid licking wrong finger to turn the newspaper page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some follow-up for this could be a repository which holds a lot of those files with comments and readme's, that can be a community-driven effort to explain what it all does in a nice, kind-of interactive way. Let me know in the comments if you would like to see such an initiative!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>git</category>
      <category>npm</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
