# Code Quality Challenge - Week 1

Week 1 journal of the [Code Quality Challenge](https://justinramel.com/im-taking-the-code-quality-challenge).

## Day 1 - Clean up your README

Free swag! [Ben Orenstein](https://twitter.com/r00k) is very kindly offering free stuff for all participants:

> For a little extra motivation, I am offering a free swag item from Tuple to all participants who complete the challenge!

As well as the offer of free swag, there are some great tips to help complete the challenge:

- Much of the time, you will not be able to fully complete a challenge in the time allotted. *This is okay.*
- I strongly recommend you attempt each exercise as the *first thing* you do in your work day.
- Set a timer for 20 minutes and get to it!

My personal favourite is time boxing 20 minutes. I find time boxing to be a great way to get things done, especially mini tasks like these daily challenges. My plan here is to setup a [Pomodoro](https://en.wikipedia.org/wiki/Pomodoro_Technique) timer for the daily challenges.

### Todays Challenge

> Spend 20 minutes improving your README.

My project README was more or less the stock generated file by Create React App. I updated the README with build, test and deploy instructions. This felt like a worth while challenge and great way to kick off the week 😀

## Day 2 - Nuke TODO comments

The challenge today is to remove any TODO comments in the code base.

> Why do this? Because code is a lousy place to track todos. When a todo lives in your code, it can't be prioritized or scheduled, and tends to get forgotten.

I agree with [Ben Orenstein](https://twitter.com/r00k) here, there really are better places to track TODO's, your backlog for instance?

I found two TODO comments in the code base, the first outdated and was a simple delete. The second required a small code update that was quicker to fix than add to the backlog.

Thankfully the code base was not full of TODO comments so easy challenge today 🙂

## Day 3 - Get rid of a warning

> Today's exercise: get rid of a warning you've gotten used to ignoring.

Easy challenge today, I have a very low tolerance for warning messages, I like to clean them up as I go. The only warning I could find (it was more of an information message) was that a newer version of Storybook was available. I upgraded to the latest version and no conflicts. Happy days.

## Day 4 - Excise some unused code

> Let's track down some code that's not actually in use (and delete it, naturally).

I see dead code! I'm using Typescript so my editor is pretty good at highlighting dead code, so not a lot of dead code to be found. I did find the odd unused reference and type so still a useful challenge. Deleting code is so satisfying even if its not as much code as I would like 🙂

## Day 5 - Trim your branches

The challenge today is to clean up old tracking branches that have been left in your local git repo.

You can list old branches with:

```jsx
git branch -r
```

You can then delete the old branches with:

```jsx
git remote prune origin --dry-run
```

If you're happy with the results remove the `--dry-run` switch to run the actual delete.

I found this to be a useful challenge, I hadn't realised how many old branches I had lying around. It's much easier now to list and switch between branches.

## Week 1 done ✓
It's been a useful week of mini challenges and a great way to start the day. I've found all the challenges useful but my favourite was Day 3 - Get rid of a warning, I do enjoy deleting code. 

Looking forward to next week, see you then!
