Pareto efficiency is a micro-economics concept that seems most relevant to political considerations. The basic idea is, if one person can be made better off without anyone else being hurt, that action ought to be taken. Most systems are assumed to be at least in a local equilibrium of pareto efficiency, or at the very least, if they're not, economists are interested in why.
A simple example: Suppose a society has 30 units of labor to produce things. If they use some of them on guns, and some on butter there will trade offs between the two. More guns means less butter. However, if only 10 of the units are used, then the system will be Pareto inefficient. It's important to note that Pareto efficiency doesn't tell us anything about what allocation of guns/butter a society should choose, just that it makes sense to use all the resources available to you.
What does that mean in regards to writing code? Pareto improvements are software features/changes that improve the utility/enjoyment of your program for everyone using it. Fixing a bug is almost always an improvement. However, if the bug is now relied upon, then it is not an improvement to fix it. A common example are errors in writing APIs. Once released to the world and used by people, any changes to the API have costs, mainly, other folks have to rewrite their app. Adding in new features is not typically a Pareto improvement, because the cost of a menu item/adding in a hotkey may affect your users for whom the program worked just fine.
If it's easy/possible to make a Pareto improvement to your software you ought to. However, costs are often difficult to assess. Be carefully about assuming something is a Pareto improvement. However, once I'm sure it won't negatively affect users, I like to make the change. If it is not a Pareto improvement you have to weigh the competing concerns of all the people who will be affected the change. This is much more difficult to do, and often almost impossible to find the 'right' answer for.
Sunday, October 30, 2011
You know nothing Jon Snow
I finished reading the Dancing of the Dragons A Dance with Dragons. It was pretty good, and I'm amazed at how many stories/characters are in the ASOFAI. But, I just want to register a quick complaint. It's like 7 separate cliff hangers all arranged near the end of the book. C'est la vie I suppose.
Subscribe to:
Comments (Atom)