I have seen a pattern with some myself as well as other creative people I know. You get inspired, create something awesome, and after you get it working, you go to finish it up. Finishing it up could mean, enclosing a project, transferring to PCB from breadboard, or even writing sheet music for a song. Your’e geeked, you created an awesome thing, it’s the best ever, and now it’s time to make it shine and show the world. And then it happens..
Another great idea!!! I must prototype it now! I have to see if this works! I have to listen to this new melody! You get excited, exuberant with joy, and then it hits you. I didn’t finish the last project. Oh, but this new one is so good, I must move forward! And then you rinse and repeat.
I was watching AAE on New Year’s Eve, when Adabot asked the question, “What do you plan to do for the new year?” There were a lot of people, including myself, who answered, Finish projects! That’s when I started rethinking this whole process, and what I could do to break my bad habits. Sure I have a project list, it’s a half mile long! So, how can I realistically accomplish this? The answer is quite simple to be honest, discipline. I have to be more disciplined about finishing things. What I came to realize is that I must finish up something before I start on the next thing. Sounds simple, right?
Wait, so you’re telling me not to have more than 1 open project at a time? Not really, let me explain my process and boundaries. Sometimes, when I start a new project, I have no more breadboards available, so what do I do? I disassemble an incomplete project before making it permanent, and even worse, sometimes without documenting what progress was made. So a boundary that I have now is simply this, don’t sacrifice a project to start a new one. I might have 11 (yeah, I counted) breadboards with projects on them, but I now I am on a straight track to complete them before borrowing any parts, boards, Arduino’s, or completely forgetting the project details that made it awesome to begin with.
So may this year be a year of completion as well as new creations, to be shared with the open source community. Oh, and happy New Year!
Awesome Jeremy! No joke. I have plenty of things to finish and plenty more in the fire right now. I definitely need more discipline. Thanks for the reminder.
IMHO not all projects need to be finished. For example, I recently spent many months working on my USB MegaDrive DevKit, a custom cartridge which allows you to develop and debug SEGA MegaDrive homebrew games in EclipseIDE, but on real (as opposed to emulated) hardware.
Of the hundreds of people who have viewed that video, not one of them have “liked” it, which sends a rather clear message as to the project’s viability as anything other than “just another random internet curio”. But working on the project taught me an immense amount: making home-etch PCBs with power routing under 0.5mm-pitch SMD chips, JTAG-programming to load designs into FPGAs, writing a basic SDRAM controller core in VHDL, using the slave-FIFO mode of the Cypress FX2LP, efficient interactions between VHDL state machines, logic verification using VHDL simulation, GDB internals, the various GCC Application Binary Interfaces and the detailed structure of stack-frames. And a lot of that experience was immensely useful in other projects which have proven much more successful, like FPGALink.
In short, except where our projects are our source of income, it’s not about how many projects we finish, it’s how much we learn from them that matters.
Chris McClelland makes a very good point – for most of us, it’s the learning that’s important, not the finished product. Once you get to the point of getting something working, the rest can be relatively boring as you already know/understand what’s necessary. It’s the eureka breakthrough moments that make developing stuff so interesting.
I think you alluded to that in the original post – “I have to see if this works”.
I wonder how many new projects would get started if you fully understood how they worked before embarking on them 😉
What would be the point?
The crazy thing is, it usually takes a team of people to really get stuff done – and the individuals involved usually don’t understand (or sometimes even like) each other. Often you need someone who can come up with ideas – whether good or bad, someone to just keep churning out new ideas until they accidentally come up with a gem; conversely, you’ll need someone to evaluate the ideas – to discard the ideas that will never work (these two people are often at loggerheads since they’re almost polar opposites). Experts in any field are usually quite focussed and come across as introverted, concentrating on the problem/issue to resolve; sales execs and marketing people often appear to just be show-offs with little knowledge or understanding of what they are selling, since they concentrate on the emotional responses needed to make a sale, rather than the facts and features of the product (again, these two groups of people rarely work well together – think of the engineers and marketing people in Dilbert strips).
The most underrated (and annoying) member of any successful team is the “finisher” – the one who nags everyone else to get stuff done. They don’t care what’s involved (geeks) or how it makes you feel (sales) nor what a great idea it is, nor how hard it was to get to where you are today. They just want the damned thing finished so they can tick the “done” box and move on!
Don’t beat yourself up over not finishing stuff.
We’re all individuals; maybe a better New Year Resolution would be “I’m going to work with other people to help me finish some projects”…..
Great comment Chris, I can tell you have worked with sales people too. 🙂 I guess I need to at least understand and then save examples (usually just code and notes) of working concepts. I guess what I need to finish are some projects that will benefit my productivity, such as a bench top power supply, test timer/meter and a few other thing that would be useful to me, but hey, I’ll get there. Thanks for the post.
Great points made here, and I would add that even if your project doesn’t have the perfect finish – small footprint, neat, enclosure, etc – when you write about it and share it anyway, not only you learned from it, but other people will be able to as well. May I keep that in mind next time I want to buy yet another breadboard because all the ones I have have projects on them already…
Great point Natalia, thank you! I need to go on a breadboard buying freeze.. I love your blog, thanks!
You have so much cool stuff!