One common problem among software engineers is that over the years you accumulate a lot of 'unfinished' personal projects. This is because there is always something new to learn and in your 'finished projects' some new idea for a new feature or a new bug pops up. Over time this becomes overwhelming and you suddenly find yourself mostly procrastinating just trying to figure out what you should focus on and what your next task is suppose to be.
Let's take a look at the PARA method to improve your structure and organization of your projects.
The PARA Method
The PARA method is a very flexible and simple organizational structure that focuses on ensuring outcomes. P.A.R.A stands for Project - Areas - Resources - Archives.
- Project - a series of tasks liked to a goal with a deadline
- Area - An ongoing activity without any deadline
- Resource - A topic or theme of ongoing interest, useful documents
- Archive - Inactive Items from the other 3 categories
The most important distinction is between projects and areas:
- A project is active, it has to be achieved within a specific deadline has a specific goal.
- A area is ongoing without an end date or a specific outcome.
By definition every project is assigned to a area. Example: writing a book is a project while it falls into the area writing.
This concept - this distinction makes the PARA framework so powerful. By separating these two you suddenly are aware of your active commitments, you are aware of your active goals and commitments. With this in mind you are in control of your responsibilities and will less likely be overwhelmed with all of your open responsibilities.
This separation will also improve your motivation. You are not looking anymore at a long list of the same unchanging responsibilities. You are now structuring your responsibilities into manageable projects, that have specific deadlines that have to be completed. As a result you get the satisfaction of completing small projects and your list will change from week giving you a sense of progress.
How to apply this to software projects
When apply this to software development - you can think of the top categories like this:
- Project -> Task lists - a list of active tasks, these are features and bugs that you have to work on. (These lists can be simple markdown files)
- Area -> Software Project - The different projects that are actively running and supported
- Resource -> Reference - Things like boilerplate templates, code references, useful libraries, tutorials
- Archive -> Inactive Items from the other 3 categories
How to start using the system
This system should be used to reduce your cognitive load. As it is so universal it should be used exactly the same way across the various programs that you use. By using the same categories and naming conventions across your apps - it makes it easier for you to navigate.
The simplest way to implement the system is by just using a couple of folders and markdown files. After that you can start reorganizing your other apps.
When you first start organizing yourself with this framework. It is very important that you collect every piece of information you are currently working on and to make active decision on moving it into the correct category. As well as really thinking about making clear definitions of the active projects and areas.
After the initial setup, you continuously add new information as it presents itself. For example you encounter a great tutorial on a subject you want to learn. With the awareness on what you are currently working on, this can either be a new project to complete the tutorial or if you do not have the capacity it moves to the resources section, as something you can use in the future. You are now aware of how many active topics are open. You now always have a good overview of your commitments and can make a judgment of you can start working on it (a new project) or it is something you want to do sometime (a new resource).
On a daily basis you now can look into your 'projects' and start to complete tasks. As a side effect working on projects you will collect Resources. On a weekly basis you should be reviewing also your 'Areas'. Maybe a project has morphed into an ongoing commitment. Maybe new projects have to be created from the ongoing Areas. Finally on a monthly basis you should be reviewing your 'Resources' as well. Again it could be that some resources suddenly will become into Areas or active projects.
This organizational system should help you simplify your life, while at the same time get you excited and motivated to get the things done.