Saturday, February 7, 2009

Zen and the Art of Open Source Hardware - Day 4

Hi it’s Chris this time,… I’m posting this a day late because it took a while to edit together from the notes Matt and I have been taking. In the meantime, hello Utah, Arizona, New Mexico, Texas, and Oklahoma! Today, we decided to try out yet another format for the conversation, a bit like the turtle and the hare dialogs in the book, Godel, Escher, Bach. It’s still a bit rough, but it’s somewhat transcribed, and we handed off the computer back and forth at each gas station refuel. Unfortunately, since it's a day late, there are some ridiculous ideas we've had since this, but it wouldn't be right to just skip ahead, so here goes...


Chris: So how did you get started in open source hardware?


Matt: Back in the 90’s, I was in school studying electrical engineering, and learning computer architecture and VHDL, when I started getting a little adventurous, and wanted to make new cores and processor architectures on my own. Why? Just because. I pretty quickly learned that FPGAs are almost entirely proprietary, and the smallest thing requires a license for $10k’s. Then I stumbled onto opencores.org, and that was my first exposure to open source hardware... funny because back then no one even knew what an Arduino was, and yet these days open source hardware is almost synonymous with the Arduino. Anyway, I really like how Justin described the three waves of open source hardware... I think it really describes well how the major communities have come and grown, and each one stronger than the other… How about you, how’d you get started?


Chris: Actually, I’m a car guy, and so I’ve always gotten a kick out of trying the “hack” and increase the performance of an engine… whether for power or fuel efficiency. The problem is that the holy grail of engine modification and performance enhancements is the electronic fuel injection system. These systems let you tweak the fuel delivery, oxygen mixture, and compressions, but are very closed and proprietary. About 5 years ago, I was hacking away trying to make one myself from scratch, and I started flipping through Circuit Cellar magazines, studying schematic diagrams, and eventually learning how to make EFI controllers and enhance a mechanical system… and that’s where I learned about the MegaSquirt, and decided to build the LCDash as open source as possible.


Matt: What made Open Source hardware approachable for you?


Chris: That’s not an easy one… because it really wasn’t that approachable in the car world. The Arduino world is quite a bit different though. It’s approachable because the basic things work with very little effort. I’d probably assign 95% of the success of the Arduino platform to that silly little LED blinking program. So I guess it’d have to be the simplicity and low learning curve for me. What about you, what was the hardest part about open source?


Matt: Realizing it was real stuff. Sounds mundane, but that really took me a while to “click.” I’d also come from coding websites, software algorithms, and what some guys might call “computer science.” A lot of guys like computers, then go into computer science, and somewhere along the way I think they get a little misled into thinking that’s all there is to it. I think some guys just go out and build websites for the sake of websites, and they don’t actually do anything useful in the real world. That’s how I feel about a lot of those funny Web 2.0 sites out there… it really surprises me that people are trying to make them into companies. A lot of them would work much better as cool little hobby projects and things you build because you like to do it, not companies that only make money from ad-revenue! I guess the other thing is that you can be sloppy in source code, and you only really need to focus on the algorithm. Memory leaks, tables that don’t have closing tags, etc. don’t really mess anything up until things get really big, so you don’t have to be perfect. But physical stuff is like making art… there’s a role for a different type of craftsmanship in hardware design versus building a website. When I built the Illuminato, it hit me on the head all of a sudden. I guess the last thing is that for all the talk about collaboration and community, I was surprised that all the open source hardware projects tended to be just the creation of one guy. Like Dave Mellis and the Arduino. I still really haven’t found what I’d call a “distributed, collaborative” hardware development project, where a lot of people build a device together, sharing files and whatnot. But how would you have fixed that?


Chris: I think you’re definitely talking about the tools, and I’d agree. They’re miles and decades behind the software tools that have allowed open source to work. The biggest problem with the files (we discussed this yesterday) is that they save into a monolithic format, not a distributed one. That means it’s very difficult for one person to build a large project, upload it to a source code repository system, and have other people come in and tweak little sections of it. If you look at Linux, you’ve got these guys checking out modules and sections one at a time, and optimizing pieces. So a guy like Linus becomes the architect of the system. We don’t really have the tools to allow anyone in the open source hardware community to become architects. So everyone is just a circuit builder and schematic drawer, and there’s no division of roles. The real problem is that none of the PCB software developers seem to care much about this problem, since they’re perfectly content making licensing fees!


Matt: So what’s the real problem this tool or distributed file format is solving?


Chris: I’d call it “collaborative circuit building.” But no matter what you call it, I think it all comes down to allowing groups of people to build circuits together. Licenses, costs, prices, and all of that are really important, but not as important as building the infrastructure and tools first to allow people to do it in the first place. But speaking of expenses, who pays it? Who pays for open source hardware development?


