Thursday, January 24, 2008

Agile For Dummies

I just ran across this blog post on Agile Software Development called Don't Know What I Want But I Know How to Get It. One of Agile's main tenets is that software development should be iterative and incremental. The author of this article does a great job of educating just precisely what those two words mean.

This is a great introduction to Agile methodology. The author does a good job at bridging the gap between customer expectations and software engineering reality in a light hearted and humorous way.

Tuesday, January 22, 2008

A Second Look at Second Life

Jon Coffelt is an artist who originally came from the Southeast but now lives and works in Manhattan. I have seen his impressive flat-work (particularly his Cosmos and his Circuit series) featured in galleries in Atlanta, Birmingham, and Miami. His latest show is hanging in a gallery no where in this world. Rather, he is now showing in a gallery called Ten Cubed which is located only in Second Life.

Second Life is an online, virtual, three dimensional, MMORPG without the G (for game) but with an E (for economy). MMORPGs have a long history that predates the Internet. These early precursors where called MUDs and MOOs and were primitive, text based worlds. Today's MMORPGs are sophisticated, graphically and interactively rich environments. The more popular ones include Ultima Online, World of Warcraft, Guild Wars, EverQuest, EVE Online, and RuneScape.

Are these games the competition for this creation of Linden Labs? Well, they are in terms of online mind-share. If you are playing RuneScape, then you are most probably not in Second Life. But Second Life is most certainly not a game in the traditional sense and the kind of people that hang out in RuneScape are not likely to enjoy Second Life. My guess is that the closest competitor to Second Life would be Entropia Universe.

Second Life has many detractors, including a story on the American Public Media radio series called Marketplace that aired very recently. They also have some proponents too. People like Jon would like to know the answer to this question. Just how much value does Second Life hold for them? Is Second Life a novelty which will soon run its course or is it the next wave of wealth creation that is going to be on the same level as Google AdWords?

The answer is both and neither. There is the now famous story of a Chinese born language teacher living near Frankfurt, Germany who has done quite well with her Second Life avatar Anshe Chung. The way it works today, there are two levels of wealth creation within Second Life. There are real estate agents (who rent you a place to stay in Second Life) and there are content creators (who help you decorate it). But you don't have to buy or own anything to be in Second Life. I am a homeless person there (i.e. no property) and we are the majority.

I believe that Linden Labs needs to upgrade their business model in order to scale Second Life up to household word status. Currently, they base their business on a real estate market model. Companies, like Ten Cubed, go in to rent a place for a monthly fee in order to attract customers. Artists, like Jon, hope to sell their art in places like Ten Cubed. I believe that Linden Labs should transition their business to an online advertising model and make Second Life more like a 3D virtual reality version of the Internet. Revenue should be based on impressions and not on floorspace.

For most of us functional, enfranchised folks, Second Life is not a much needed place to escape from first life. Rather, it is just another way to surf the web but a three dimensional web that has support for collaboration and communication built in.

Saturday, January 19, 2008

Accessing Data with Some SPARQL

It looks like the W3C has promoted SPARQL to that of a standard. The SPARQL Protocol and RDF Query Language is another "SQL on steroids" that allows you to query RDF documents.

This news is the latest in what seems to be a growing trend to extend or enhance SQL to work against non-relational databases. There is a long history of success in embedding or calling SQL from business software applications as an effective means of accessing data. Using the same pattern with an enhanced SQL for non-relational data seems to be very promising. There are competing patterns that are also emerging where the SQL is generated under the covers and not by the application developer at all. I have blogged on this in a larger article documenting trends in data access strategies for software developers.

Wednesday, January 16, 2008

Sun Acquires MySQL

In an earlier blog about Open Source Software, I had posited that MySql was perhaps a more relevant open source relational database than PostGreSql by sheer virtue of the fact that Oracle keeps trying to kill it by acquiring the vendors who provide MySql's transactionally aware back ends.

A recent announcement on the MySql site names SUN Microsystems as successfully acquiring the MySql AB corporation. This is a surprise because they usually promote competing open source relational database vendor PostGreSql. Here's hoping that SUN isn't buying MySql in order to kill it so that PostGreSql can grow into MySql's market.

February 2009 Update: MySql founder Michael Widenius has resigned from Sun.

Saturday, January 12, 2008

What Should Students of Software Engineering Learn?

A recent defense department article lamented the decline in quality of computer science graduates. They laid the blame on today's institutions of higher education. The big troll in the article that has generated the most buzz is the claim that students who first learn Java are somehow mentally hamstrung to those who first learn C++. This was based on some private communication with Bjarne Stroustrup who is the inventor of C++.

The reason why the group of students, who first learned C++, outperformed the group of students, who first learned Java, is because C++ is harder to learn than Java. The C++ group is smarter because the ones who couldn't learn C++ dropped out. This skewed the average intelligence of the C++ group higher than that of the Java group.

I do agree with the article that, in order to be a good programmer, you should learn multiple programming languages. I learned a lot from studying the following languages; assembler, C++, C#, Java, Lisp, Python, and Ruby.

The other point about the article that I agree with is the need to teach more than programming languages. In fact, I would go one step further. Teach the computer science concepts in class and the programming languages only in the labs. It's the concepts that hold the most value and should be the center of attention.

Tuesday, January 1, 2008

New Years Resolutions

What better subject for the first blog of 2008 than to revisit the value of the new years resolution? This ritual is a common one that spans many cultures and geographies but how important is it really? Many of us have made these little promises only to break them before the month is out. Is there any value to the new years resolution or is it a waste of time?

The new years resolution asks us to revisit the past year. This reflection helps us recap and summarize our successes and failures. It is here that we are invited to analyze the mistakes that we made and to celebrate our good choices. It is a very up close and personal way to learn about the nature of consequences.

The new years resolution invites us to plan our future. It helps us formulate goals and to come up with an action plan for taking steps toward those goals. It is here that we are allowed to dream about what we want to be in a way that can be obtainable. It is here that we can learn how to take charge of our life.

The new years resolution helps us understand and value the nature of time. Over the years, these resolutions help us to see each life as a voyage. We look back at where we have been and call that the past, that which is known but cannot be changed. We look ahead to where we are going and call that the future, that which cannot be known but can be changed. Time is the ever present now which is the unfolding and transformation of the future into the past. The ritual of the new years resolution says that you are a ship. Grab the rudder and steer your life to where you want to go.

Learning about time and consequences is an important aspect of human development. Every religion has talked about the importance of consequences. Without the lesson of time, the lesson of consequences is simply this. Do good things and get rewarded. Do bad things and get punished. With the lesson of time, the lesson of consequences deepens significantly. We are defined by the choices we make. Religion isn't the only organized institution that codifies this lesson. The media reiterates this teaching through a long list of movies. The short list, of which, that comes to my mind is It's a Wonderful Life, Crimes and Misdemeanors, Harry Potter, even Spiderman 3.