Agile Development Seminar

My university is hosting a series of seminars for computer science alumni. I’ve never really gone to seminars or speaking engagements. I had the privilege of hearing Robert Spector speak at a company-wide seminar on customer service, so employees were pretty much supposed to be there.

Today was the first seminar in the series titled Agile Methods for Effective Software Delivery. I originally wasn’t going to sign up for it, but then I thought, “I don’t really have many opportunities to meet developers. Why miss out?”

I’m glad I did sign up for it. The actual presentation wasn’t terribly new and informative, but then I think it was geared towards an audience of alumni from the 80s and 90s, people who may have been out of the touch with the latest development methodologies. Now, I don’t have much practice with networking, but I also understand that it is usually the most valuable part of such events. So I introduced myself, made some conversation. People exchanged business cards, and I of course didn’t have one (next time, Gadget … next time). I got some advice from a few people regarding how to become more valuable in an employer’s eyes and focus on a set of skills. I heard some anecdotes about experiences in jobs and with customers and management. Definitely informative. And right before I left someone came up to me to talk about my job situation and experience, giving me some tips.

I’m definitely going to sign up for the seminar next month, Emerging Trends in Business Information Visualization. I don’t have a direct interest in the topic, but an emerging field is always good to learn about, especially if it means getting in on the ground floor. Other topics, including Open Source Software and Personal Knowledge Management, sound good and I’ll definitely attend those. And of course meeting with other alumni would be the best part, including new people and those that I met today. Now I only need to make some business cards…


Quote From Professor, Programming

One of my professors said this in class this past week regarding writing robust software:

You can make programs fool-proof. You can make programs idiot-proof. Unfortunately, fools and idiots rarely will use your software.

He then went on to say that usually software users are instead afraid or have no clue. He was talking about writing your code defensively, as if at any point a cat may walk across the keyboard and your software should be able to handle it.

Even though it was a low-level technical argument, I think it goes hand-in-hand with what Steve Pavlina said in If No Independent Developers Are 100 Times Smarter Than You, Then Why Do Some Get 100 Times the Results?:

If you hold a core belief that your customers are idiots, then this will be reflected in your product design, marketing, web site, etc. You will then attract idiots as customers because that’s the type of person you had in mind throughout your design process. If, however, you start from a core belief that your customers are brilliant, friendly, honest people who want you to succeed, you will make different decisions in product design, marketing, etc, and you will attract those types of customers.

So on the one hand you want to make sure your code is robust to handle the random and uncontrollable. On the other hand, you don’t want to do so while also making the customer feel like you hate him/her. I think user interface design plays a big role in that, at least for the software. I don’t have much experience creating UIs, so I may need to purchase a book or two.

Then again, I should probably just read the books I have now. I need to walk before I can run, and my object-oriented programming is weak. To help, I bought the huge tome Object-Oriented Programming in C++. The first couple of chapters are basic overviews of C++ and OOP, which I was tempted to skim, but then I thought I might as well keep reading through it. I learned one new thing that I didn’t know before, and that made all the difference.


Game in a Day

Recently I discovered Game in a Day, an event where individuals and teams try to make a game within 24 hours. Naturally you aren’t expected to make a full professional Quake clone, but it is possible to come up with something that is playable, no matter how crude. What’s really cool is that after your development frenzy, you have something you could clean up and polish over the next few weeks or months.

I’m definitely interested in doing a Game in a Day for myself. Right now in order to work on a project, I need to know what I am doing so I can set aside time for it between work and class. I know beforehand that nothing will get finished in a session because I can’t possibly do anything for longer than a few hours. It’s hard to build up experience when I don’t know when the next session will be. If, on the other hand, I know that my constraint is that I need to have something playable at the end of a session or two, that it isn’t meant to be anything more than a fun project, then I can work without worrying about the progression of the project so much. A nice bonus is having a somewhat completed project by the end.

Previous participants of the Game in a Day have posted .plans about their progress. You could see how they went from scratch to a game within 24 hours. Some people managed to make incredibly fun games in even less time! I am hoping to join their ranks.

Games Geek / Technical General presents The Essential 50

The Essential 50 is’s compilation of the 50 most influential games in video game history. I feel bad because some of the games I’ve only read about, such as Battlezone or Prince of Persia. Others bring back good memories, such as Super Mario Bros and Pac-man. I am making a point to go back and play the games I own that I haven’t gotten a chance to play yet, such as Final Fantasy 7. I was a Nintendo fanboy when it came out so I refused to touch it, but sometime last year I saw a PC version of it for under $20. I still haven’t played it.