Matt: I guess I do! Ha, just kidding. Grants, friends, former professors, people we’ve met along the way that have some spare money to throw at hardware projects. That’s where the money comes from. And I guess you could say those are the people paying for or funding open source hardware. Someone finds a really clever way to spin a grant proposal to include the development or purchase of some cool new tools, and some of those tools get custom built for the specific purpose they’re looking at. And then at the end of the development, they just give it out to the community. So I guess you could say grant funders and educational institutions are the ones really paying for open source hardware to work. But I think it’s also interesting to look at who makes money from open source hardware. The truth is, anyone makes money from open source when they’re getting more money than the total cost of their parts (e.g. they’re making a margin) or getting reimbursed for their time. Looking at open source hardware today, the folks actually making margin are the PCB manufacturers and assembly shops, and the online stores that are selling open source hardware devices. If you keep tracing it back the “open source value chain,” component manufacturers are also making money, and then I suppose you could even say the companies that are building fiber sheets for PCB’s are making money too. So plenty of companies in the production-to-selling process are making money, just like a traditional world.


Chris: So should open source hardware projects be sold with profit margins?


Matt: In open source software, the finished product is free (as in speech and as in beer), and a few companies like Redhat make money off of services and support, and others like Sun and IBM make money through association with the principles of open source. But in open source hardware you have a tangible product, and you get to decide what you’re gong to charge for it. Well, I think the cost-plus-margin way is the wrong way of thinking about it. I think open source hardware should be priced and sold like crafts and limited edition art pieces. You’re not really looking at the cost of the components, you’re looking at the labor, effort, and work someone put into a project, and you’re saying, “ok, I’d pay X for it.” And I’m buying more than just a thing, I’m buying what it stands for and what it means. You don’t buy art as the sum of the cost of the canvas and paint that went into it, and similarly I think that “pricing model” should be applied to open source hardware. Right now, the whole open source community seems to be stuck in a system of double marginalization. Someone builds something, they add a margin on top of it, someone else wants to resell it, so they add another margin on top. Anyone who’s actually buying open source hardware is paying margin on top of margin, and that’s just silly. There has to be other ways. How would you price it?


Chris: Well, I guess if we’re talking about the craft of making something, and comparing it to art, why not sell something at the price someone would want to pay, in a way that’s recognizing people’s collective efforts. You suggested pricing it like art, but I think that’s probably wrong too. You want to match up the people who contributed with the reimbursement and rewards. The problem with having the seller set the price is that if they make margin, how (if at all) does the profit get back to the group of people who contributed? Perhaps you want to recognize a number of things – people who put in the time to build something, and people who put in the money to make it. But above all, recognizing the value of time I think is important.


Matt: So what do you think the value of someone’s time is when they’re making open source hardware?


Chris: Yesterday when we were talking about the long tail idea, I was thinking, if someone spends time building something that benefits a lot of people, is their time worth more than someone spending time that only benefits a few. At the extreme, what is someone’s time worth if it only benefits one person, them? Isn’t that the idea that a lot of the guys hyping the long tail idea really mean? I guess you could say the opportunity cost is worth what they could have been making doing something else with their time. But I think most people (like me) have jobs, we’re happy in those jobs, and probably wouldn’t be doing something else in spare time just to make money… instead we’re doing something to have fun. I enjoy programming, so opportunity cost doesn’t really work either. I guess you could say the time value is worth the number of people that benefited from something, times the amount of time or money you saved them with your project. That works when you’re building productivity tools, but not with games and silly programs like your morse code pop song app. Those things don’t have financial value (sorry to say), aren’t saving people money, aren’t being used instead of making money, and so the opportunity cost or value issue comes right back. I think that’s the real problem… almost all of this work and stuff is getting made and built in non-work, non-financial, non-economic time. It’s all happening outside of institutions, outside of companies, or like you say, “beyond the boundary of the corporation”… so what’s the value of having an institution or company any more?


Matt: Well, I’ve read a few places that many of the people who actually work on “open source software” projects, like Linux, Open Office, and Eclipse, are actually full-time employees are real companies. They’re getting paid to do open source, especially by big companies. Thinking about why, you get into all kinds of strategy questions: is IBM funding open source as a way to unseat Microsoft’s OS in the high end server market, where they sell big mainframe computers (how would you even measure if that’s working)? Or perhaps it’s so that the total cost of ownership of IBM Linux-equipped machines is cheaper than HP servers running Windows? Is Sun funding Open Office to unseat Microsoft Office, in order to promote Java over Visual Basic as an enterprise programming language of choice (if so, seems a bit far fetched). So maybe it really is like sports; someone’s paying for it, and getting other types of benefits. Or maybe it’s like prime-time t.v. programs; everyone knows the television shows like The Office and Heros and 24 are just great filler in between the commercials, which are the thing that really make money (even when you include the effects of DVD sales of the full season, they don’t add up to even a commercial break’s worth of ad fees!). But this doesn’t feel right … this feels like every other “well-intentioned” movement; some company comes along and finds a way to use it for their advantage. Seems wrong to me.


