DEV Community

How do you finish your projects?

CodyBrewer on October 31, 2020

I have been learning javascript and react for longer than I would like to admit and have 0 projects that I am proud of. I feel like I know a lot an...
Collapse
 
indoor_keith profile image
Keith Charles

I think most of us has this problem to some extent. When it's our own projects, we have no accountability and no one but ourselves to tell us to stay on track. I have a sort of checklist that I go by in order to stay on track with my projects.

Be the User

Whatever the project is, make sure it's for something you'd actually use and benefit from. If the project is just another note taking app or quiz app, chances are you aren't going to care if you end up scrapping it halfway through. I could start a graveyard with all the unfinished quiz apps I've never finished 😬. Pick something that you can't wait to finish and start using yourself.

Break Down the Tasks

Create a trello account. Use Github Projects. Heck, get some sticky notes and a whiteboard if you want to get old school with it. Using some form of project management, even if you're the only person going to work on it, has multiple benefits:

  • breaking down your tasks make accomplishing a single task much easier and is good for morale
  • having a history of accomplishments is great to look back on while your in the middle of it all. Shows you're progressing, another morale booster
  • prevents feature creep. figure out the features you want right now and document them. these are the tasks that need to get done, anything you come up with afterwards is a 2.x feature and is none of your concern at this point.

Talk About What It Does, Not What It WILL Do

A lot of the time we like to talk about all the stuff we're going to add to our app idea to our friends, and while it's good to think about all the cool bells and whistles we plan on donning on our brain child, we end up digging our own motivational grave. By talking about what we WILL do, we're setting expectations on ourselves and creating witnesses at the same time. When we end up not being able to add that feature, it can be demoralizing because now you have to either explain the app won't have that feature to your friends or just completely separate yourself from the friendship altogether! (but most likely the former 😉)

Talk about what you've already got working on your app instead! You just finished a really cool feature of the app that you're proud of? Go out there and gloat about it! This keeps your interest on the app at the front of your mind without pigeonholing you to uncertainties. This also adds buzz about your project and your friends may even become invested and hold you accountable to your work (that's a good thing)

Get Public About It

Don't just talk to your friends, let us in the community know what you're getting done, too! We're all trying to work through all of our collective procrastinations. If we see our peers getting through it, it can help us push through, as well. This motivation can be cyclical and come right back to you.

Understand that there is no such thing as FINSHED

In this day an age, we don't finish anything. Tech is always evolving and mutating. Your goal is to get to production not to the colloquial finish line. Get the MVP done first. Rave about your accomplishment. Then get your 1.x done. Rave about your accomplishment. Go on a mini vacation. Then think about what 2.x will look like. Wash Rinse, and repeat.


Well this ended up being more of a whole dang post rather than a response. I may turn this into a post myself, but I still wanted to make sure I got these points over to you. The last point I say is the most important one of them all. We need to redefine what "finished" means to us to be more relative to our industry. I hope any of this helps! I understand this stuff is way easier said than done, but I'm an aaaawful procrastinator, and if I can finish projects, I KNOW anyone can.

Collapse
 
isarisariver profile image
Marian

This is such a great response, thanks for taking the time to write it all down.

I agree that "scratching your own itch" will make you keep working on a project like nothing else. Even if nobody wants to use it in the end, it doesn't matter. At least you got a great product that is tailored perfectly to your needs. 😉

Collapse
 
indoor_keith profile image
Keith Charles

Definitely, and realistically, whatever it is that you make for yourself, others are bound to find useful as well! If it helps you, it's highly unlikely it won't help anyone else.

Collapse
 
temi0x profile image
Temiloluwa

This response is golden and would go a long way in helping me. Thanks a lot for this response

Collapse
 
sararf22 profile image
SaraRF22

Great explanation! I think for a newbie like myself, it's overwhelming, but as I'm are not given up I'll get there

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

Please make it a post, I want to bookmark this :)

Collapse
 
jackspy143 profile image
jackspy143

Really it was very useful content to basic learners and i hope your posts like more this ....Thanks for share with us.. ghdsports.net/

Collapse
 
kayis profile image
K

My problem was often that I underestimated the effort. Just last month I spent weeks on a K8s project I thought would only take me a few days.

For a frontend beginner I'd recommend:

Try beginner projects.

Stuff you know other beginners actually finished.

Don't be too smug to choose something simple.

Can't create a blog? Try a todo-list!

Can't create a todo-list? Try a simple notepad!

Can't create a notepad? Try to convert some static HTML to "static" React.

For a beginner, even a project without interaction can be educative. At least, you learn how to split the UI into components!

Collapse
 
fergarram profile image
Fernando Garcia

I think having unfinished projects is part of being a developer, so you shouldn’t be worried about that. If you want to take your new skills to a new level, maybe you should consider doing a freelance project for someone — it will be a good learning experience and help you start getting professional experience. How does that sound to you?

