Wednesday, January 25, 2006

industrialized nations and global warming

Another discussion question from class... and my response.

Do industrialized nations have a responsibility to address global warming?


I would find it hard to imagine how one would answer/argue "no" to this question. I definitely share in some of the earlier points that my colleagues made in the discussion, however, I'd like to state the answer a little stronger. I believe that industrialized nations are morally obligated to address global warming, for multiple reasons.

1. Industrialized nations contribute significantly to global warming (via production of greenhouse gases and other emissions), so as the old adage goes, whoever created the problem/mess is responsible for cleaning it up.

2. Along similar lines, it's morally irresponsible to leave the future citizens of the world, industrialized or not, with a problem that we are partly responsible for. Admitting blame aside, if we are cognizant of an impending problem, it's our obligation to do something to either address it or prepare for it. Thiat is, it's irresponsible to leave this problem for someone else to solve or address, whether that "someone else" is in another country or will exist in a future time.

3. Industrialized nations are the only ones equipped to take action -- technologically, economically, and politically. The industrialized nations are the ones that possess well-developed scientific knowledge to detect, understand, and model the problem. They are also the ones equipped with the engineering and financial resources to do something. In addition, industrialized nations (with technology and economic resources) generally will have the political influence to help other developing nations leapfrog over "old" technologies that contribute to global warming to "new" technologies that do not.

4. Industrialized nations have values to protect and defend their citizens from harm, even if that harm is from natural causes (regardless of whether or not those natural causes are amplified by human-imposed actions). If we know what effects and risks global warming can cause (examples from Gene Takle's lecture include: flooding, more intense storms, water shortages, food supply impacts, etc...) the nations must take actions to protect its citizens. It's not just industrialized nations either, the UN Conference on Environment and Development (Rio de Janeiro, June 1992) proclaimed as Principle 1:
Human beings are at the centre of concerns for sustainable development. They are entitled to a healthy and productive life in harmony with nature.
If the nations of the world share this value, then the nations of the world are responsible for taking actions that reinforce this value -- otherwise, we've betrayed our values. (By the way, 172 nations attended the Rio Conference, 108 heads of state among them -- so I think it's fair to say this is a shared value among most of the world.)

Touching on a previous point in the discussion thread, global warming is not an issue that industrial nations are solely responsible for. All nations, industrial, developing, or undeveloped are responsible for Earth's natural systems. Nature has no boundaries -- humans impose boundaries like political borders -- matter (air, water) and energy (heat, storms) do not stop flowing at borders. However, I believe that industrialized nations should bear a greater responsibility for the reasons I mentioned above -- and it shouldn't be a burden to bear, but rather a challenge to improve progress and advancement (that will undoubtedly bring new economic opportunities). All nations, including industrialized ones, where quality of life is of such high value, will benefit from action to control global warming.

We've been referring to nations, but a nation really is an abstract entity -- a boundary and political system created by people for their benefit, convenience, and well-being. A nation after all is just a collection of people, its citizens. A nation's actions, especially in a democratic nation (which most industrialized nations are) are a reflection of its citizens. So when I say a nation has a responsibility, it really means its citizens have that responsibility to address this problem -- both on a personal level and as a collective.

Monday, January 23, 2006

software and higher education

My copy of Communications of the ACM (my nerdy fun reading) arrived this week and on the inside of the back cover was an article by John Knight (one of my former professors) and Nancy Leveson on Software and Higher Education (article in HTML, article in PDF). Knight and Leveson claim that the fundamental reason why software projects go awry so often is because those making technical decisions are not well-equipped to do so -- and the blame for this is directed at deficiencies in computer science and computer engineering degree programs.

