Sunday, February 17, 2013

States Rights

There is this concept that government should be split into three levels: federal, state, and local. For a long time now I've questioned the value of state government having anything more than just an administrative function. We have it here in Australia, but nowhere do you hear about states rights more than in the US, and so that will be the primary example I will address.

The US has such a strong notion of states rights primarily due to the way the union was originally founded. I get the impression that it was much more like a loose union of independent states, sort of like the European Union, rather than like Australia. Of course the comparison is not exact since the EU is a union of countries, but it seems that the US states very much wanted to keep existing and operating as separate entities as much as possible.

This certainly explains why there is a historical tradition of strong states rights, but that is not a justification for not changing if there are good reasons. Though, of course, useful change can still be very hard to enact, even if most people agree that it would be a good thing (*cough* metric system *cough*).

The independent experiments argument


One of the arguments for states rights that is very popular in the US is the idea that each state operates as its own independent experiment, trying different ideas for what makes a well run state. The laws can be a little different (except for federal laws of course), services provided by the government can be different, and then we can compare results and hopefully learn more about what are the best policies.

This idea has a couple of problems. The most obvious one is that experimentation has a real cost. When a state implements a bad policy, it's real human beings that suffer the consequences of that policy. This should not be trivialized. While you can certainly create bad federal policy that then will effect everyone rather than just one state, maybe it's better to not have states thinking that they are their own little policy sandbox, and instead get together all the best thinkers from every state on various issues and come up with good policy for everyone.

The more subtle, but possibly greater problem, is that states are far from independent. When one state experiments with something like lower taxes, or better health care, etc, this doesn't happen in isolation, but can heavily disrupt all of the other states. For example, states with favourable corporate taxes (such as Nevada) attract a lot of businesses that take advantage of this. But this then takes tax revenue, employment opportunities, etc away from whatever state those businesses would have otherwise been started in. Or a state with better health care will attract more people in need of health care, which may then place extra burden on that program and even make it appear that it was a bad policy because it ends up costing a lot more than it would have if all states had the same policy.

So without independence, these state experiments cannot give good information about whether policies are actually good or not, since it becomes very hard to tell how much it was your state's policies and how much it was the effects of other states' policies that you observe. And if one state can create policies that negatively affect another state, but there is no legal accountability for those effects, then the incentive becomes much lower for states to consider the national consequences of their policies.

Universal law


State level laws open up the problem of behaviour in one state being legal, but the same behaviour being illegal in a different state. To me it seems a rather perverse idea that the legality of a citizen's behaviour is dependent on the state that they are in. I think that there are certain things that should bind all citizens within a country for the concept of 'country' to have any real value, and one of those things should be that the same laws apply to every citizen. We see the separate problem of laws seemingly being different if you happen to be rich or a big corporation, but this tends to be more due to uneven enforcement of laws. To actually say that certain laws don't apply at all is different, and I really don't see any benefits for having different laws. 

I would argue that any law that can't be applied to every citizen of your country is a bad law. Many bad laws actually get created because of this state based legal apparatus, with big industries specific to a particular state finding it much easier to get favourable laws made for them than they would if they had to petition on the national level. Corruption goes to the highest levels of course, but given that state legislators tend to be focused on the wellbeing of their state, it's always going to be harder to get national laws passed that only benefit a single state, or that benefit one state at the detriment of another.

There is also a problem with trying to change laws that exist on the state level for national purposes. For example, when the company Cars Direct was initially founded, it was done with the intention of providing internet sales of new cars direct from manufacturers to consumers all over the US. It turned out that such a thing was impossible, because there are laws in every state giving car dealerships their own territories that can't be infringed on by other sellers of the same make. This meant that Cars Direct would in effect be infringing on the territory of every dealership in the country. It also meant that if they wanted to go to court and fight to have this law changed, they would have needed to go to court in every state and fight the same battle, rather than being able to fight it once on the federal level, so it never happened.

Bureaucracy


