I've been working on Arraymancer for 6 months now with ups and downs. This is my first big project (and actual the first time I'm developing "for real") and I would like to know how do you keep your energy for the long run.
In my case, I seem to alternate between various modes:
And then there are some times when:
So what keep you going ?
Slightly off topic, but when I run into compiler limitations/bugs all the time, I fix the compiler. ;-)
Some random remarks about keeping motivation up:
I haven't created my own big OSS project yet (I've only created multiple "useless" projects so far). But I have been the "assistant" (tester? client?) of someone trying to build something big. He sank masses of time into it, trying all kind of things and never being satisfied, even when I told him "this part is good enough, let's move on to some other things we haven't solved yet", he carried on changing things that were already working, never getting to 1.0.
The following is based on one assumption: you are your own (only?) user. If I'm wrong, feel free to ignore the rest of this reply.
I personally think that what you need is users. Finding users is presumably the least fun bit of the work, if you like coding (like me). But if you have no user, and cannot find any, are you even sure what you do is generally useful? If it is only useful to you, is it really worth all the effort? Possibly, creating some full application which would not exist without your API/framework (and be also impressive) is the best way to publicize your work, and find people interested in it (aka potential users). And if you haven't guessed, I'm saying this because I feel it's one of my biggest problem.
Creating an API/framework from scratch is fun, because you have complete creative freedom; something you probably crave for, if you have a boring day-job. But it's also a bit like a drug; you can never get enough (until you brain is burnt-out, as Araq said). It's like, ice-cream; you might love it best, but it doesn't make you full. What you need is a "main course"; if you work on something concrete (and preferably cool), and the API is just a mean to get there, you can eventually reach the "I'm DONE" stage, in a finite amount of time. You can enjoy that satiated feeling for a while, recover your energy, and move on to the next meal.
I'll try to put this differently; what would make you more happy? Knowing that you made the perfect API, but you're the only one using it, OR knowing your API is not anywhere as good as you would like, but having a dozen people sending you feature requests regularly?
Great feedbacks Araq and monster :).
I don't want this topic to be about my motivation specifically but everyone's experience, also this kind of topics happens often in Quora and Reddit so maybe we could top Google search and get some new blood this way ;).
Now I do sports, several hours per week (more addicted to it than programming actually) and thankfully for Arraymancer, plenty of data scientists would love to try and benchmark the hell out of it once a MVP is done (i.e. recognizing images with 90%+ accuracy).
So for the next people: As monster is asking, what keeps you motivated or make you most happy in an open-source project (or inversely)
what keeps you motivated or make you most happy in an open-source project (or inversely)
When my pull-requests are accepted. :) This means that not only I find them useful. This is very important.
Great Thread! I improved on a project after committing to a conference talk. Not only does that focus your effort, it also give you users.
Arraymancer caters to the huge need of better scientific computing in nim (expressed in the community survey 2017). Have you thought of submitting a talk to a PyData or any other (local) scientific computing conference? Personally, I'd like to see more of the story behind it.
From the maker of Braid and The Witness:
Techniques for dealing with lack of motivation malaise depression: Link
What's makes one happy: Araq saying you're right. :D
Well, I guess what monster said about imperfect product with lots of grateful users seems more satisfying than a perfect product only you dare to use. ^^" That's one of the reasons why writing docs and examples is important --- this way more people use your code. Also, docs and comments make it more likely people will help you. And at least for me, the docs are good to measure how much I've done --- I can see it just by having a look at them. :)