A "fork" is computer lingo for a change in the code where the new code is not backward compatible with the old version. WikiPedia explains the general idea of a fork quite well but the current debate going on in Bitcoin is regarding something called the Bitcoin "block size". At the heart of the issue is how many transactions the Bitcoin network can process or actually, more specifically, how many it should be capable of processing. It is mainly a code developers problem of determining the best way to scale Bitcoin to accommodate future growth. As with any planning there are differing opinions as to what the goals should be and the best way to accomplish the goals. Bitcoin is an open source software and, as such, joins a large list of successful open sourced projects that have discussed, debated and successfully weathered the process. The easiest time to make changes to software are early on in its development cycle when there are few users. As more people use it changing things get more complicated.