State laws also create a lot of extra bureaucracy that makes government both more expensive and less effective. Each state needs to spend time and effort on the same types of laws, making the same research and policy work have to be done multiple times. Take a topic like energy policy. It's far less efficient if every state needs to hire its own experts and decide on the pros and cons of different energy sources and come up with policies. The more this was done at a federal level, the less duplication of effort there would be, and you also increase the opportunities to bring together experts from different states, giving you overall better information and hopefully better policies as a result.

State laws also end up reducing the government's ability to distribute funds in an efficient way, with each state having its own set of red tape and loopholes that can cause inefficiencies and need to be overcome.

Part of the pointless bureaucracy is the totally unnecessary duplication of things such as driver's licences and car registrations. How is it helpful to anyone to have to get a new licence and change your car registration whenever you move interstate, with different compliance laws and so on? I can see no good reason why systems such as these should not be unified across the entire country.

Conclusion


I'm sure that state level government is very useful from an administrative point of view, just as local government is, but I hope I've put forward some compelling reasons why the scope of state government should be reconsidered and ideally reduced, particularly in the case of state level laws. Times change, and what may have once been a useful framework may no longer be, and we should accept this without holding unreasonably to outdated ideas.


Sunday, February 10, 2013

The Daily Show, News, and Satire

This is just a short post about something that bothers me about comedy satire shows such as The Daily Show and The Colbert Report. I think these shows are quite enjoyable and actually perform a valuable service to society. Political satire is very useful for getting people engaged in important current events that they might otherwise not take interest in, and given the increasing trend of actual news media to focus on sensational stories to get ratings rather than on news stories that actually matter, these comedy satire shows are often airing stories that otherwise will be missed by many people.

My problem is that whenever a news program such as Fox News sends a criticism back towards The Daily Show for bad reporting, Jon Stewart typically uses the defence that his show is a comedy program, not a news show, so he should not be held to the same journalistic standards as news programs. I think he is mistaken in this for two important reasons, and that he needs to stop hiding behind this excuse.

Creating news content


If The Daily Show only ever reported on stories reported elsewhere, then it would have a fair claim that it is purely a satire show, taking existing news and mocking/commenting on it. However, this is not the case. The Daily Show creates news content of its own in two different ways:
  • Sending out 'correspondents' to create news stories on some topic
  • Having politicians, authors, actors, etc. on the show as guests
Now, you could argue that the news stories they create are humorous and not intended to be taken seriously, but I don't think this is actually true, certainly not all the time at least. They go out and talk to real people about real events. Just because they inject jokes and often mock the people they are interviewing does not stop it from being actual news. And quite often there is a clear message they are trying to promote. Injecting jokes into a news report doesn't suddenly make it no longer news. It just makes it news that is more enjoyable to watch.

News shows such as Australia's The Project are examples of news reporting coming from the other side of the spectrum, that is, news programs that add humour, as opposed to comedy shows that add news. Watching shows like these, it is clear that they all exist in a spectrum from serious to funny, but they all report their own news, rather than simply providing satire on other people's reporting.

Having guests on your show also invalidates any claim that you are only a comedy show. Let's face it, when The Daily Show has the current US President as a guest on the show, does Jon Stewart really get to just claim that he's not taking part in news creation? He doesn't have the President doing comedy sketches like Saturday Night Live, but answering real world questions. Sure there are jokes, but this is news creation, not satire in any way.

Knowing how others view you


Let's say that Jon Stewart genuinely only wants The Daily Show to be considered as a comedy show. Then he learns that many people watch his show for actual news content. He can say, "well, we're only a comedy show. If they want news content, they should watch something else". That's all well and good, but the unfortunate truth is that once you are aware that people are seeing you in a different way than you intend, you can no longer go on as you did before pretending that you're oblivious to this knowledge.

As an analogy, if you are naturally a quiet person, but one day you find out that all of the people around you mistake your quietness for snobbishness, you now have a dilemma. You can say, "but I'm not being snobbish, I'm just quiet" all you want, but this won't change the fact that people don't see it that way, and now you know it. You can insist that it's their misinterpretation and not your fault, but the fact will still remain that the next time you are around these people, you will be aware of the effect your behaviour has, and it is now a conscious decision to keep on acting that way. Fair or not, your choice to keep acting the way you always have is now a deliberate choice to keep people misunderstanding you.

