Posts tagged with 'economics'
VM "Vicky" Brasseur talks open source and free software. This episode is sponsored by Smartsheet.
Show Notes:
-
Patreon: VM (Vicky) Brasseur is creating writings & talks, supporting free & open source software
-
Some free and open source software mentioned in this episode:
-
Copyleft was mentioned at least once.
-
Paper: Open Source Archetypes (PDF) by James Vasile and Karl Fogel
-
Utility is a concept brought from time to time in EconTalk, one of my favorite podcasts.
-
In this episode, VM discusses Microsoft’s patents. This episode was recorded BEFORE the announcement from Microsoft joining the Open Invention Network. (This is one of the reasons I like to say the date of the recording at the top of every episode). I did not reach out to VM to get any further comment on this event.
-
Redis licensing changes. We had an extended discussion about Redis licensing that I cut just due to time constraints, but definitely reach out to VM if you have questions!
-
Something else that happened since this podcast was recorded: MongoDB made a license change. I think it’s similar to Redis’s change, but I’m not entirely sure.
-
Book: Producing Open Source Software by Karl Fogel
Want to be on the next episode? You can! All you need is the willingness to talk about something technical.
Music is by Joe Ferg, check out more music on JoeFerg.com!
Welcome to another "Weekly Concerns". This is a post-a-week series of interesting links, relevant to programming and programmers. You can check out previous Weekly Concerns posts in the archive.
- I've been exploring the Command/Query Objects pattern, specifically with the idea of replacing the repository pattern. I've started with Dustin's Brown post about Command/Query Objects with Dapper.
- How to setup Twitter Cards for your site (specifically WordPress, but blog post is helpful for everyone else too).
- Rob Gibbens posted about using Fody.PropertyChanged (an AOP plugin to the Fody IL rewriting framework) with Xamarin to use the MVVM pattern.
- EconTalk is one of my favorite podcasts. Check out this episode about the "sharing economy", in which they discuss the impact of technology like Uber, AirBnb, and so on, featuring my favorite guest: Michael Munger. Especially interesting to me is the discussion about taxi medallion investments.
If you have an interesting link that you'd like to see in Weekly Concerns, leave a comment or contact me.
Welcome to another "Weekly Concerns". This is a post-a-week series of interesting links, relevant to programming and programmers. You can check out previous Weekly Concerns posts in the archive.
- Why Your Previous Developer was Terrible - I tend to lash out emotionally when I see bad code, but I always feel uncomfortable blaming the previous developer, since I have no idea what kind of constraints (personally and professionally) they were working under. It's not always possible, but I try my best to seperate the art from the artist (and the code from the coder).
- Learn CSS Layout is an interesting CSS tutorial, that kinda reminds me of the various koans and git immersion types of tutorial sites.
- Did you see that "Everything from a 1991 Radio Shack ad is now done on your phone" thing making the rounds recently? Here's another analysis of technology costs then and now. Very roughly, the equivalent technology is not the $3000 nominal price in the Radio Shack ad, but at least $3.56 million.
- In MySQL, there's a sometimes handy GROUP_CONCAT function built in. Pete Shearer shows a way to accomplish something similar using FOR XML PATH and Microsoft SQL.
If you have an interesting link that you'd like to see in Weekly Concerns, leave a comment or contact me.
I was listening to Econtalk (again). This time the guest was Anthony Gill on the topic of Religion. He brought up a well-known quote quote: "I don't know how Nixon won. I don't know anyone who voted for him". This quote was used to demonstrate the same principal that applies when academic economists don't think that a topic like religion is worth studying.
(By the way, that quote is often attributed to Pauline Kael, but it is somewhat apocryphal).
However, I thought the quote was very interesting, and something that I think can definitely apply to anyone (not just politicians and economists), including developers. It's quite easy to get caught up in the same sort of technological provincialism. Since I've worked with Microsoft tools for most of my career, I've worked with lots of other people who've also worked with Microsoft tools for most of their career. I could easily dismiss Java or Ruby or PHP or whatever with an attitude of "I don't know anyone who uses it, therefore it must not be important".
This phenomenon has its own logical fallacy: the "hasty generalization" or the "unrepresentative sample". It can even take the form of something more ugly like fanboyism or, shall we say, "overly optimistic" viewpoints about technology. I don't want to start a flame war, but I'm sure you can think of a few technologies or products that might apply.
I know that I'm not immune to this phenomenon, but I've tried to take steps to combat it.
First, I'm a heavy Twitter user (follow me @mgroves!). My goal is to follow as many developers as I can in my region of the world (midwest USA). Not just .NET developers or web developers, but any developer: Java, Ruby, COBOL, MUMPS, FoxPro, ColdFusion, anything. I believe that every developer has something that they can teach me, no matter what tool they do their job with. I've often called the people I follow on Twitter my "140 character mentors". I don't agree with everybody. I occassionally groan when I see things tweeted about politics or religion or technology (or whatever) that I don't agree with. But I'd rather be challenged and uncomfortable than stagnant.
Second, I go to conferences and make an effort to talk to people I've never met before and go to sessions that are outside my area of expertise. This has exposed me to all kinds of awkward and/or shocking conversations (ask me about how I first met @PerryNeal sometime), but every new person or new topic can be an opportunity for me to improve, even in a small way. This is especially true at conferences like CodeMash that aren't organized around a specific technology or a specific vendor.
To wrap up: there's a whole world out there outside of your own technology's borders. You don't have to emigrate there, but you can learn something by travelling abroad every now and then.
Edit: I wrote this post before I learned about the passing of Jim Weirich, but I wanted to make special mention of him here. Jim was often considered a "Ruby" guy, but his knowledge and interest expanded far beyond that technology. By attending his sessions, I learned about some advanced ideas of OOP from him and from a book he recommended (What Every Programmer Should Know About Object-Oriented Design), as well as feeling comfortable with Git for the very first time through a live workshop in which he used Git Immersion. I think of him every time I read the book and every time I use Git, and I think he stands as a shining counter-example to the phenomenom I described in this blog post.
I often listen to the EconTalk podcast, because I have an interest in economics, and I also enjoy looking outside areas of my own expertise for ideas and thought processes that can lead to results within my area of expertise. I've been trying to think about ways to apply economic theory to software.
Let me warn you now that I don't have a conclusion or really even a hypothesis yet. Just some observations and random thoughts. So don't be disappointed when you read through all this and I don't have an answer (yet).
Recently, I've been thinking about the incentives that are involved with teams writing software, and trying to achieve the optimal outcome with a given team.
While reviewing one of my favorite episodes of EconTalk (October 27, 2008 Episode, "Munger on Middlemen", with guest Mike Munger), I was reminded of a reasearch paper entitled "The Economic Organization of a POW Camp". It's not a hypothetical paper--it's based on accounts from POWs in WW2. The episode covers it quite well, but here's a quick overview:
- Each prisoner of war receives a care package from the Red Cross."...the supplies to each person were equal and regular."
- Each prisoner is free to make trades.
- A priest in the camp makes a series of trades, starting with a partial care package.
- At the end of all his trades, the priest ends up with the equivalent of 1+ care packages worth of goods.
So what happened? Preferences, prices, and the role of the priest as a "middleman". (Side note: "middleman" is often used as a pejorative, unfairly so. Listen to the podcast episode for more on that). From the paper: "it came into existence not by conscious imitation but as a response to the immediate needs and circumstances."
If a Red Cross package contains cheese, and I don't like cheese: that cheese is essentially worthless to me. I prefer to have cigarettes. Someone in the next barracks doesn't smoke, but loves cheese. It's in our mutual best interests to trade. However, finding each other and intiating the trade is time consuming--we might not ever get to make the exchange because we don't have enough information. The priest, however, travels among the barracks, learning preferences, enabling trades, and possibly even performing exchanges and distribution. Through his knowledge of the "prices", he is able to a) help everyone else improve their goods according to their preferences, b) improve his own lot, c) direct the economy towards equilibrium by his actions.
On a software team, we aren't exactly prisoners of war (i.e. we aren't "independent of [our] exertions"), but we are also faced with similar challenges of scarce resources: We perhaps have a fixed budget or a fixed amount of time. We are "prisoners" of constraints. And everyone has preferences: some of the team doesn't like writing tests; some team members hate working with the UI; some team members are bad with SQL; certain members want to use a new JavaScript framework; etc. There are other tasks like dev reviews, documentation, etc, about which people have various opinions and preferences.
A typical approach that many leads would take is essentially that of a dictator or a centrally-planned economy: a top-down assignment of activities that the lead thinks are allocated correctly, even though in reality he'll never have enough information to make every optimal decision. He's giving everyone a Red Cross package, but not allowing or assisting with trades.
I definitely believe a lead/manager should act like the priest instead. Let the team organize the work according to the constraints and preferences, pushing down decision making as much as possible, with the "priest" merely facilitating and making it easier to do so. This can be tough though, as it might feel like giving up control, but maybe that control is mostly an illusion.