

Ask HN: Staying motivated, personal software products.  - valarauca1

Often times I find myself quitting in the last mile when working on personal software projects. I&#x27;m thinking its a matter of motivation. With personal projects I&#x27;ll prototype the project, start writing documentation and design documents which help me organize my thoughts. Describing how something will work often helps me spot issues before I develop it as well as fully thinking the operations though.<p>Next I move on to testing various methods. When should a file be cached to ram, or just dumped in &#x2F;tmp things like this. What is the pro&#x27;s and con&#x27;s of each. I&#x27;ll learn the technical details of why the operating systems, development environment, etc. works like that. Finally I&#x27;ll find myself about 50-60% done. Most the decisions are made from a technical level (and justify able with graphs). All that&#x27;s really needed is some spit shine on the user interface, and some basic error handling in the tools I did the benchmarking and profiling in.<p>Then normally I just quit. I procrastinate, push the project aside. Slowly forget about it. So what keeps you going after you&#x27;ve solved the interesting technical issues in a software project?
======
hga
In style, you're a mathematician (see the third item here:
[http://jcdverha.home.xs4all.nl/scijokes/6_2.html](http://jcdverha.home.xs4all.nl/scijokes/6_2.html)
although I prefer Scientist to Physicist (perhaps because I was on a chemistry
track)). Once you're satisfied there's a solution to the problem, you're
happy.

I'd say that as long as you occasionally reify your designs into real stuff so
you know you're generally right---I assume you do this at work, as you say
they pay you for it---you don't have a real problem. And if you're truly good
at this, you should angle for software and systems architect positions.

I certainly find my mental state and motivation shifting once I've found
solutions to all the hard problems of a project I'm working on. And I by and
large don't do personal projects; unless they're a means to an end, I've had
more interesting things to do. (Now that I'm retired I'm working on changing
that.)

~~~
valarauca1
I do actually have a mathematics degree, so your appraisal hits home.

------
Arjuna
I think you have to define, for yourself, what it means to _finish_. For
example, I see 2 forms of finishing here that you may want to consider:

1\. If you are doing this as a learning exercise, and you find yourself
quitting when you get to the point where you are no longer learning, then
there is nothing wrong with that. You are indeed finishing, in a sense,
because you have set your goal as, "I am going to work on this project up
until the point that I am no longer learning." So, you tackle the challenges
that further and expand your learning. If learning is your desired end result,
then you have completed your stated goal.

On the other hand...

2\. If you want to do more than learn, if you want to take your ideas to the
next level and put something out there into the world that other people will
benefit from and use, then this is a different form of finishing. If this is
what you want to do, and you find yourself bailing when you are no longer
learning, then you will need to either 1) muster up the power to finish the
boring parts yourself or 2) engage someone to do them for you. If you do not
have the energy to do those pieces yourself, or engage someone to do them,
then you may need to evaluate if you have _passion_ for the particular project
that you are working on. I wrote about this previously [1]. On a related note,
I have also written about "Doing the Work"; it might be helpful to you as you
work through finding your way [2].

One of the biggest challenges in life is finishing as it is defined in point
2, above, because it involves pushing through when the going gets rough and
boring, when no one believes in you but yourself, or when things are crumbling
around you as you fight to not lose sight of the personal vision that you have
to bring your light into the world. Lombardi said:

 _" And in truth, I've never known a man worth his salt who, in the long run,
deep down in his heart, didn't appreciate the grind, the discipline. The
difference between a successful person and others is not a lack of strength,
not a lack of knowledge, but rather... a lack of will."_

Wishing you the best.