In the same way, even if Jon Stewart doesn't want his show to be treated as a news show, once he's aware that people do, in fact, watch his show to catch up on news, he has no choice but to make that knowledge part of his future decisions. If he chooses to report on some stupid celebrity story rather than on an important political issue, he now does it knowing that he's wasted an opportunity to make the public better informed. That's his right, of course, but he has to make that choice, and he can't deny the effects of that choice, whether he likes it or not.

Conclusion


Of the various comedy satire shows I watch at times, The Daily Show, The Colbert Report, and Real Time With Bill Maher, I think Real Time understands its place in the spectrum of news programs best, and embraces that position well. Maher's interviews will often have humour in them, but never let the humour take over and drown out the actual serious issues being discussed. This is something that I think The Daily Show and The Colbert Report do not do well, and I think they would do better if they accepted their actual position in the world, rather than trying to have their cake and eat it too, so to speak. If they genuinely want to be treated just as comedy shows, and are not just using that as an excuse so they don't have to stand behind their reporting, then they should probably both drop the interviews with serious people and stick to actors and musicians, and stop doing field reports on real issues. But if they do that, I think we'll all be worse off.

Polishing Software and the Death of a Thousand Cuts

Any large software project will typically use some form of bug/issue tracking software to keep tabs on all of the bugs and opportunities for improvements that get identified during the course of the project. This database may contain thousands of issues, prioritized by importance. Inevitably, there will never be enough time to address all of them, so as release time approaches, the triaging process typically gets stricter, with the classification of issues into things that there is still time to fix, and ones that won't be fixed in the release.

The question that this blog post will try to address is: what should we do with all of those issues?

Issue Triaging


There are two main types of software releases: products that are released once, and products that are maintained with subsequent versions. This distinction is very important when it comes to bug tracking, because issues that are found in a single release project can be treated very differently to a release with multiple versions.

With a single release, such as a typical game, an issue that doesn't get dealt with for the release will possibly get handled in a patch, but otherwise will never be resolved and can basically be forgotten about. Since patches tend to focus on serious issues or issues that are found after release, any issue found before release but deemed too low priority to resolve is probably never going to get fixed.

With products that have multiple versions, an issues can't be forgotten so easily. If you defer an issue from the current release, that will still leave it open for fixing on the next release. Just because something is low priority now (compared to other issues) does not mean it will still be the case when the next software version rolls around. Particularly for software that needs to remain backwards compatible with previous versions, issues can never truly go away unless they are fixed.

So, this all sounds fairly obvious and straightforward. The problem arises with a pattern that tends to emerge with a lot of low priority issues, which is that they stay low priority, and get shifted from release to release without ever getting fixed. Your issue database gradually fills up with hundreds or thousands of these issues that are never important enough to spend time fixing, but still exist in your software. What can you do about them?

  • Keep them in the system - a bug is a bug is a bug.
  • Remove after some number of releases without being fixed. Kind of like a 'three strikes' system or similar, where you say that if it didn't become a high enough priority after two, three, whatever releases, it never will, so close it as a "won't fix".
  • Raise the priority of the issue after each release. This would mean that it eventually becomes important enough to fix, but in practice this artificial gaming of the triage system doesn't really work, since people will recognize that they're missing out on fixing more important issues in favour of ones that are marked as high priority, but really aren't.
  • Mark as "won't fix" immediately and forget about it unless it gets raised independently again.

It's this final option that bothers me. The idea is that if an issue is not worth fixing now, it's not worth fixing at all, so just mark it as "won't fix" if it doesn't make the cut in your triaging. This makes for a much cleaner issue database, but is it actually a good idea?

Software Polish