It’s sad when you look back on the highlights of gaming and realize that you weren’t there for even half of it. Still, I have some good memories of some good gaming, and there is no reason for me to miss out on what’s to come. B-)


Sharpening the Saw Too Much

Stephen Covey’s The Seven Habits of Highly Effective People discusses sharpening the saw. The classic story is of a lumberjack working hard cutting some wood, and the foreman comes up and asks him why he doesn’t sharpen the saw he’s using to help speed up his work. The answer: “I’m too busy cutting wood to do so!”

The moral is clear: you can’t be effective at a task continuosly if you don’t sharpen your saw, usually by improving your skills or knowledge in some area. You should always supplement what you know with more knowledge. You should always be willing to learn new things.

Unfortunately I realized that my problem is that I spend way too much time sharpening the saw and not enough time practicing how to use it. I can learn all I want about test driven development or game design, but if I don’t apply what I am learning, if I don’t practice, then I just become a very knowledgable amateur. Being knowledgable means I have potential, but potential isn’t something I can directly leverage into be productive.

I’m going to set more concrete goals regarding the time I put in practicing what I learn. I don’t code nearly enough, so I can’t make any useful programs. I don’t flesh out game ideas often enough, so I can’t create useful game concepts.

At the same time, I don’t want to forget to sharpen the saw completely. I just need to start using it more.


Software Piracy is teh Evilz!

There was a thread on the Indie Gamer forums regarding this article about piracy: Since When Do Pirates Have Lawyers?

The Home of the Underdogs basically host abandonware, software that is not longer commercially available. Problem is, under current copyright law, what they are doing is infringing on the rights of those who didn’t explicitly allow them to do this. So they are technically in violation of copyright. They don’t want to have anything on their site that they shouldn’t have, so they provide a means to request them to remove it. If your game ended up on their site, and you don’t want them to distribute it, even if you aren’t selling it anymore, you can ask them to remove the download.

Some people completely understand and respect what The Underdogs are doing: archiving our video game history. does a similar service for the world wide web and now television. Technically, backing up the entire known world wide web infringes on a LOT of copyrights. In this case, though, I think it is providing a great service. Libraries do the same. Anyone can get a copy of any book or film or audio recording and watch/read/listen for free. The author still owns the copyright, but the public gets to use the works for free. Isn’t that just legalized piracy?

Yet there are people who are adament about how “wrong” it is. Yes, The Underdogs should probably have asked for permission first instead of going ahead and waiting for the requests for removal afterwards. But don’t throw out the baby with the bathwater. They have a lot of games available WITH the permission of the copyright owner. That’s perfectly legal and not piracy.

For your own personal knowledge and for a better treatment on the discussion of copyright in this day and age, please read Lawrence Lessig’s Free Culture. It discusses how piracy actually created whole industries: airplanes, Hollywood, recording industry, etc. It also discusses how copyright used to be limited and these days the powers of the copyright owners have expanded, sometimes to the detriment of society.

Don’t get me wrong: I don’t believe that software piracy is always and necessarily good. I just don’t believe that every infringement is necessarily wrong or evil. I like those silly Flash animation montages and the fan fiction and the ability to look at the state of the world wide web at any point in time. Some people seem to think that all of those things are not just illegal (I don’t debate that), but that they are also wrong.


Welcome! or The First Post

Well, I’ve done it. I’ve finally started a blog. How did I get started with blogs?

RSS. When I found that Firefox allowed me to use “active bookmarks” it went downhill from there. First it was just a few blogs, like Steve Pavlina’s, but then I found myself with a whole slew of feeds that I could check daily.

Anyway, I tend to be quite vocal when it comes to my opinions on things like open source and Free software, freedom, technology, etc. I’ve posted in and The Indie Gamer forums, usually very long drawn out posts at that, and I thought, “Rather than have my post get lost in the archives, why not create my own archives?”.

Do not fear, for I won’t document what I had for breakfast this morning or how cute my cat is. This blog isn’t my personal diary, and I won’t treat it as such. I will discuss things related to software development, particularly game development, Free and Open Source Software (FOSS), freedom, technology, and business. I’ll try to keep political talk to a minimum.

In any case, welcome!