Chris: I can just imagine that. Here I am, getting this mental image of thousands of distributed hackers programming away in their apartments late at night, when actually they’re commuting into work from 9-to-5, sitting in cubes like me and you during the day. I wonder how many truly lone, non-employed open source hackers there really are? I guess the biggest problem I can see is that full time coders are going to write more code than part time guys working nights and weekends. And a platform isn’t as strong if you have just a few guys coding and testing it. Anyway, I also wonder what it is about California, New York, Boston, the Netherlands, and England that have so many Open Source communities. Looking around Utah, Oklahoma, Indiana, I understand there are cities, but I wonder if they have critical mass to have physical communities?


...lunch, the topic being open source names, brands…


Chris: So what’s the value of open source and open source hardware, and is it a brand?


Matt: It seems like a project becomes a brand when many people have contributed to it. It seems a little funny that when assigning a name to a project it loses the person’s name that built or contributed to it. That’s why I feel funny calling an open source project by its project name. Regardless, some projects get popular and develop reputations, and then after the fact, contributors in the community also get those reputations by association. I wonder if that’s how large companies are thinking about it? People who run companies want to associate themselves with brands that have good reputations, and they gravitate to good open source projects.


Chris: So “Open Source hardware” is a brand, and that means it does have value because sharing and being open tells a lot about the motivation behind what finally gets sold. If something is open source hardware, it tells you it’s being built to be used, not marketed. It means someone’s not trying to up-sell you on features or functions that it doesn’t really do, hoping that you’ll be convinced into buying it. Also, open source hardware has another type of value, because it tells you something about what you can expect when using it. On the upside, you know that you’re going to be able to change it, edit it, read schematics, solder your own stuff onto it, and maybe even completely change what it’s supposed to do. On the downside, you know it’s probably not 100% fully tested and functional, there will likely be some rough edges, and you’re not really dealing with a warranty or service plan, or anything like that so if it breaks, the response is probably, “uh oh, can someone help me, please?” and not, “you’re a horrible company, I want my money back, and I’m suing you.”


Matt: There’s a whole other topic we haven’t even started talking about, about open source licenses, warranties, and what people’s rights are in a community and when they buy stuff from the community. Companies typically play the role of “limiting liability” in order to protect individuals in a company from getting sued into losing all of their personal assets when something they made breaks. I think some historians even trace some of the first “limited liability” clauses to U.S. railroad company grants (as opposed to the first companies, which I think were around the trade charters given to shipping expeditions). Anyway, the point is that companies usually protect individuals by letting them hide in a way behind a corporate liability shield. On the other hand, in the open source world, companies seem to be created for exactly the opposite reason – for helping to create liability for service, quality, support, etc. Makes me wonder whether a “company” is really the right organizing form for open source hardware. I’m not convinced! Maybe that’s why liquidware isn’t really a company, it feels much more like a group of random guys that each pitched in to pay for some part of the infrastructure… Mike pays for the credit card processing, Matt for the adwords, me for the Paypal integration, you bought soldering stations… what do you call a bunch of people pitching in their own money for the sake of it, with no expected return? Stupid, right? :-) On a serious note, there are many different organizing forms than corporations, so maybe that'll be the topic of more investigation tomorrow...?


...dinner on the run...


Chris: Well, at the end of every day, we’ve asked ourselves whether what we talked about has changed how we think about the meaning and practice of open source hardware. Has it?


Matt: Yes, I think it has, and it had a lot to do with our tools conversation. I’m starting to view “open source hardware” more as a verb instead of a noun or adjective because it requires a community of people sharing and contributing. That sounds a lot more like a collective set of actions rather than traits a product or project has. What about you?


Chris: Definitively, in fact, by “doing” open source hardware, it means that you’ve contributed to the development of a tool or platform. So I’d call open source hardware the process of contributing to building tools that constantly change. The reason you’d want to do this is because tools typically become outdated and obsolete, but if they’re open sourced, they can evolve with time. Anyways, this reminds me it’s probably time to contribute to the evolving definition of open source hardware on wikipedia, even if it means getting into edit wars :-)



No comments: