April 2007 - Posts
Homo economicus, or Economic man, is the concept in some economic theories of man (that is, a human) as a rational and self-interested actor who desires wealth, avoids unnecessary labor, and has the ability to make judgments towards those ends.
http://en.wikipedia.org/wiki/Homo_economicus
In my last post, I mentioned how many free (and good) resources are out there for software developers. These resources didn't just leap out out of the void into existence. Many people spend lots of time, mostly unpaid, producing them. So at first glance this behavior seems like a direct challenge to the economic man theory. It takes a lot of effort (labor) and does not produce a lot of wealth (being free).
One way to respond to this is to say that the economic man theory is hollow; that people are often best motivated not by money, but by other sources, such as craftsman's pride or a desire for community recognition and respect. So exit the rational, greedy man, enter the more enlightened open source hacker.
Or, maybe, enter the enlightened greedy man? Consider being an applicant for a desirable development position and being able to showcase a portfolio of your contributions that included tutorials and the source code for work you have done. I would guess that most of us don't own the code we write at work and probably cannot share it outside the organization.
It would be a definite leg up to have some code you could showcase freely. Furthermore, while working on a free resource you might end up connecting with someone who will either want to give you a job, work with you on your next one or go with you on your own new venture. Even within your current job, you might be able to argue yourself a raise in pay if you can show that your work is valued within a software community. Really, it might make economic sense to do this kind of work for "free."*
So, is the Economic man hollow or not? Being somewhat cynical (and aware of a certain level of concern over online reputation among the programmer crowd), I prefer the first response, that of the redefining wealth to include intrinsic values of craftsmanship and social status. Besides, would a bunch of pure profit seekers start nearly as many entertaining flame wars?
*For the purposes of full disclosure, I will note that my own argument has not convinced myself to contribute to the pool of free resources. Hopefully it will be more persuasive to you, the reader, who can continue to provide with me interesting free content and projects.
*aka little thoughts that didn't quite merit their own full post
1. Replacing the Green Liquid
When I was fresh out of college and trying to adjust to the working world, I read about how one programmer and his friends rated the difficulty of coding tasks in terms of how much coffee or Mountain Dew they would need to drink to finish it. Coffee was "the black liquid", Mountain Dew was "the green liquid". As Mountain Dew contained more sugar and caffeine it was of course worth more than coffee. So a really tough task might require 3 of the green liquid, where an easy one might just be one of the black liquid.
Caffeine, sugar and coding tend to go hand in hand. In college, I certainly had my 3+ Mountain Dew nights while finishing off projects for class. Work did not feature the all nighters, but it was still tough to keep my energy level up without caffeine. Of course sleeping more helps, but sleep is always tough to find. After a little time outside of college I got a handle on the caffeine usage, but I still felt like my energy level went up and down too much during the day.
Finally, at the beginning of this year, I decided to try something different. I picked up a book about the Core Performance nutrition plan. The basic idea was more meals during the days, but smaller meals, with less sugar and fat. The idea behind the idea was that fluctuations in blood sugar levels cause you to feel tired, so if you keep your blood sugar pretty steady during the day (with the small, not super sugary meals) you won't have energy spikes up or down.
After about 4 months of trying to follow this plan, I am happy with the results. It really has leveled out most of my energy peaks and valleys at work; with more energy at work I've felt more motivated to work out more, which has also helped. I won't get any more infomercial here, but let's just say I'm thrilled to have replaced the green liquid.
2. Loving the Free Stuff
Everybody likes free stuff, so I'll be a little bit more specific. As I'm learning Python and now trying to figure out TurboGears, I am amazed at the amount of free resources out there. Beyond the language itself and tools, there are tutorials, message boards and screencasts around to help. It's not just the open source guys either; Microsoft has really gotten into the game with the Visual Studio Express editions and various Virtual PC images of newer products. At this point, if you have the time, you really only have yourself to blame if you can't find what you need to pick up a new language or tool.
3. My Real Life is Just Not an iLife
A good friend of mine recently checked out my blog and asked what was going on with my Macbook; had I switched to Apple and OS X? The short answer is no; I like the Macbook itself, but I run on Vista on it and barely touch my OS X install except to get driver updates from Boot Camp. The longer answer is that I don't have anything in particular against OS X, but nothing about it jumped out and grabbed me enough to make me want to switch.
From a tech perspective: I don't have security issues with Windows (I have not been infected with spyware or a virus in quite a while); I don't have too many stability issues either (my machine at work goes nuts on occasion, but I'm using Visual Studio all the time, so not many options there). DRM wise, what I want to play on my machine I can, I haven't felt restricted yet. Finally, Vista came with its own integrated search, so Spotlight no longer was of that much interest.
From an application perspective: My work is mostly in Visual Studio and with Microsoft languages, so that's a big vote in Windows favor. Outside of work, I haven't felt the need to even open iWeb, iPhoto (I like Picasa), iMovie or Garage band. Beyond that, the open source stuff I've been working on is available for Windows. So for me, OS X just did not fit better in my life than Windows.
Stare decisis is a legal doctrine which assigns weight to the precedents established by previous cases. Consistency is placed at high value, sometimes over absolute "correctness." Consistency provides predictability, which helps individual in societies plan for the future, feel secure, etc.
Software developers like consistency as well, in terms of design and code style, especially within large organizations where many hands may look at and touch the same code. Just like past court decisions, previously written code begins to acquire more and more weight, appearing to be invulnerable to change.
This can be frustrating as software developers frequently want change. Most developers I know are very concerned about "correctness" or best practices. Best practices evolve over time (sometimes quickly) and developers get anxious to update existing code bases to fit into the latest and greatest paradigm.
The thought of significantly rewriting or retesting components to make this kind of change can be daunting. In effect, the old code has taken on the weight of stare decisis.
However, unlike the courts, software developers have many tools at their disposal to minimize the effect on the system in case they decide to make a change. In particular, tools that verify predictability, also known as tests.
Tests can be manual or automated, unit or system level, but all serve the same purpose when updating old code: to convince yourself that the code still works after you change it. You may end up convincing yourself incorrectly, but testing the tests is a level of meta deeper than I want to go right now.
Of course tests have some weight of their own as they require effort either up front to code them or at the end to the execute them manually. However, by taking on this weight, you lessen the burden of the old code and create a space for change.
And that's one of the great things about working with software. You have lots of different ways to do things, so you have lots of choice. Even better, you can minimize the cost of choosing poorly; a failed unit test is fine. So you have a tight feedback loop. With this type of constant experimentation, the thing that surprises me is not the speed at which our field evolves, but that it doesn't change faster.
I have praised the online music store, eMusic before and continue to like it. I am still a subscriber and eagerly await my new set of downloads every month. However, a couple of weeks ago, I had an interaction with their customer service department that I wanted to share.
What prompted me to email customer service was the discovery that a band whose music I had downloaded the previous month, Bloc Party, was now no longer on eMusic for download. I figured they had gotten more popular and their label could not reach a new agreement with eMusic. But, I was curious to see what kind of explanation eMusic would give me, so I sent them the following email:
In general I have been thrilled by your service. I have discovered some great new artists and enjoy the clean, easy to use interface of the website.
However, I recently downloaded an album by Bloc Party, Weekend in the City. The album was great and I came back to get their previous album, Silent Alarm. All of the sudden, neither album is available for download anymore.
What happened? Is there any chance Bloc Party will return to eMusic? Is there anything we as fans and eMusic users can do about this?
eMusic responded within 12 hours, which is impressively quick, with the following underwhelming email:
Thank you for contacting eMusic Customer Support.
Unfortunately, the label you referenced is no longer available for download from eMusic. eMusic distributes
music from more than 2000 labels. From time to time, these partnerships end and eMusic must remove the
material from the service. Although we regret having to remove any content, we do
not have full control over these relationships. Our goal is to provide subscribers with the widest variety
of music from top labels and we continue to be extremely aggressive about retaining existing labels
and adding new labels.
We apologize for the inconvenience. Please let us know if we can be of further assistance.
Why was this response so underwhelming? Because it is so clearly a form letter style response, with all context lost, which does not do anything to make me as the consumer feel that my comment was really heard. I don't expect a work of fine prose or really much more beyond a form letter response, but even for a canned response, they could have done better with something like the following:
Thank you for being a valued member of the eMusic community. We are glad to hear that you enjoyed the Bloc Party downloads.
Unfortunately, as sometimes happens, we could no longer continue our relationship with Bloc Party's label, Vice Records, and at the present, can no longer offer you any additional downloads for them.
We will continue to be extremely aggressive about retaining existing labels and adding new labels, so perhaps in the future we can offer you Bloc Party downloads again.
In the meantime, thank you for your feedback and you can try to contact Vice Records through their website for more information.
To tide you over, here are what other eMusic community members with similar download histories have been enjoying recently:
This response directly answers all my questions, highlights the rest of the library and music recommendation features of eMusic and in general strikes more of an appreciative and less of a sterile tone. Still a form letter for sure, but it would have brightened my day a little bit.
On a related note, it looks like Bloc Party is now on iTunes, so perhaps the response would have best read, "sorry, we tried, but the 800 pound gorilla in the room kind of won."
With the release of AppleTV, Apple has again made a splash in the computing world. This splash is sure to be accompanied by the usual chorus of disbelief from commentators that despite its innovation and obvious advantages over Microsoft, Apple's share of the PC market is only at 6 or 7%. To point this out as a negative assumes that Apple's goal is gain significant market share and perhaps replace Microsoft's software on most people's computers. This assumption is false. Rather than pursue a strategy of seizing large portions of Microsoft's market share, Apple seems content to be a minority or niche player, aggressively cultivating a brand, choosing the strength of their vision of computing over the strength of numbers.
In some ways, Apple spends a lot of marketing dollars arguing exactly the opposite. From the "Switchers" campaign to the Mac and PC guy commercials, Apple certainly looks like it is going after Microsoft and its mass of users.
While these ads have generated some demand for Apple and its products, Apple's other business strategies put a corresponding damper on any sense of mass enthusiasm. Apple asserts absolute control over every aspect of its product, from hardware, to software, to where and how you can buy it.
You never really just buy OS X, you buy into the Apple "lifestyle". This lifestyle is a creative, stylish, anti-establishment, and hassle-free. This lifestyle is not free of cost however; Apple needs to control the hardware specs and design to pair well with their software. Apple could not get away with selling the Mac equivalent of a $400 Dell PC with onboard video and 512MB of RAM trying to run Vista. This raises the price of admission to the Apple lifestyle above that of the Microsoft world. The consumer level iMac starts at $1000. And never, ever goes on sale. Fire sales don't align particularly well with the image either.
So the consumer ends up having to pay more to get in, never really gets the satisfaction (albeit ephemeral) of finding a "good" deal, and can never try the operating system at home on their existing hardware first (OS X won't run on your typical non-Apple PC). If the goal is to get people to switch, Apple isn't working too hard to lower the bar.
However, I don't think that Apple would be all that upset by this analysis. The advertisements promote switching for sure, but really they are more concentrated on continually building up the image of the elite lifestyle Apple has branded so well. Until we see OS X pre-installed on a square box Dell, extremely unlikely due to the checkered history of the Mac clones, we will know that Apple is not playing the gain the most possible market share game. Instead, to their credit, it looks like they are playing the also profitable capture the luxury market share game.
This weekend I was working through a tutorial for creating a very basic wiki using the Python web framework, TurboGears. The steps I had to take were:
- Download and install Python 2.4 from ActiveState
- Add c:\python24 and c:\python24\scripts to my path
- Download tgsetup.py
- Open a command prompt to the download location and "python tgsetup.py"
- Download python bindings for sqlite (a file based local database)
- Follow the wiki tutorial
For the purposes of complete disclosure, I started the tutorial and ran into some errors with sqlite, which led me to have to install the binary version and not compile it myself. But that only took a few minutes to figure out.
Otherwise, the tutorial was worthwhile as it gave me a good high level view of the different components that make up TurboGears, but also forced me to write (or at least copy and paste) some code.
Following simple instructions, along with judicious use of Ctrl-C and Ctrl-V is not exactly the stuff of legends. Compared to what I do at work on a day to day basis it is actually kind of sad. However, I realized that while I can map concepts from a known language to a new one, I still need to learn the new libraries; so the mundane, leaping the small buildings, will have to do for now.