One File That Every Project Needs
(2 Min Read) Simple tip that can help you ship your project
When working on a project, you must create one file before doing anything else, even before you compile the boilerplate code for the first time. That single file could help you ship your project. It’s been a lifesaver for me. That file is called changelog.txt. And here's why you should create one now.
Building projects is hard. Even MVP or POC can take weeks to months. And that's the best case, assuming you don't get demotivated, have another idea, or end in a perfection loop of building all features before shipping it.
During the early phase of the project, there is no progress to show. Nothing has shipped and it can feel demotivating. So much so that after the initial excitement of the building a project wean off, the motivation to grind on the project to get to a shippable state is sometimes impossible to find.
That's where changelog can help.
Starting from day 1 of the project, write what you completed that day in the changelog file. Here is a sample of how my project changelog file looks like:
changelog.txt
--------------------------------
2023.1.22 - Changing timer class to handle timer issue better and keeping it siloed
2023.1.20 - Started debugging the stupid countdown timer issue that was getting reset
2023.1.15 - Configured CoreData and CloudKit
2023.1.14 - Added the registration logic and login screen
2023.1.12 - Completed the first load screen and design.
2023.1.11 - Created the main view and list of skeleton views of app
2023.1.10 - Setup the project and swift environment
While I may not be shipping stuff for a while, I do make progress. Keeping changelog helps visualize that saves me from falling off the rails when project is in lull. Every day, when I update the changelog, I see progress.
Now, before you say, "use git. It acts as a changelog", let me say, "you are right." While Git works for software projects, changelog works for all types of projects like woodworking, art, content creation, etc. Think changelog as a system to track and visialise progress.
Moreover, even for software projects, a local changelog file is faster than scrolling Git commit history.
Another thing to note is that this local project changelog file is private. The changelog we see on SaaS products or apps, is written by a technical writer and is very polished.
The changelog.txt I am talking about is raw and for personal use only. As you can see above.
Finally, if multiple people are working on the same project, find a way to identify each one contribution uniquely. In the past, I have used my initials [MV] as prefixes/suffixes.
Bonus Tip:
Once you are done writing the day's progress in the changelog, write the next task you want to complete on the top. The changelog can double up as mini-todo list as well and can help you get in the zone fast.
Next time you come to the project, you don't have to think about what to do next. Here is a sample
changelog.txt
--------------------------------
next - Create a background thread to continue running counter
2023.1.22 - Changing timer class to handle timer issue better and keeping it siloed
...
...
Caution: Don't add a laundry list of everything you need to do on top of the changelog file. Only add 1 or 2 immediate next tasks. Adding too many tasks will defeat the purpose of the changelog file (see the progress so far) and make it into all things you are yet to complete.
If you need to create a to-do list of all tasks, create another file, todo.txt, and add them there.
I hope this helps. Happy building!!