Many pieces of software do what they're designed to do, but may have clunky interfaces, various minor behavioural quirks, and so on. We would tend to think of these as good software, but not great software (bad software is a program that can't even perform the job it was designed for!). The difference between good and great software is typically what we think of as polish. Getting rid of all of those little annoyances, cleaning up the UI, streamlining the user experience, these are things that rarely involve big issues, but are rather a collection of lots of tiny issues. Typically, none of those issues will be a big deal on their own, but when you accumulate a lot of them, you end up with software that feels unpolished. With games, you'll say that they needed another 3 or 6 months to finish it. With versioned software, you call it Vista (snap!).

So software being unpolished can be thought of as being like a death of a thousand cuts. None of those cuts is a big problem on its own, but they add up, and you eventually reach a point where you realize that you're in trouble. How can you avoid this downward slide into unpolished software, or probably more realistically, how can you make your project take the uphill march that ends in a polished product?

Issue Tracking is Polish Tracking


This is where your issue tracking is your friend. If you're accumulating lots of low priority issues, this is a warning sign that your product is unpolished. By just marking them all as "won't fix", you lose this important information and get a false sense of the quality of the software. Not only do you have the appearance of less open issues that need resolving than is actually true, but you also add confusion as to which issues you chose not to fix because they weren't genuine bugs, and which weren't fixed purely due to triaging.

Perhaps having all of these issues in the database is telling you that you're not spending enough time fixing issues, and that's why they're accumulating.

And this brings us to one more option for dealing with a large number of low priority issues, one that I left off the list above: spend more time polishing, and less time adding features on your next release!

Every developer prefers adding awesome new features over fixing bugs, and customers certainly like new toys, but it's also true that developers like to feel pride in their work, and customers like to use software that doesn't annoy them. It can be a hard balance to meet, but when your low priority issues start to accumulate, rather than ignoring them, it might be time to recognize that your software is becoming less polished, and you need to put more effort into fixing those issues.

Of course, there are always trade-off based on the number of developers you have, the time until the next release, and how keen your customers are to get new feature X. Maybe you need to shift your priorities, maybe you need to hire more developers, maybe you need to extend your release times, or maybe you need to accept that your software will become less polished. The key point is that this should be a conscious decision, well thought out and based on the available evidence. Marking off issues as "won't fix" that aren't actually fixed distorts your data and makes it harder to have a true picture of your current situation. And if you don't properly understand your current situation, you're less likely to make a good decision for the future.


Friday, February 8, 2013

The Problems of Religious Morality

One of the major objections religious people have towards atheism is the belief that morality requires a higher power. That is, without a god to declare what is right and wrong, there could be no basis for morality. A practical refutation of this would be the millions of atheists who aren't going around murdering people every day, but sticking with the religious basis of morality, there are some serious issues with the idea of morality coming from a higher power that I think are very interesting.

Now, let me be clear up front that I'm not attempting any kind of argument of the form "their ideas have more problems than my ideas, therefore I'm right and they're wrong". Understanding reality is not a popularity contest. Religious people seem to think that belief in morals from a higher power is a solid and robust idea, and once you make that leap of belief your moral philosophy is now on stable ground. And this fact in itself is often used as an argument as to why that leap should be made; i.e. that morality without a higher power is baseless and inconsistent, but once you inject a higher power into the mix you solve all of those problems. What I hope to demonstrate is that making the leap of faith doesn't afford moral theory with the desired robustness, and so it can't be used as an argument in its favour. That pretty much leaves it with just the "because I want it to be true" argument, which is how I think it should be.

All cultures have moral systems

The key fact to recognize is that all known human cultures have moral systems of some sort. They all have differences, and an act can be considered moral in one culture and highly immoral in another, but no human culture is amoral. Now, it's worth pointing out that these differences are not totally relative and arbitrary, so that any act will be moral in some society. There is generally a system that is relatively consistent and makes sense when the particulars of the culture are understood. For example, infanticide is considered moral in some traditional cultures (though is much less common today as these cultures have more contact and interaction with outside cultures). However, you can't just go around killing any child in these cultures. It's a very specific case when mothers give birth to a child while the previous one is still too young, or if they give birth to twins. In these cases, it is done as a practical matter because the mother will not be able to support both (see The World Until Yesterday by Jared Diamond).