Collapse
 
dendihandian profile image
Dendi Handian • Edited

I create personal/portfolio projects for not getting lost track of technologies i'm using.

One project using Laravel,
One project using React,
One project using Flask

Each project above has its own main core feature like TwitterAPI, GIS, and SNA. So, the projects still has potential to improve more and it can never be finished.

And make you proud of them by hosting them in free plan platforms like Heroku, Netlify, Firebase, or GithubPages and let anyone see your project and hopefully they could give positive feedback for improvement unless your projects are secret.

Collapse
 
gusdecool profile image
Budi Arsana

As i see you made progress but not finish it, i think your issue is at project management where you lost the motivation to complete the project.

When starting a project, try to create a Minimum Viable Product (MVP) first. List the features that it must have. Then divide it into smaller tasks that you will achieve each step at specific time/day. It is important to keep the goal realistic. Don't put too much features on MVP and don't add too much tasks on daily basis. Having too much tasks and failed to do so will make you feel bad, vice versa.

Then keep the list of your completed tasks, whenever you feel unmotivated. Look at this list and realize what you have achieved.


Another tip is to accept the reality that the first project will not perfect, it's okay. What important is you complete the project based on MVP and deliver. Then we can always improve the project incrementally.

Collapse
 
sno2 profile image
Carter Snook • Edited

I used to follow that same exact path for every project I attempted. The most important thing is to smart out small, then build your way up. An easy way to start doing this is to develop open-source modules/packages for your tech skill. Make sure these are small enough for you to finish within 1-3 days. I made the mistake of trying to start out with large projects while using a hammer to screw in a nail (I think I butchered that idiom but whatever). These projects would definitely take me a month at the time. However, after working on 20+ mini open-source Deno modules, I've got the self-control to pick a project that will not be too hard for me. If the project does end up being too hard, just leave it and come back later with a complete refactor, (mostly) no harm done. Another thing to note is that you should never really have to force yourself to work on these mini-projects. If you have to, then it's not the project for you. Anyways, hope you got something out of my ramble and good luck coding!

Collapse
 
eelstork profile image
Tea

Having finished projects is also part of being a developer. Do you Git?
Sounds like your projects take a wrong turn somewhere along the way. Version history would help you figure this out imho? As in, exactly where.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Have a minimal goal from the start. Make sure you're working towards that goal. When you reach it you'll feel proud about what you've finished. You can then decide on a new goal, or a new project without feeling like you've left something incomplete.

Collapse
 
catmouseapk profile image
catmouse-apk

That's a good way to start. I appreciate your work here!

Work: catmouseapk.co/

Collapse
 
lasmd profile image
Lasitha Denipitiya

I'm pretty much sure that more than half of the devs commented here went in a similar phase as you do. Even I still have that effect but it gives me more options than before.

History

in 2016 after I graduated and wanted to start from scratch on my own, lots, and lots of points to consider, and had to do it fast but soon I realized that I'm not going anywhere and this happened.
archiving -> deleting -> recreating

so without leaving that circle completely I started getting some small portions from all of the stages into a giant document and worked from that. after months of time doing with the project (creating -> updating -> deleting -> recreating) I simply started to understand the core and internal workings and got a transcript of all the bits and pieces which I had to touch in each step.

looking back the past years with a similar dev lifecycle, I don't think that it is a full waste of time but to some extent an investment (I mean it depends from one dev to another but for me it is.)

Reflection

It is really nice to have an open discussion of the most stressed questions among devs. just like Keith Charles commented here are things I hope that I had 4 years back.

  1. Think like you're using the app
  2. Talk it out in the public ( Dev.to, discord, LinkedIn etc).
  3. Blog your way so that others will find it easy to navigate in similar situations.
  4. Be kind to think from the end-users' perspective.
Collapse
 
indoor_keith profile image
Keith Charles

Not really "finish my own projects" related, but it does help with getting your hands dirty in meaningful ways:

Find some open issues on open source projects on Github. This takes the burden of getting your own projects up off the ground and into production all by yourself while still getting stuff done and documented. And it puts your name out there by being listed in the contributors lists of all the projects you helped out with. You can look back at all the pull requests you've gotten merged into production level code out there in the world and be proud of yourself. 👍

Collapse
 
ony19161 profile image
Md Amanul Huque

Hi,
I am a .net dev, and in profession for near about 7 years.
I am interested to develope a project in ReactJs.

If you are interested, we can work together.

Collapse
 
tardisgallifrey profile image
Dave

Finish?

Collapse
 
agatamaria profile image
Agata Maria

Kudos to you for bringing that up!! 🤍

Collapse
 
puritanic profile image
Darkø Tasevski

Rarely

Collapse
 
imtiazkun profile image
ImtiazKun

Start small. Don't go overboard. Make something small and great. Then you'll slowly start to get into the momentum.