[1]
[https://news.ycombinator.com/item?id=6122593](https://news.ycombinator.com/item?id=6122593)

[2]
[https://news.ycombinator.com/item?id=7076143](https://news.ycombinator.com/item?id=7076143)

------
josephschmoe
Work with other people. Working alone both removes one of the most powerful
human motivators and can create huge blind spots you aren't paying attention
to.

------
joeld42
You might be scared to finish. When a project is incomplete, it still has
potential to be world-changing. When it's released, you find out if it is or
not.

When I catch myself doing this, what I do is set a deadline + cooloff period.
For example, I must ship it by the end of the month, otherwise I must put it
aside for six months. Sometimes that creates an urgency to finish, but
sometimes it gives me the time off to think objectively about the project.
Whereas continuing to poke at it for six months wouldn't get me anywhere.

------
rainmaking
Chose one project you _really really want_ and then continue no matter what.

I'm making a markdown-like format for sheet music in SuperCollider.

~~~
valarauca1
That's the problem. I don't really _care_ about the end goal. I program to
learn things, and when all I'm left with filling in the rote nonsense that
completes a project makes it _robust_ , I'm not learning anything. I'm just
re-iterating what other people have done, I'm not _learning anything_ just
going though motions.

I do it for work, but that's because they pay me.

~~~
ralmeida
I think it's safe to say that the answer to your original question, "what
keeps you going after you've solved the interesting technical issues in a
software project?" is care for the end goal, the end goal being a project, not
the learning.

Find out if you really don't care about the end goal if the end goal is a
project itself. If that's the case, maybe your actual end goal is to keep
learning new things for personal pleasure. If you do decide that this is it,
no reason to be "ashamed" or worried that you don't keep going after the
technical challenges.

Just be honest with yourself to see if you _really_ don't care about the end
goal or you are not very familiar/comfortable with what comes after the
technical challenges and are rationalizing ways to keep in this comfort zone.

If you do realize that you are actually _afraid_ to care about the end goal
because of what is needed to get there, then work on learning something you
are completely unfamiliar with. Maybe this will 'break the spell' and reduce
your fear (that leads to a possible procastination).

If you - after a honest look at yourself - decide that you are _really_ not
afraid, and that you _really_ don't care, then the next step is to ask
yourself if you are happy with it. If you are, problem solved =).

~~~
valarauca1
Honestly as dumb and petty as it sounds. The only goal I see to finishing
software projects is to be able to say with confidence that your
implementation is better then somebody else's code or project on a technical
level.

To have a project as a proof of understanding. Its one thing to say, "Yes I
understand how to do dec64 math." Its another to say, "Yes I understand dec64
math, here's my implementation."

Its kinda stupid I know, but that's literally my frustration with not
completing projects. Its petty, so I don't indulge it.

~~~
ralmeida
That's somewhat competitive, but I wouldn't call it a problem. Maybe you
should redefine what kind of projects you tackle? From your definition, you
could call a project "done" by the time you implement the dec64 math library,
or whatever challenge is in the project.

Why don't you just release the library as open-source? This would give you a
sense of accomplishment (because you did _complete_ something), and possibly
pride, if the library becomes popular.

A key point is it being open-source, though: so you can focus only on
releasing the "proof of concept", but letting other people focus on the
details, the edge cases, and the fixes to mundane but show-stopping bugs that
make the project battle-hardened, production-ready.

------
Im_Talking
You have to change your attitude 180 degrees. You sound like 99% of
programmers: a techie who wants to get into business. You need to think like a
businessman who uses programming to solve business needs. Do you understand
the difference?

You talk about file-caching, /tmp, OSs, UI, blah blah blah; all irrelevant.
You should be thinking of business needs, attracting customers, marketing,
talking to potential clients within your niche. This is the important stuff.

Good luck.

~~~
valarauca1
I have no interest in business. You missed the part where I like learning
about writing software, the underlying system.

Are you literally projecting so hard I could view power points off of you?
This literally has nothing at all to do with what I posted.

~~~
Im_Talking
Then why do you care if you finish projects?

Don't need an answer as I don't care. Good luck.

~~~
valarauca1
>Then why do you care if you finish projects?

Because there is more to life then money.