To briefly summarize their points, they find in CS and CE degree programs:
  • Emphasis on fads and not principles. That is, a graduate might know a lot about C++ or Java idiosyncrasies, but know little or nothing about principles of software development or fundamental techniques for specifying requirements or testing, which is of course what software engineers do at work day in and day out.

  • Computers are viewed in isolation. Computers rarely stand alone, but rather as a part of a larger system. While students are working on programs that run purely on PCs or on the Web, most software engineering work is done in the context of a larger system. For instance, software that controls assembly line machinery, software that runs in the cockpit of an airplane, or increasingly software that is embedded in personal devices (digital camera, mobile phone, etc...).

  • Design topics are taught from a narrow perspective. In many programs, object-oriented design is the only design philosophy presented and treatment rarely goes beyond covering the existence of objects and classes. There are other approaches, old and new, that deserve treatment because object-oriented design does not solve every problem gracefully and besides, it's good to help students realize that there is life beyond OO and they could be the one to come up with it :)

  • Graduates don't know what their limits are. They should have an understanding of what well-known techniques they can choose to solve a problem just as much as an understanding of where limitations are so they can find more help or prevent a project from going south by trying to achieve the improbable or impossible.

Based on my experiences in industry, I tend to agree with Knight and Leveson's point of view, although I know there's a chance I might be biased because I've taken Knight's class, Advanced Software Development Methods, which I found demanding, intellectually rewarding, interesting, and definitely most applicable to what I do today. If anything, I think Knight and Leveson are spot on in their article, and the other deficiency I would add to their list is that many graduates are not aware of the resources they have available to them in their field. More times than not, Google search tends to be the one (and only one) source people go to. Not that searching on the Web for answers is a bad thing, but in my experience, a lot of the "engineering" and even programming advice I've come across on websites and forums are garbage, especially when one starts taking technical advice out of the context. Yes, it's a strong statement, but it's true. So if graduates aren't aware of good engineering techniques and they aren't aware of resources that are reliable (or worse, aren't aware of how to evaluate sources of technical information), seeking solutions and answers on the Web will lead to inevitable follies and failures. (Keep in mind, the cost and accessibility of good information and resources is an issue for another day.)

Although I firmly believe that good software engineering needs to be taught, there are some (not the authors, but others in the software community) who engage in a pointless debate between the definition of computer science (some say CS is theory) and software engineering (some say SE is application). In my opinion, being a good software engineer requires an in-depth understanding of computer science and being a productive computer scientist requires an in-depth understanding of software engineering techniques. So hashing a line between them only creates a false boundary where people can make excuses to stop learning. However, I agree with Knight and Leveson in saying that degree programs should inform their students what their goals are: to produce a graduate who is ready for a career in research, or to produce a graduate who prepared to work in industry. At least advise students on how to steer their learning emphases. It would be ideal if a student in a program could learn everything of course, but the fact of the matter is, there's not enough time in four years. Four years is just a kick start for an inevitable lifetime of learning :)

Friday, January 20, 2006

the existence of american corporations

The course I'm taking, Technology, Globalization, and Culture, requires regular responses to discussion questions, so I figured I'll start posting my responses on the blog, since they are typically topics I would rant about anyway.

Is there such a thing as a U.S. corporation?


I think there still exists such a thing as a US corporation. However, I believe that they will not be the most efficient operations because they will not have the access or desire to use global resources, just because of the nature of their business. I think these US corporations will mainly exist to serve the public, rather than maximize shareholder value and profit. A few examples of such corporations include: American Red Cross, Boys and Girls Clubs of America, Corporation for Public Broadcasting, National Public Radio, and Federal Home Loan Mortgage Corporation (Freddie Mac). Note that these aren't charities, they aren't owned by the federal government, and they do exist to provide services and like any other corporation, try to maximize income while minimizing expenses. Some are non-profit or not-for-profit, and some are for-profit: Freddie Mac is a publicly traded company for instance, and Amtrak (although the federal government owns all of its preferred stock, is a for-profit organization).

Ok, so the above are probably more exceptions rather than the rule, but I still think American corporations will still exist -- just not the American mega-corporations that first came around in the industrial age. Corporation carries the connotation of a giant hefty company, but keep in mind, you only need one person to incorporate a business here in the US. From the Small Business Administration's website, the statistics show that small business is a major force in the American economy:

