Wednesday, February 20, 2008

The Art of Positive Deletion

A very important concept in programming is what we coders call "garbage collection." Basically, a program is like an old pail of water - if you don't make sure all the holes are filled, that water's gonna go all over the place. It'll get everywhere and make your life miserable. A computer only has so many resources, and holes in a program (e.g. memory leaks) will keep taking up more and more of those resources until there's nothing left.

The concept of garbage collection can be applied to life in general, though. I call it "positive deletion," since what you're doing is eliminating Stuff from your life so the Stuff doesn't clog up the rest of your life. After all, you only have so much Life!

Positive deletion is a combination of time management and spatial organization. You need to get rid of things that take up resources as quickly and completely as possible. Parkinson's Law is only too true, so you need to make sure you're only spending as much time on a project - whether personal or for work - as absolutely necessary. Thomas Edison couldn't have invented 1,093 things in his lifetime if he didn't understand this principle.

Of course, that doesn't mean pushing out an incomplete finished product. Do what needs to be done, but try and do it in half the time you (or your boss) originally assess it at. If you fail to meet this ambitious goal, then I guarantee you will at least have made it in under the original assessment! There are other task/time management techniques you can use (e.g. batching, worst first, etc.), but they're out of the scope of this post.

Another aspect of positive deletion is the outright culling of unnecessary garbage from your life. For example, how much time do you REALLY need to spend in front of the TV every day? Or the computer?

Try out some of the following tips to get rid of the garbage:

  1. Sort out your goals. Make a list of all of your personal and work-related goals. Categorize them by importance - Vital, High Priority, and Low Priority. Assign due dates to each of them, assuming that you will work on only one goal at a time.
  2. Knock out the most difficult task first. Also known as the Eat a Frog principle, doing this will ensure your day can only get better...and you'll gain self-respect for not procrastinating in the process!
  3. Reduce your time-wasters. If you're a chronic TV-watcher, try dropping an hour off the time you spend watching the tube every day for a month. Next month, another hour. Similarly, if you spend way too much time reading email, try the Ferriss method of email batching.
  4. Plan your day. Using Google Calendar, 30 boxes, or another calendar, plan out tomorrow from waking to sleeping. Include half an hour for planning the day after that. Keep doing this for a week. At the end of the week, start planning out the entire week after that, and so on. Most importantly, stick to the plan! While there will inevitably be unforeseen events (such as family emergencies, flat tires, etc.), for the most part the plan'll keep you on track and away from the little time-wasters like neuroticly checking email every ten minutes.
  5. Set limits. Don't just let yourself "work until it's done." Set a specific stopping time, and stop when you reach it.

There are many more possibilities here, but those five will be a good starting point for you. There are a great many other blogs dedicated specifically to productivity (43 folders, Steve Pavlina, Lifehack, etc.) that will expand on the positive deletion principle. For those of you already familiar with productivity optimization, you may be interested to read Dumb Little Man, as it has some interesting and unique tips that go beyond the usual.

In the end, if you can take charge of your life, you'll find that the most valuable currency of all - time - is yours to command. Positive deletion is but one of many tools to help you with that goal. Try it out for a month, and see how it affects your life!

Tuesday, January 22, 2008

Free software, free world




The concept of a free world is near and dear to those advocates of FOSS. In recent years free software advocacy has grown in volume if not in momentum. Subscribers to this peculiar philosophy - that all software should be free, open source, and readily available to the public at large - seem to hold certain similarities to other philosophical positions.

Anarchism, for one. Libertarianism for another. But it goes deeper than those mere labels.

All software being freely available as a good and desirable trait of a society implies...nay, requires that believers subscribe to the idea that materialism and ownership are inherently negative concepts. In this they resemble some beliefs of a few Native American tribes. Non-market economies based on concepts of barter and dumb-barter, however, almost always have a concept of ownership behind them even if there is no currency or common value basis for items. In small societies, the materialistic bent of placing value on an item gives way to placing value on the exchange of the item, thereby replacing economic value with social value. In today's anonymous global village, social value is of far less importance, and thus materialism has risen as a natural consequence.

Interestingly, the FOSS advocacy movement seems to be pushing for a return to social value over material value. Linus Torvalds is considered influential and prestigious for his uncompromising dedication, generosity, and competence. Bill Gates, while similarly intelligent, is reviled for his tremendous wealth and reputed anti-FOSS tactics. A developer's prestige in the FOSS community is directly proportional to his or her contributions to the community.

Now, while this is all well and good and I applaud a return to social value over material value, there is one glaring flaw in the FOSS advocacy philosophy - free software doesn't pay the bills. Some companies get around this by offering services to support their free products, but service isn't particularly time-consuming, thus enabling fewer developers to support a single product and restricting the number of jobs available at a given company. This suggests that the entire software industry is either flawed in its concept or flawed in its execution and gives rise to questions regarding the legitimacy and efficiency of the current paradigm.

For FOSS to become a viable methodology, the software industry must shift from a production-centric environment to a service-centric one. This is not to say that development itself must go by the wayside; rather, services need to be placed higher in priority than development so as to foster an equivalent financial return for developers and still promote the free usage of software. Service industries account for 70% of the economic activity in the United States; certainly, by transforming the software industry into such will bring no great harm to the pocketbooks of developers as a whole...but its effects on the individual developer can't be directly determined.

Personally, I hope that the FOSS philosophy and its focus on social value is a sign of a general disillusionment with materialism in general. Certainly, it can't hurt to help others through ideas such as FOSS. To find out more, check out the Free Software Foundation's website. Their Resources section is particularly helpful.