Sponsored Link •
If youd like to earn a living doing what you love most, and if that happens to be writing software, then lower your eyes, purse your lips penitently, and force yourself instead to look for dollars in tangents: write books about it, consult on it, sell hardware to run it, teach it anything but aspire to live from crafting software itself.
Ok, that was sarcasm. But many espouse the same views sincerely. Should any individual or commercial entity profit from software? To make the question simpler, eliminate domain-specific software and ignore verticals: should we profit from horizontal, mainstream software? How about from server-side software infrastructure?
Before offering my own opinion, here are a few observations:
Its a bad time to be selling software infrastructure. Everybody overpaid in the enterprise, we are told, hoping for some software vendor to share accountability for their risks, and they mostly ended up with bloatware hidden behind EULAs compensated for only in part by hefty service contracts.
Many Americans in particular complain about the high cost of creating commercial software as a reason that outsourcing has surged. In my recent product experience, however, Im surprised to report that developers overseas have proven far stronger technically than the majority of American CS grads and elitist gunslinger engineers Ive recently interviewed, and I have felt assured that the product was improving by moving off shore. If the technical improvement was not to be had, product development would not have shifted, at least in this instance.
Its hard to escape noticing that many of those I respect most in this profession see a character flaw in the fact that I design commercial software products as my primary source of income. For pay. For shame. Im making light of it now, but heres a secret: sometimes I wonder if I ought to feel shame, indeed. Like the boyhood Catholic guilt I cant leave behind no matter how sincere my adult interest in more reasonable theologies, it could be that this is some holdover angst from projects Ive released and maintained in the open source world; but whatever its root cause I think the question is valid.
Economically, vendors are fighting history. With a couple of obvious exceptions, no major company has managed to scale horizontal software revenue alone separated from services, hardware, support, training, domain-specific solutions, etc. to stand as its profitable foundation. Of the two (possibly three) exceptions among major companies, the one wildly successful exception managed to scale software to such heights only by growing a monopoly (not a great thing even if you do think its acceptable to make a buck from software itself). The other largely successful software companies selling server infrastructure either use it as an enabling technology (to sell hardware or services) or remain fairly small or niche players this is not intrinsically bad, and perhaps it is the natural way of the world (if so, bad news for BEA, a software infrastructure company in a hardware and services world).
Interestingly, those who use software infrastructure to build applications often seem to resent its presence more than do other sorts of users, and engineer/consultants remain suspicious of their brethren who build the stuff unless those brethren contribute to open source infrastructure products, which somehow seem more palatable.
I do believe in the value of peer review, and do believe that a certain sort of software not all, but certain sorts can attain higher quality through the unique brand of peer review that open source encourages. Motivation through fear and pride is not to be underestimated. Theres a good deal missing there that more focused experiences provide, such as deep contact with the user during development, peer review with accountabilities, and real-time collaborative development between engineers as well as QA, but still the democratic peer review of open source is a great thing. Im not seeing how that makes it more ethical, though.
There are a few engineers whose altruism is sincere and legendary, and it touches a lot more than just the open source software they develop; they live their lives by it. More power to them. However: Most of those with commit privileges on broadly-adopted open software products make money by selling services, training, support, and the like for that open source software; they are making money not on their core strength that is, assuming they write software better than they do anything else (and if they didnt the peer review process loses some of its luster) but on a myriad of activities tangential to that core talent. This might be perfectly ok. Maybe musicians should make more money teaching music lessons than from selling concert tickets. Really, I dont know. As I say, I have created open source projects and contributed to others; Im not questioning its technical and social merit, Im questioning the ethical elitism it can engender.
As I hunt for an analogy in more mature engineering, artistic, scientific, and professional disciplines, I cant come up with a good strong fit. Is this the same as asking if anyone should profit from building a bridge or a highway? Thats actually not a bad model for software, if its hosted rather than shipped, and service-orientation tells us most all will be eventually. The highway toll might equate to micropayments (if anyone can get that stuff figured out in a big way other than the guys who pulled together Apple iTunes).
My own opinion:
For now, Im going to stop over-thinking it. I enjoy writing, I enjoy speaking, I (occasionally) enjoy teaching, and all the rest. But I am also happy not to make a living doing any of those things. Perhaps Ill open source them, and write a book or consult for free. I am content to make a modest living doing what I love best: crafting software itself. I think my users and customers gain more value from that as well.
|Sean Neville is a software architect at Macromedia where he is focused on creating the Flex platform. His previous projects include the JRun application server and Flash-related products for J2EE and .NET. His experiences include membership in the JCP Executive Committee and numerous JSR expert groups; authoring articles, contributing to books, and speaking on enterprise topics; financial services app consulting; building doomed yet fun web startups; maintaining open source projects; and half-decent fiddling of Irish jigs and reels.