Small businesses:
  • provide approximately 75 percent of the net new jobs added to the economy.
  • represent 99.7 percent of all employers.
  • employ 50.1 percent of the private work force.
  • provide 40.9 percent of private sales in the country.
  • account for 39.1 percent of jobs in high technology sectors in 2001.
  • account for 52 percent of private sector output in 1999.
  • represent 97 percent of all U.S. exporters.

Small businesses are nimble, and they understand their customers really well since they can be close to them and cater/understand their needs well. I wouldn't doubt that a good number of these small businesses exist in what Robert Reich termed the "local service economy," (restaurant chains, mom-and-pop shops, auto repair, house and office cleaning, etc...). These home-grown companies serve a niche as well since they understand their locale so well. One notion that can be a totally different topic of conversation altogether is the backlash against homogenization of culture, for instance when Wal-Mart comes to a small town. Some towns are protective of their culture, their way-of-life, so they resist Wal-Mart and insist on patronizing the local mom-and-pop shops. In a sense, local hangouts and services like the neighborhood ice cream shop, the family restaurant, and the local bar/pub are becoming fewer in numbers and are gaining a loyalty among locals who don't want to lose that something special they have in their community.

However, you know there are a fair number of small businesses that operate in the symbolic analyst (knowledge-worker) economy as well: local accounting firms, law firms, independent consultants, computer services, health care, etc... These businesses might use global services, but the core of their focus is local -- and they can provide in-person customer service which is kind of nice sometimes, and the fact that so many small businesses are thriving is a testament that lowest cost is not always what consumers want -- there's something to be said about personal customer service that can only exist locally.

In essence, I believe their is and will be a place for the American corporation. If we're talking about mega-corporations like GE and Disney, yeah, globalization is a must if one is to be competitive (high value with minimal cost), but if we look at the American corporation in terms of small business (as well as public service), it's clear that there will always be a (if not increasing) demand for these services, especially personal service and local tailoring, and a sense of being a part of the community.

Monday, January 16, 2006

google maps mashups

As if Google Maps weren't cool enough, Google Maps mashups are user-created overlays of Google Maps. For example, the DCist Map superimposes the Washington DC Metro map over the Google street/satellite/hybrid map of DC, which is so nice for planning to head downtown without a car. (I still carry a paper map book in my car though -- it beats the heck out of those horribly low-res printouts and inaccurate directions from all of the map/direction websites.)

On the way home last Friday, NPR featured a great story on these mashups, Tailor-Made Cartography with Google Maps. There's actually a blog, Google Maps Mania that tracks these mashups, including DC home prices, a US beer brewpub map, and an amazing amount of transportation maps, weather and earth maps, and current event maps.

This really is great -- Google Maps essentially enables people to visualize information easily by merging their data into a well-defined map interface. Compare this with how I perform a similar mapping task at work: hand-coding in C.

Sunday, January 15, 2006

technology, globalization, and culture

I'm pretty excited about a course I am taking this semester, Technology, Globalization, and Culture. It's being taught at Iowa State University and I'm tuning in via their Engineering Distance Education program over the Web. The reading list is interesting already:

The list of speakers is downright amazing, the two most well-known being Robert Reich and Ray Kurzweil! I think I'm really going to enjoy the interdisciplinary topics as well: "Global Hollywood," "The Middle East, Energy, Terrorism and Oil Markets," and “Global Environmental Change: Technology and the Future of Planet Earth” just to name a few. It's going to be one busy semester, but one I'm definitely looking forward to writing more about.

On a lighter and more amusing note, I recently saw a skit on Late Night with Conan O'Brien that featured Conan and Robert Reich in a summer movie preview of "Detective Conan O'Brien and Detective Former Secretary of Labor Robert Reich." Well worth checking out (in QuickTime or in Windows Media) for a pretty good laugh.