We have to ask the question of how all of these cultures got their moral systems, if morality comes from a higher power. Here are the options I can see:

God spoke to all of them


If we require a higher power to know what is right and wrong, then it must be the case that all human cultures have been spoken to by a higher power in order to know this. This would require that god chose to appear in a different form to every culture, and to give each of them a different moral system. If this were true, then there is no such thing as a single objective morality, unless you claim that he told the truth once and lied every other time.

Or you could possibly argue that he gave all cultures the same moral system, but those systems became corrupted over time. If this were the case, then how would you tell what the correct, original system was?

God spoke to one/some of them


If god only spoke to one group (or possibly a small number of groups), you may be able to get around the problem of god giving different moral systems to different groups of people. But this creates a much bigger problem, which is that all of those other groups must have developed their moral systems without a higher power. And this, of course, is the very thing that religious people are saying cannot be done. Unless they want to argue that everyone else is just fooling themselves and have baseless moral systems. This would mean that all other religions with their own moral systems are a massive lie, with only one group having moral truth based on an actual higher power. Many religious people seem to believe precisely this (though they are reluctant to state it explicitly given the massive hubris of such a belief), creating the problem of people from different religions all thinking that they are right and the others are wrong, but without having any good reason why that should be so, leaving the much more likely theory that they are all wrong.

God speaks to everyone in some ill defined way


Another option would be to say that god hasn't spoken to everyone in a direct "Moses on the mountain" kind of way, but rather in some more subtle way, such as somehow encoding morality into our souls, or something along those lines. I'm not sure if any religious people actually try to argue such a thing, but it seems the most obvious alternative for avoiding the problems of the previous two options.

If such a thing were the case, then it would open the question of what need there is for religion to explain morals? If they are already part of us in some way, we don't need to be taught or told them from an external source. You wouldn't need to practice or believe in any particular religion since you already 'know' the important parts. It would also raise the question of how you could prove such a thing. There would be no practical difference between morality being innate for evolutionary reasons and being innate in a soul, since souls are supernatural concepts not detectable by any scientific method.

Conclusion


So, let me reiterate that if morals come from a higher power, given that different cultures have different moral systems, it must be the case that either zero or one of those cultures actually practices a moral system from a higher power, or that god intentionally gives different moral systems to different cultures. In any of these cases, it is unclear how you can determine which is the 'true' moral system, making the 'higher power' explanation have little practical value.

Deriving new morals

If it is necessary to have a higher power to give us rules for right and wrong, then this implies that our moral system is to some degree arbitrary. That is, god could just as easily have chosen to make any rule different. If this were not true, e.g. if god could not have chosen to make stealing or murder moral, then there is something outside of god that defines morality, which would mean that a higher power is not necessary.

At a bare minimum, a moral system would need to have a basic set of axioms, all arbitrarily chosen by god, from which all other morals could be deduced. Do any religious moral systems actually have such a thing? I would bet that some may claim to have it, but I've never seen such a thing. There always seem to be moral questions that require some degree of judgement, usually provided by the wise elders of the given tradition. But, just like a scientific theory, unless they can show their working, the clear set of indisputable steps that led them to their moral conclusion, they are not working with a consistent system that is reducible to arbitrary, god-chosen axioms.

So, the question is, how does a god-based moral system deduce new morals? How do you determine the morality of a choice that was never covered explicitly by the moral code that the higher power gave? If god could choose any arbitrary answer for any moral question, then you can't know what he would have chosen in this new situation. And if a moral system is consistent and axiomatic, then how much choice did god actually have in creating it, and is he then actually necessary to explain it? Or, if a moral system is not consistent, then how can you justify making new moral deductions?

Final thoughts

I hope that this post has given you some interesting food for thought, as these questions certainly have for me. Of course, I freely admit that I don't think a higher power is necessary to explain human morals, but by working through the implications of such a belief, it is possible to see that it is also not sufficient to explain the problem either, which is an important warning flag not to be dismissed lightly.

I look forward to feedback from others on this topic, since I know it's quite probably that I've made mistakes in my reasoning here, and maybe overlooked other options.