When you find yourself shaving a yak, stop, take a deep breath, and get back to your project.
Yak Shaving? I heard this analogy during my trip to the MIT Media Labs visit earlier this week. Jean Baptiste told a great story of what Yak Shaving is. Let's see if I can re-create it:
You want to do something like walk your dog. But first you have to put on your shoes. But they're buried underneath a pile of clothes so you have to clean the room. To do that you have to get out the vacuum. But before you can do that you have to... You see where this might lead: soon you find yourself in a field shaving a yak.
Pulled from LiminalMike's flikr page
Here's a SparkFun analogy: You want to build a big/cool/fire project, but a small part of your project uses an accelerometer. You could build it yourself:
Now we realize that all of this is possible and we like to show people that they can do it themselves (SMD soldering, PCB layout, coding, etc). But what happens when something doesn't work? Was it the layout of the PCB? Did I solder it correctly (ahhhg! Is that joint soldered or not?!). Did I setup the pin correctly, or is it my code?! If the accelerometer was a small part of the overall project, you're really spending a lot of time on a small aspect of the project. The other option is to buy a breakout board (from us or anyone). The benefits:
At SparkFun, we sell yak fur to take you one step in the forward direction. We realized long ago that people have ideas and they need to get those idea implemented. Concentrate on your project and don't let the details hold you back too much.
Anyone remember the story of Mozilla? They decided to scrap the entire code base and start over. But before they could start on the new code base, they needed a good bug tracker... Yak Shaving! Now good things can come from Yak Shaving (Bugzilla is decent), but don't get distracted from the prize. The original goal was to create something innovative but instead they took a few steps back.
Anyone know of other good yak shaving stories? Seth Godin does a pretty good job of explaining it as well. Perhaps your own adventures?
YAK Shaving
Hey Sparkfun! This story was originally told to me by Adam http://www.kumpf.cc !
GNU Shaving
While at MIT you talked at CSAIL about the challenges of being a creative structure. One of the attendee was Richard Stallman, mentionned in the Yak story (Emacs > GCC > Free Software > Free Culture > Freedom > Freelosophy >> GNU Shaving
Free Animals
Unlike Seth Godin, I think research is about detours and constant re-configuration of our experiences. All these recursive practices aren't new (Cybernetics, Bootstrapping, G(NU)). They definitely should be cherished as well as the animals they allow us to discover. Of course, as in many field trips there are many fences such as Copyrights, Datasheets with NDAs, and other commodified knowledge.
LibreElectronics
Of course a company like SF has constraints and challenges that may prevent to develop such free fields but maybe there are some hackers in the audience that would like to celebrate the idea of Libre Hardware and Software Design :]
Cheers,
Jb
It pains me to agree with this post, but there are distinct advantages to doing an initial build with BOBs and such.
Another term surrounding the whole 'yak shaving' idea is NIH (Not Invented Here) Syndrome. As an engineer, I myself have been guilty of doing something from scratch when it'd have been much faster and easier to integrate another's efforts into the project.
As an example of NOT shaving the yak, I'm currently designing a GPS tracker. I plan to design my own integrated board for the final product, but my "prototype of a prototype" is 80% modules from SFE and others. This lets me get do my firmware development in parallel with the final hardware design, which should result in a much better project.
Shoot - I didn't want this post to sound like you should buy all our wares and never fiddle on your own. I completely agree with learning core principals. Engineers (and hacker folks) should certainly learn how to design PCBs, learn to solder, etc. It gives us great insight into what others had to do so that we can stand on their shoulders. I was trying to show that there are traps that we can fall into if we (as designers) try to invent the wheel. It's always a balance.
Thanks for the NIH syndrome/term - I had not heard that before.
Well for what it's worth - I took the post as promoting SFE (with which I have zero problem) but not as discouraging people from 'fiddling on their own'. Even building something with premade/predesigned modules, people are going to learn something.
What it comes down to for me as a businessperson is: getting the job done in the most efficient manner possible.
A perfect example from industry is power supplies. If you open up a lot of electronic equipment, you'll find an off-the-shelf power supply sourced from someone other than the device manufacturer. There are a lot of reasons for this, but at the end of the day the manufacturer decided to buy part of their design from someone else because it was the most efficient decision.
I could just as easily come up with an example where it makes more sense to do-it-yourself. Point being, both approaches are appropriate depending on the occasion. I do think engineer/geek types, because our egos are often rooted in our technical proficiency, have a tendency to assume that we can do it better (NIH Syndrome), and waste a lot of effort reinventing the wheel.
So don't worry, your message was a good one since it may help people to make better decisions with the end goal in mind.
I'm shaving a yak while reading this post!
Now, I'm just going to post this pointless message, then I'm going to get on with looking up whatever I was looking up before I got onto this, which was to do with the stepper on my desk, which is meant to be in a machine, with some code I was writing, once I've got the machine design set up right.
1) Couple about to get married buy a digital camera together.
2) Computer one has is not up to the task of downloading and storing pictures, so they buy a computer.
3) Computer will not fit in the desk they had, so they buy a new desk.
4) New desk will not fit in space allocated in their appartment, so they go out and buy a house.
Simple $200 camera turns into a $500,000 purchase.
My favorite Yak Shaving example is from the teaser for an old "Malcolm in the Middle" episode. As Lois is leaving for work in the morning, she asks Hal to change a light bulb. He goes to open a drawer, but notices that it's not working right and picks up a screwdriver. Cut to Lois arriving home after dark. Hal is in the driveway hoisting the engine out of his car. She asks, "Did you change the light bulb?" "WHAT DO YOU THINK I'M DOING!?!" he shouts back.
Story of my life.
All this time I thought Yak Shaving was a holiday.
http://www.youtube.com/watch?v=03jc7chUEew
Where I work we call this "But First Disease" and it can be deadly!
Good analogy. When I started back into electronics, I purchased an Atmel prototype board and started learning assembler. Then I got the WinAVR C compiler. Things went from painfully slow, to just slow. I finally got an Arduino and things went to fast. I recently purchase one of the 2 axis accelerometer breakout boards. Pins lined up on the Arduino, downloaded some code from the Playground and saw results within a few hours verses a few weeks. No more Yak shaving for me.
I came here looking for some tech info on my new methane sensor but got distracted by an investigation into the history of Yak Shaving. Dammit.
I always say 'make it work first' then make it smaller, lighter, less expensive . . . whatever. But first make it work, and this is where BOBs are useful.
Now, for the SFE guys - Why not create Eagle parts for your BoBs ? Not that it's hard to do, but having the dimensions and pin outs already down would be very helpful in prototyping. I've created a part for the LPC2148 Data Logger, and have used it in a number of designs to quickly let me find what the pin outs are, and lets me make a compatible board in a jiffy. Same with other boards.
I'd like to second the call for a BoB Eagle Library. :)
I've spent a lot of time opening up schematics, copying layouts, deleting layers, et cetera - just to get a BoB footprint down. Not having BoB libraries isn't something I'd criticize SFE for, but it would be yet another nice value-add.
so cool sparkfun & JBL met. Great dude, happy to read his posts on Art Sensitif. Hi5 from France !
Jeesh. Who does Jean Baptiste not know? The Pope? No I bet he knows him too.
This is really great Nate!
Its completely the idea I had around making bildr. Don't lose vision of your idea by spending all your time on the stuff that isn't the point. (though I have been yak shaving with making bildr i have to admit)
Unless whomever at SF doesn't RTFM the datasheet or doesn't notice that it specifies a low-ESR cap and drops in a Tantalum.
The Arduino is perhaps the best example - at best you have DIP parts which can go on a breadboard, add crystal, regulator, etc. Then you have to program it. Connect the ISP?
The environment gives a general purpose OPEN suite of hardware and software. I often use the IDE just to get something working, then can transition to makefiles.
Or put the bootloader into other hardware and still use the IDE.
Or any other combination.
Who me? What? :)
http://www.sparkfun.com/commerce/product_info.php?products_id=9371
I made an assumption and it was wrong. I got a sticker that day.
Yet another reason why Sparkfun is amazing.
-Keep doing what you guys do.
I agree that this can be a real problem, but it seems like one that is easily overcome with a little commonsense (or a good project manager!) The constraints and objectives of the project should dictate how much "Yak shaving" is necessary. If your goal is to tinker and learn it's probably a great way to proceed. If, on the other hand you are building something with a deadline, budget, client, etc usually, the fastest, cheapest, most effective solution is best and that often involves off-the-shelf purchases.
BTW your ADXL345 board is awesome, just launched it and an Arduino FIOw /Xbee Pro in a rocket and it worked great!
The "canonical" yak shaving story from MIT's CSAIL: http://projects.csail.mit.edu/gsb/old-archive/gsb-archive/gsb2000-02-11.html
...and a response from Harvard: http://projects.csail.mit.edu/gsb/archives/gsb-msg00088.html