Guys, I need your advice.
I will be short.
I struggle to do my things done. I have a couple of the project that I want to bring into reality (my projects), but I struggle so much. After the work, I have my own time to do them but in most cases, I do like 10% of the complete project then I leave it.
Have you ever been in this state of mind? If so, how did you overcome it?
Maybe because the goal you aim is too high. Before going to work, you choose to finish the project so if you don't finish it but just 10%, obviously you will be disappointed.
Choose smaller step for your session. Explode the "Finish the project" task into more atomic tasks. Planning a project task by task is mostly made for organization, but also for self-motivation. Every step you will make will give you a feeling of completeness and will give you motivation to do more, this is how our brain works. In that way, you won't have feeling of struggling anymore.
Good luck, hope it helps !
Well. that's story of my life. I call it side effects of being a programmer. Being a coder and having multiple side projects along with work/life balance is very hard. Especially if you have a family and kids, it is nearly impossible. Main reason I believe, at least for myself, dedication and how important for you to finish project. Especially not being under a deadline or a frustrated client on the other side makes you slack more. Some suggestions may help you to move forward.
Create a good plan of your project.
Why good planning is important? First of all, it will help you to see your progress and prepared for upcoming changes. If you know what to do next, you can allocate your time and effort better and feel accomplished when you complete smaller tasks. I usually use free version of old vsts or azure devOps with agile. I create epics, user stories, tasks etc and log bugs when I come across. So depending on time slots I have, I can pick one that I can finish and focus on that. You can't eat a whole loaf of bread at once, but one bite at a time.
Create deadlines and sprints.
So think about this. Why things move forward at your work or with your side works with other clients? I mean there are plenty other factors like team work, management, etc but you can't apply most of it in your personal projects of course. But to me, they move forward because there is always someone waiting on the other side and you always have a deadline to make other party happy. With your personal project, there is nobody on the other side. So there is no timeline, no deadline, no angry client that didn't get what they asked delivered. You have to be the other person in this case. You almost need to have double identity :) one day sit down and act like you are asking this project to be done by someone else. and group tasks, put deadlines
I need this part done and tested by X date. Then next time be the programmer and forget about that is your project but you are hired to do that. You have a client, a plan and a timeline.
Give yourself treats for accomplishments or pay yourself.
This one is addition to previous section. Once you met your deadline, give yourself a treat or pay yourself. As part of planning, budget your project. For instance, just throwing out, say this project is worth $1000. I need 5 months to finish this project ( planning comes in handy in this case ) 2 week sprints makes $100 each sprint. If I finish each sprint on time and finish all tasks, I will pay myself $100 to buy whatever I want, no guilt or nothing. If you can't really pay or income is limited go fishing for one day, or do something that you want to, but don't if you can't and always remind yourself that you won't be able to if you can't finish it on time. This will motivate you. Maybe not as strong as a real client anxiously waiting for your update but at least something.
Excuses, excuses, excuses. Be responsible to yourself
Similar example. You can't use excuses against your boss or client.
Last night I didn't feel like I want to work on your project, so I watched TV instead will get you fired. So do the same to yourself. Don't find excuses to not sit on your project or leave it before you are done with your task.
Consider help, share
As much as side projects are usually personal projects, you can share the knowledge and get some help when needed. Think about this, Mark Zuckenberg wrote most of the codebase of initial facebook. It was a great idea, a side project for him. Might have been huge or end up being nothing. But he included his roommates into codebase. And they were able to get it done a lot quicker. Consider open source and get help from community, open up your project to friends and colleagues, they might be interested enough and jump in to help.
Last but not least, know when to quit. This is the hardest one. You need to be aware of yourself and know when to call it off. It is not moving forward, you can't make time, too big project to handle by yourself, there is no help and no time know when to give up. That's better for you then frustration.
That's my two cents on this. I have been in this industry over two decades and I have been in the same boat as you several times. Started several side gigs. Some completed, some still ongoing some already abandoned. So good luck!
Don't worry we have all been there. It is a very common situation. Firstly, do not try to complete a single project in one day. If you want to complete it in one day then use a reward system. There is a app called habitica it's really cool. It has a reward system that is really cool for these kinds of situations. You should try it.
Let me give you an example, If you are running in a marathon, the only way you can win is by taking small steps in a steady manner. Rushing will not get you anywhere. It may get you further than everyone but not for long. So similar to that you must have small milestones set for your app or anything.
Create a schedule for yourself, brainstorm ideas for your app on how it should work, write documents about the front end and the backend, it's functionality, it's UI, it's best worst use cases etc. Just get into building it. Slowly you will get an idea on how you must proceed with the app.
It is okay to think really big. I recently wrote a blog about a to-do list. I am currently just evolving it and adding features to it. I think about really impossible ideas, it drives me to pursue the impossible. That is what makes us better.
We all make mistakes when starting hobby projects, we must always start laying out the basics, like thinking about the app you are going to build. Writing documents because if we know what we want we would not get lost in the middle.
I hope this advice helps you. Really try out the Habitica app it is really cool.
I guess it depends what makes you stop
- Parts of it are too hard given current experience. Perhaps an easier goal would help.
- It gets stuck because it wasn't well designed. No need to describe every details, but it can help to have a general outline, both functionally and technically.
- All the fun parts are done. Maybe try to focus on completing small parts one by one, instead of doing in 'random' order
- You came up with another, more attractive idea to work on. Keep in mind why it is that you want to finish one thing, instead of having fun doing a bunch of incomplete things. It's not necessarily a problem, but if it is, you will probably know why. So keep that goal in mind.
As a side note, the title of this topic really doesn't convey any information, it would help if you actually describe your problem or ask your question in the title.
One thing might be you pushing yourself too hard. Take breaks and rests. It may sounds like wasting time, but you will feel refresh after that. Since you are only able to work on your project at personal time, I suggest to push it to early morning, before you go to work, where it has no interruption, probably will increase your productivity. After you back from work you already exhausted, which might not be a good time to work on something else, considering you have spent most of the brain power at your work.
Set a small and achievable goal for each day. Most importantly, rest in between.