Search this blog

06 March, 2010

Homework

1) Write down all the ideas you have in your work/programming hobby on post-it notes.
2) When you have the chance of implementing a given idea, move its note to one of the following stacks: success, failure, unknown.
3) Make sure to scan the unknown stack time to time to see if those ideas, after more testing, can be moved into one of the other two stacks.
4) At the end of your project, count the total number of notes and the ratio of successful ideas over failed ones.

If you have less than ten notes, you're being assigned mindless tasks, either you're a coop or you should change your job.

If you have a lot of notes, but mostly successful ones, you're probably not risking enough. Your ideas are boring, you're not experimenting, you're living on your experience.

If you have a lot of notes, and a lot of failures, congratulations. You're either utterly incompetent or you are a genius. Anyway, you're trying to create something new (or at least, new to you...). Hope you're surviving the next waves of layoffs and be happy.

I had the urge of writing this after the discussions I had about my previous post. It seems to me that there are a lot of preconceptions that are so tough to change even if they are clearly wrong.
Our industry moves fast, and some days you feel like being on the bleeding edge of the technology. Some other days, you look around and you wonder how's possible that we're doing our work with the same tools and mindset of twenty years ago.

Is it really so debatable that C++ is outdated? That reference counting is not so great? That transform hierarchies should not be the fundamental data structure of your 3d engine? Or that Collada (or any intermediate format, really) is indeed a waste of time for games?
I wrote about those things and more on this blog, and each time I write about them, I find a lot of resistance.

Are we that scared of trying new things? Can we really never fail?

Some weeks ago a coworker of mine showed me a presentation that we had at my company about the things we could do with the "next gen". And we were pretty disappointed to see that those early predictions were still more or less the things we are doing right now. We had the experience to know what we could do but we didn't try to do much more than that. We didn't try things we didn't know...

Of course, the next step would be asking ourselves what we can do to be better than that. Personally I suspect we're not experimenting more mostly because we really can't do things fast enough. We're slow, our iterations are slow, our languages and tools are hardened and inflexible. But digging into that could be the scope of another post...

p.s. Check out this GUI idea.  I suggest to watch the first minute or so of the video, stop it, think about it for a while, then finish it/visit the forums. I was really surprised to see some innovative thinking in an area so stale and so painful as is the one of game GUI/Frontends. I don't think that this approach scales well, but anyway most games do not have too complicated interfaces, and for an indie project it's the perfect approach. Kudos.

4 comments:

Riddlemaster said...

Yes, we're afraid of trying new things. But I believe it's a trait of humans in general. And always was. Risking can destroy your sense of safety (eg. if you fail too often you can lose work in the worst case). Those who aren't can be called geniuses. They invent new things, new approaches. The majority will be satisfied with using something that is for sure working. They'll be happy with doing their work only to the extent it's required by their bosses. It would be boring if anyone could be genius :)

pixelmager said...

Watched this last night, quite inspiring.

http://www.ted.com/talks/james_cameron_before_avatar_a_curious_boy.html

"Failure is an option, but fear is not" - James Cameron

Vince said...

There are two quotes that come to mind after reading this.

One is from an interview I read with Nolan Bushnell (which I sadly can't find), where he said "Enjoy being a beginner." The point was experienced people should learn to enjoy trying new things, experiments, and try to get out of your comfort zone.

The second was from my boss at one of my early internships during college, who said something along the lines of "[a company]'ll never be best of breed by doing what everyone else is doing." If you're only doing so-called "best practices" and never taking risks or experimenting, then you'll only make something that at best is 2nd to someone else. That's because someone else took the risks to figure those things out in the first place, and did it before you.

DEADC0DE said...

Riddlemaster: in general you're right. But aren't we the most technological of the technological industries? Shouldn't we live on innovation? Weren't we the pioneers?

Again, I know the history. The industry became bigger, the budgets are comparable to movies ones (http://www.bme.eu.com/news/avatar-vs-modern-warfare-2/) risks and so on...

But what I really wanted to say, is that we have to find a way around it. Search for solutions, because in the end it's still true that the company that is more innovative, wins.