Showing posts with label theory. Show all posts
Showing posts with label theory. Show all posts

Tuesday, October 20, 2009

The Symptom of Repeated Success

This is a post about something I have heard about happening from some distance. Organizations working with scrum or similar methodologies reach the conclusion that the methodology does not fit them. This is a hypothesis about why that tends to happen and a bit of reasoning around the problem.

As developers begin working with scrum or other agile methodologies it often appears as if they manage to achieve a productivity boost and gain features at a faster rate than they were used to. The teams really like this and find it to be a good practice. There is however one problem surfacing relatively often which present itself as a positive symptom of continuous and rapid success. However, behind this seemingly great facade hides a problem that seems eeringly common. The rapid increase in productivity and success is often a symptom of well... failure.
Now I'll have to explain, yay!
The problem is that the team is not achieving manageable failures. Every backlog item which comes from the product owner is successfully implemented and done within a sprint or two of work. Often each sprint contain several backlog items and the product takes on several new features in rapid succession. Now there is one of two possible states that you are in, one of these is more probable to be true and the other is likely closer to resembling a joyous pipe dream:
1: Awesome!!
  • The production is going on rails and creating fully tested and reliable user value with every backlog item which is started. The Product Owner is a domain expert in the field, has incredible insights in design and production techniques and is well connected with the market.
2: Hmm, what did the user feedback say again? Does that really match our Definition of Done? Or what does it really say?
  • The testing of user value does not inform the team about how much value they have been producing and they are developing features blindly.
If your team is experiencing this symptom of the repeated success you have a statistically troublesome scenario. The problem is that for the "Awesome!!" result to really occur you need to have one of the best Product Owners in the world. These guys are quite rare. You might also be part of an organization which is building an existing product within an existing market, this is the metaphorical equivalent of a Nuclear Power plant. The problem is known and the solution is known.
The user Values you develop are not known beforehand
It is quite likely that you are developing a product which aims for a niche market or a low-cost alternative within an existing market. In these cases your Product Owner will need to use the development team to run experiments against the market to find out how to handle the unknown factors. Be especially aware if you are making a new product in a new market, that means your hypothesis will be wrong almost all the time.
As any scientist will know you will not always validate all hypothesis as being true from their first experiments. This is where the failure of agile and scrum screams its loudest, at least from my perspective as Game Designer. I know that even the best of designers will only have a theoretical foundation which pre-validates a portion of the designs. A generous estimate says that you will be roughly correct maybe 70% of the time, but each feature contain several sub-hypothesis which in turn has about the same probability of success. This means that more than 20% of your Backlog will be dead wrong. And now I am being very nice about that number...
Features which are not valid user value is waste which is expensive to clean up
If you are part of an agile team which fails to invalidate the hypothesis within the Backlog be aware that you are most likely producing a huge design debt within the product you are working on. Not only are you failing to find the defects before they impact the user experience, but you are also failing to understand where the real user value actually reside and are thereby effectively torpedoing future design efforts aimed at cleaning up the debt.
Personally I would advice that the only reliable way to step out of this trap if you are sitting in it is to treat design debt just as you treat technical debt. Design Debt most commonly rears its ugly head as increased complexity within the user experience. Once there are many features of surmised value within the product which has been deployed it becomes quite difficult to separate the ones which have user value from the ones which don't. This is a type of debt which grows fast with compounding interests because the probability that any future backlog actually does anything good to the user value drops with the complexity of the already faulty design. This is well supported by how system complexity also increases exponentially with the number of components as neatly described by Metcalfe's Law.
The way out of Debt is slow and painful
You will need to slow down and begin to refactor the user value through effective measurement within the product. The more common attempt is to increase the volume of features which has the result of increasing the volume of produced waste.
I am not too sure about development teams which have had the ability to climb out of this type of mess. The most common exit strategy I hear people deploy is to package the failed product as "valuable experience" then starting over with a new vision, mostly to achieve the same experience next time. There are also other tricks of business magic which some have been able to perform where they can sell the work done to wealthy customers.
Conclusion
Beware of agile teams that do not report failures from the interpretation of relevant feedback from valid tests. These projects are quite likely to be creating delayed waste which have impact enough to be fatal to the project. When working on a particular backlog item ask yourself: "How would the statement that this feature is waste be defeated by a valid proof to the contrary?"
If the best answer you think you will get is a whole lot of opinions then you have a good reason to help improve the development process.

Thursday, October 15, 2009

The complete cat strategy guide for game production

This is a story about a group of agile cats with skills and a passion for games who build a game together. They met somewhere and founded:
pic
One Lean and Mean cat machine which will be doing something cool and have an awesomely good time together while doing it. The cat team introduces themselves and writes witty descriptions about what they do on their Google Wave.
Fixer Cat: "I am like doing all that stuff that no one else does, making sure that nothing stops the other cats from doing awesome stuff. I am obsessive about development process, cycle time, kaizen, integrity and communication. Other IT projects might call me a combination of QA, Operations and maybe Producer."
Artist Cat: "Art is like a universe of symbolic language which has emotional resonance and communicate directly into the users brain through traditional data generation. I paint, I make sounds, I write texts, I make landscapes, labyrinths, hats, mice, animations, music, particles, movies and everything that you see and hear within the game. I got quite the education to know the theory, tools and practices of all these spiffy art forms."
Wizzard Cat: "Computers speak directly to my soul. Little impulses of electricity becomes living worlds full of cats and mice through the magic I perform. You might think the world is made out of things, I know it is made out of math, logic and process. Nothing within the game reaches the player unless I make it work. All the programming languages, technical platforms, rendering engines, deployment process, automated testing and the lot is stuff I have mastered. I am quite awesome."
Expert Cat: "Sun Tzu would be pwnd by me. If he wasn't dead already, I am still alive. I know marketing and how to position products. I know how to measure success and set goals which will be even more successful. I speak directly to the end users and learn what they desire. I communicate the markets desires to the team and workshop with the team until they prove they understand what the market wants. I test the products on the market and improve our results relentlessly. A game developer would call me a designer, maybe a non-traditional artist or a biz analyst. I also do stuff like interaction design and scripting when needed."
Our four cats are maybe not using the most conventional titles as the ones you might be familiar with. But keep in mind that these guys are mean and lean cats. They don't follow conventional rules. They make their own rules and play their own game to win.

pic
Two kinds of players here, you know them already... In the world of cats they dont know they are a market. They just want to live their lives happily and in peace.

alternative text
The cats start working on a vision which causes a lot of half friendly cat fighting, including hissing and big fuzzy tails. Eventually cool cats reach agreement and begin with reality checking what they agreed upon. They keep running around in this loop until reality align with their concept. Or maybe it is the other way around, its difficult sometimes. If they fail they go back to the vision but these cats are so mean they only fail about half the time.

alternative text
The cat team takes a close look at the vision and how it is positioned on the market. They don't want to run into those nasty big competitors, some smaller competitors are quite ok however. They know what they are doing so they pick a spot which looks like it might have a few lonely cats without suitable and good games to play.

alternative text
Since the cat team has found its market position for a game they can start hammering out the concept. What kind of thing is this game that these other userCats are likely to want? They figure out what kind of symbolism might stimulate this audience into taking action. What kinds of goals the userCats are likely to find engaging. And they put these things into a list of priorities for production.
With priorities sitting on the wall as post-it notes they take the first one and they go out on the streets where userCats are hanging around waiting to be entertained. They talk to the userCats and carefully nudge up some information about the highest priority. Woot! This works! UserCats like this type of stuff... well sometimes at least. Quite often they have to run this loop a few times before userCats seem to provide the correct information. They might also learn new things about the competition here which needs to be taken into consideration. Sometimes they even encounter the wrong userCats and have to change them for others.

pic
With a successfully developed list of priorities the cat team starts producing prototype products. They think this is what a Minimum Viable Product is about. They bring it to the userCats and see what happens when the user cats try it. In the beginning it does not work very good, but the mean and lean cat team knows how to repair their broken prototype and after a while the userCats start to appear rather engaged when testing it.
And there it is! The cat team has found resonance after a few attempts of prototyping. This is a key moment for the team to get a morale boost which will bring them forward towards cat nirvana.

alternative text
With the successful prototype to guide them the cat team goes into production.since they are so lean and mean they don't need any more cats for this, all they need is an even tighter relationship with the end userCats. So they pull userCats really close to the team to make sure they can test their product continuously against a useful feedback pipeline.
At this point the team starts investing a significant portion of their time into making sure that they can keep up a high speed through the loop. A lean and mean cat machine knows that the most important thing is to be able to react to feedback as fast as possible and they keep on making their reactions faster and faster for every circuit through the loop. The Wizzard protests loudly when the magic might be going kaboom in the future and the Expert stops the production and does a "5 whys" if the feedback from the userCats starts sounding like strange noises.

pic

While running through the production loop the cat team is making these userCat loops, Daniel Cook named them STARS. Each feature consist of many of these loops and each iteration the cat team add value to these loops. Stimuli is the first thing the userCats encounter. The team makes sure all the stimuli in the game makes sense and fits the expectations of the userCats and sometimes they make sure that the userCats are positively surprised when moving through the STARS loop.
Daniel Cook is a hero for lean and mean cat teams.

pic

Eventually the cat team will be successfully stringing the userCat loops together in some awesome patterns. As the Newbie user cat successfully runs through the loops the Newbie cat gets more and more engaged. The cat team is so good at this that the loops are whole and working. UserCats experience good pleasure and they don't burn out or feel confused and annoyed. As a userCat plays the first finished parts of the game it feels showers of dopamine in its brain which are produced when the nerve system extends its associations to better handle the Skills required by the game.

pic
When the cat team picks up a new piece of the game to build they know that they are only in the beginning of a journey which will need a few round trips with the same piece. They are quite competent so they understand that trying to add another piece before the current one reaches the "market demand per feature threshold" is going to lead to a ton of waste in future production.
While working on making one function in the game good they methodically monitor the feedback from userCats for each iteration. They keep on iterating until there is statistically reliable proof that the purring is caused by the product and not something else.

alternative text

Oh noez! The cat team has run into a road block!
Regardless of how many times they iterate on a piece of the concept which aim towards the vision they just can't make the userCat purr from it. This is a tough spot to be in. Now they have to do a pivot. Such a lean and mean cat team is not very scared of this problem. They know that they have a solid core product developed which causes userCats to purr satisfyingly. To keep on progressing their product so they can get even more purring all they need to do is some analysis and observation.
The cat team steps back a bit and takes a close look at the market again. "Ok" they say, lets figure out where to move now. Should they abandon the project? Switch to some totally brand spanking new vision? Or ignore the feedback and release it anyway? No, instead they keep one paw firmly planted in their current vision, and prepare to take a step towards a new direction.
They adjust the aim of the vision a bit, keep the successfully developed userCat value, kill the remainder of the old backlog and define a new set of concept pieces which will lead to the new visionary point they find interesting.
pic

Eventually the game does all of the things it should be doing and the userCats are excitedly running along its dopamine infused feedback loops, having a blast and feeling the luurve all around. The userCats realize that the lean and mean cat team made something that was just perfect for them and they send love letters and even a bit of money to the cat team.
The Cat Team are heroes in the world of the userCats and they know it. What the cat team will be doing next is a secret hidden within the future.

pic

Monday, September 28, 2009

Hypothesis - Bartle types as network agents

About a year ago I took the time to read through this http://www.tp.umu.se/~rosvall/publications/rosvall-phd.pdf which contains some interesting perspectives about the world which I find relevant to game design. The first quite practical idea that struck me from thinking along the lines presented is that we can look at the commonly used four Bartle types as agents in an information network. Before I go straight at the idea I have to describe what I mean by information network in relationship to this particular post.

An information network is any system which relays information through links to nodes. For the case of a an online game, which is where the Bartle types come from, this information is typically in the form of text, number, items, levels and so on. We can summarize it as everything any player does which can be observed by any other player either directly or indirectly as a piece of information in the network. The nice thing is that we don’t have to care about the details here.

If you want a good background for understanding the following arguments I recommend reading the publication linked at the beginning of this post. Otherwise maybe you might be interested in it for some other reason.

Quick and dirty Information Network theory background

Nodes are positions and actors in the system, for the case of this particular perspective they are players.

Links are connections between players which transfer information. A Chat conversation is a link, group membership, trade, spatial proximity and so on. We can categorize links as a kind of relationship between players. Links are commonly measured as a relative strength. Measuring links in a binary fashion as used in this text implicates that there is some threshold under which the relationship is too weak to warrant representation in the model. For example between two players who briefly saw each other or had a brief conversation. If you have a project where this type of detail is of relevance feel welcome to extend the model to fit the data which you can understand.

An important piece of background for understanding this text is that links are attracted to nodes which has and communicates information.

Some poorly formulated theory follows:

Bartle types can be detected within a game by tracking changes to the information network. How you would do this practically is not going to be part of this post. Each player can be considered as a node, or we can group players together if you like, but on this very abstract level it does not matter, at least not to me.

The Achiever is a node which generate information through its activities. The Achiever activities are typically focused on explicit goals within the system, such as obtaining things of value. The information gathered by the Achiever is primarily about the Achiever as a relationship to these goals. Such information will spread out from its source to other nodes in the system.

The Explorer determines the value and priority of information in the network. The values found by the Explorer are relevant as meta information and attract links just as any information does. By careful examination and comparisons of available information the explorer is the node which labels information as more or less relevant within the system. If you have played some WoW you might argue that this is done by the auction house, I would argue that there are other things which are information, such as raid tactics, rare spawns, cute little pets, fun quests, interesting situations, chat conventions and about everything else.

The Socializer is a node which relays information by attaching links to available nodes. Information and the priority of information attract attention from the Socializer. Once the Socializer node has obtained information it will use the information to attract new links.

The Killer is a node which cut the network by removing links and nodes. The Killer is unpredictable and will at random select a piece of the network and cut it. We can make a guess which says that the Killer will cut the network at about 2 degrees separation, or more, from its own position.

Friday, September 18, 2009

How. A sub-atomic structure

To begin with the effort of breaking down games into individual parts I need some rules to follow. I’ll begin with making a rule which says that the breakdown needs to have a useful purpose for making better games, or at least analyzing games for potential improvements. Since I preliminarily have the intention to make a comprehensive model for some analysis I will segment the effort and give each component its own story. I will also go for the large scope and make this breakdown for “computer games” rather than board games and I will aim it at what has value in the marketplace.

How Things Happen

Games are composed of “things”. At this point we don’t need to dig into what these things are, that is going to be covered later. What we need to concern ourselves with at this point is the matter of how.

When you create a game you have the option to determine how things happen in the game. A lot of your options are going to appear as hard wired in the technology or genre which practically is a matter of cost efficiency. Since we are not concerned with cost for this particular topic we can ignore things such as genres and technology and purify the idea of how.

How, for the purpose of this text, is a matter of matching sensory requirements of the user with events in the product. We humans have sensory systems which have been developed through a long time within an environment which honed our DNA through analogue API’s. These are often referred to as nature. Our senses are developed to detect things in nature and it appears as if things in nature come to our attention through some natural properties. A suitable example of the way nature works to catch our attention is perhaps how a branch of a tree breaks when you are climbing on it.

You are standing on a branch in a tree and feel it sway slightly beneath your feet. Suddenly you hear a crackling sound of wood fibers breaking, the branch bends swiftly and you fall. This is a simple model of a natural “how”. We can plot it over time and get a little sequence.

Swaying –> Crackling –> The Break –> Falling –> Ouch!

For the purpose of fully detailed analysis we can consider the crackling as an individual how. How does the branch crackle in nature?

The crackling is going on for a short time and begins with the first crackle, the first fiber that breaks signifies the moment when the branch starts crackling. When the branch crackles its most intsenively we definitely can tell there is some breaking going on. The last fiber that breaks signifies the moment when the branch has finished crackling. We can plot the sequence of crackling over time and get another graph. We can assume the time is short, maybe about one second.

First Crackle – Peak Crackle – Last Crackle

Us humans have developed a in a world where branches crackle as they break. The crackling is an integral part of how we learn climbing in trees, something which probably was more important to us a few million years ago but anyhow, our brain uses the crackling to learn about trees. Since games are much about learning things (which is a topic we will return to later) it is important that the way things happen in games match the criteria for how the brain organize sensory stimulation.

Something that is really rare in nature but awfully common in poorly built games is the metaphorical equivalent of branches that breaks without crackling. When things happen immediately we fail to learn what happened. We stand on the branch and suddenly the branch is broken and we are falling. This causes a sequence of sensory failures and the player often experiences a negative value in the product as a business consequence. Our ancestral monkey humans quickly learned that certain types of trees are treacherous and should not be climbed, that is the markets rejection of a poorly built “how”.

From here we can make a comparison with how things happen in a piece of music. This is a comparison for practical purposes because the structure of how has been dressed with a terminology in the music world. We can look at a note that gets played. We don’t need to care about which not or why it is played.

Someone who tweaks synthesizers will be quite familiar with the concept of envelope which sometimes is called ADSR. Envelope primarily defines how the sound signal changes over time. It is commonly connected to how the amplitude, or volume, changes over time, but can also be connected to other things such as filters, phase, pitch and everything else you might want to involve in the note. Since it is easier to understand what happens with amplitude than the other things we will use that as a reference.

When a note begins, the A in ADSR which stands for Attack is set to fits between two extremes. These extremes are instant and very slow respectively. No natural instruments really has an instant attack although some instruments which would appear to be close to instant would be a small bell, a pluck on a guitar or the pressing of a key on an electric organ. An instrument with a very slow attack is also tricky to imagine but rubbing a gong with a brush until it howls would be an example, a singer who makes a very quiet noise and slowly increase the volume until it is loud or an orchestra which slowly builds a crescendo from silence. The real point is that the shape of the attack matters a great lot to the listener of the music.

The remaining parameters of the ADSR will get a bit shorter descriptions.

The D stands for Decay. Decay defines how the note changes after the Attack has player through but while the instrument still is “alive”. For example how the note from a piano sits there while the piano key is pressed.

The S stands for Sustain and defines how the instrument behaves while it is continuously stimulated. For example how a violin sounds while the bow is acting on its string, or how the organ sounds while the key is kept pressed.

The R stands for Release and defines how the instrument behaves when it is told to stop. How the string stops making sound after you release the key and the dampener interfere with the movement of the string.

When building a game we choose how the envelopes for feedback systems are set. The shapes of the envelopes give the feedback fit within the overall experience. Chances are that a very successful game has more variation in its envelopes than less successful ones. It can be argued that feedback is a fractal concept which exists within all levels of the design and that there is an envelope on the feedback from managing a guild in an mmorpg as well.

Figuring out how your particular game should structure its envelopes is an iterative process within the development cycle. Making conscious design decisions for how each component operates from the direct to the abstract will likely help make you understand your product better.

Feedback envelopes are from the perspective of a structure or “grammar” for game design at the sub-atomic level. You can feel them, test them and evaluate them as individual contributions to the overall experience without needing to worry very much about their dependencies on the higher up structures such as skill atoms or story for a good long while. An important thing to keep in mind here is that it is a relatively hefty task to iterate feedback envelopes and you are likely to benefit from determining your level of ambition before you get started spending time on a very ambitious scope in this matter.

Example of mechanics which has an envelope you can test in some isolation.

An attack, accelerating a car, steering a boat, jumping, killing an enemy, selecting a puzzle piece, completing a puzzle, becoming a friend, using the manual, starting the game, etc. There should be no end to which things in a game has a how.

From here we can go back and look at the envelope for the full story of the breaking branch in the tree.

It begins with swaying, converts to crackling, breaks, sends the person falling, from where the next envelope takes over and defines some kind of ouch! A very big part of the learning in games comes from the envelope of the ouch. Learning in games is also something which has been well explored by many experienced designers the last few years so I won’t have to write much about it when I get there.

Friday, August 21, 2009

Protons, chairs and art

Things have a tendency to be composed by other things. How things break down depends on which system you use to break it down. Music as I have previously written about can be broken down into music grammar, an example might look something like this.

Opera > Act > Instrument > Key > Bar > Note

I don’t really know anything about opera so don’t think this is correct in detail, however the point is that the full experience consist of a significant hierarchy of information regulated by some grammatical rules.

Another example of a thing which breaks down into some kind of grammar could be a chair.

Chair > Material > Structure > Molecules > Atoms

Again I don’t know anything real about physics but again the point is the same.

It appears as nothing is exempt from the property of existing within a greater whole. The chair might exist within a room, which exists within a house in a town and so forth. The value of the chair might be linked to the town in which it is and what the local trends and cultures happen to be around there. Also atoms break down into smaller particles and forces if you desire to extend the model even further.

Now I’ll try get to the point of this little post.

In the case of music you can individually analyze each level of the breakdown for value and defects. If there are too many notes in a bar of music the music is defect which will make the whole opera sound foul. If you don’t know that the cause for the foul sounding opera is the existence of too many notes in one bar for a particular instrument you might attempt to repair the problem by adjusting everything else to fit the broken piece.

Much of the game design theory which I find on the internet contains the concept of how to break down games into their hierarchies. I find many of them exciting, especially the skill atom concept by Daniel Cook at
http://lostgarden.com/.

However there is something which nags at me as feeling insufficient with all the models I have seen so far. I suspect the cause is that the breakdown into a “grammatical” type of structure is limited to present only a portion of the piece. In the world of music the missing pieces might be covered by two additional components.

1 – The instruments and their properties
2 – The musician

These two properties can be seen as extending the breakdown of music into even finer components which define the properties of a note.

.. > Key > Bar > Note > character > harmonics > dynamics > phase > modulation > etc

Or you can turn it around and describe the waveform which is the end product of the Opera as math... a suitable task for a clever programmer with a big computer perhaps.

It might seem unlikely but there are several pieces of music which has its user value linked to the interaction between phase and dynamics within a single note. Two types that come to mind are electronic music and classical soloists who both expend great energy at refining these subtle parts of the product.

Now It might be about time to make an attempt at breaking down games into their relevant areas or materials. That will be another post.

Monday, June 29, 2009

Care is needed

I just read through the excellent first installment on the Game Design Concepts by Ian Schreiber. I recommend reading it: http://gamedesignconcepts.wordpress.com/2009/06/29/level-1-overview-what-is-a-game/

The definition of game is an interesting matter. I would add to his something like this:

A game "requires that the player care about the outcome of the game."

This is relevant during the play session. Since the game is defined as an "Activity" already I will lump this one in with the definition of game. If the definition was aimed at the construction of the game in its idle state I would remove it.

Tuesday, June 16, 2009

Format

Something i have been pondering for a while.

The form of play in games is to see what happen when you do things.

Along the way you encounter other forms, play goes through feedback which presents consequence. Is it that easy to describe?

Sunday, April 26, 2009

Ideas

If design is a process which bring out the value of an idea, then what is an idea to begin with?

Wiktionary offers some definitions, among them this one: "The transcript, image, or picture of a visible object that is formed by the mind; also, a similar image of any object whatever, whether sensible or spiritual."

Which appears a bit cumbersome. I will yet again create my own definition to serve my own purpose.

- An idea is a collection of information with undetermined value.

This is a bit rough, but its enough to hook it up together with my definition of design. What yo can do with an idea is what is interesting. There are two main techniques for determining the value of an idea. You refine the idea either through creating artifacts around it which can transfer the idea to more brains, or you construct something that is the embodiment of the idea to see what happens. These two techniques are quite different.

Tuesday, April 14, 2009

Practicing Agile on Art

To practice the kinds of principle which are described by Lean I started with creating a piece of music. I like making music, it is meditative and it uses some of my usually dormant skills which when I fire them back up gives me a serious dose of pleasurable feedback chemicals in my brain. Anyhow, creating music is an example of a very well defined production system and I like making abstract generalizations from things I know well to things I know less well. On the whole I can claim to be quite an efficient music production team all on my own, something I have a hard time claiming for the art of making games. Games require so much wider skill sets to go from idea to fully implemented in the cases that I am interested in so I can’t make a micro experiment to test the concepts of Lean development on my own with the game medium, and I can’t program well enough to make anything useful.

One of the great advantages with creating music is that I have access to a relatively decent implicit iterative method which covers the full production pipeline. I can tell if the instruments are tuned poorly, if the arrangement is busted and such technicalities. I can even tell if playing the instrument in the recording is giving a result which pleases the musician. This means that I pretty much know when I am cheating the creative process by accepting less than flawless components in the production. I can also cheat and get some explicit feedback from various sources such as sending snippets to friends over the internet or check details with a spectrum analyzer etc.

I also know that the end result is the interaction between the components and that I will not really be able to know in advance if a production will be good or not. I can generally feel it growing if I keep working on something which keeps me motivated. Almost everything which I ever finish is based on a mashup of old prototype songs. This mashup process is something similar to stage gate portfolio management which defines little pieces but without the information of how the pieces should interact to deliver an impression. This is also poorly managed by me with various references in my brain and plenty of broken snippets of recordings which I usually forget about. To bring this mess of components to life as something which I can claim to be something I finished I have to work through what my limited experience would label as a large process. I don’t like using samples, when I try I tend to get bogged down in editing the samples so its more efficient for me to just go straight at making the whole arrangements and tweaking the hell out the individual instruments.

The way I make music is fundamentally iterative. The goal is a mix of creation and refinery towards reaching greatness. Greatness is a state of perfect fit, “the goose bump factor”, an implementation which creates unique emotional response of some kind. This is hard work, I am rarely motivated enough to not give up and leave the effort as a part of the busted stage gate portfolio. It happens sometimes that I keep on going and the finished results are what I can use to run production technique experiment.

Writing this I sense that I will not be able to combine the whole argument in one big post. I will have to dig at details another time if I get there but I got some direct references at this point.

1 – Make it Flawless; applies to music production. This is a well known oldskool audio engineering principle which says that: “Make quality recordings of sounds; you can not make bad sounds good by tweaking them.” You can also not effectively engineer up a poor performance or a bad melody through creative editing, you can make it better yes, but you will be much less efficient than making the recording good in the first place. Compromising these early stages of the music production is like technical debt in software development, you can use them to move fast to a certain point but you will never reach greatness unless you go back at a later point and fix it. Such late fixes are often big risks as the new recording might interfere with the whole arrangement. This often leads to cascading failure of the whole production and all you get is yet another ambitious component of the stage gate portfolio.

2 – One piece Flow; this very much applies to music production. If you fail to follow it you will fail the Make it Flawless principle and learn to accept a poor result. The trick to one piece flow is to know your production method which is much easier in the world of music than when making games, especially for me since the process of making music in my case happily operates at a loss as long as I have fun with it. In the world of music production this goes through layers of development. You will benefit greatly from having the rough shape of the arrangement in place before starting to mix, you don’t start with the mix because then you will break the idea of one piece flow and en up with all pieces. The real question here is what the “one piece” is. In music the “one piece” is a multi dimensional argument. It can be used for an instrument, section, harmony, melody, mix, arrangement, lyrics and so on. The matter is the ability to identify the pieces and to learn how to be satisfied with one particular piece. This identification has its roots as a craftsmanship based on skills, theory and vision.

3 – Maintain multiple options; this is integrated with tools pipeline. In an ideal world I would call this “the mix” which is what you do last before sending the work to the ears of an audience. I am not sure if this is because I want the reference to fit or if it fits. The idea also carries through the arrangement by the theoretical structure of music theory. There is this huge set of lore which a master musician can use to apply multiple options to any given situation. I am not a master in this sense but I had an awesome Jazz teacher who showed me a few things about which doors can be opened to toss things around in a technically “legal” manner. It has been half a life time in my world since I had those lessons but their fundamental concept remains with me still. I’ll tell you the secret right here: All that theory is just a shortcut for connecting your ears to be the judge of what is good. It is a great shortcut and it is the key to collaboration and communication about the creative process of the medium. But it is nothing which resembles strict laws and the rules are there to be broken by the creator at will.

4 – Avoid Waste. This is a tricky beast, also very relevant to music. Defining what waste is in a music production is not that straight forward. Recording random things and putting them together is generally waste, sometimes it is a process which rapidly can fill up the stage gate with concepts. The real answer to the question of what waste is depends on the vision and goals of the production. If the goal is to increase the stage gate then an ambitious mix is waste, if the goal is to deliver on a vision then aimless noodling and random recording is waste. To know how to spot waste you need to be a well practiced craftsman of music creation.

My biggest problem for my music hobby is lack of vision. I like to blame this on the extremely efficient development method which gives me an extremely agile context. The studio software allows me to change anything at any time so I never feel like I have to spend any effort at creating a vision for the work. This makes it easy to get a false sense of progress towards greatness and the lack of vision rears its ugly head as technical debt within the whole arrangement which sends everything to the stage gate relatively often.

All of this stuff is generally applicable to most things in life. The biggest problem with implementing process optimizations toward value production is a lack of common grounds for communicating these kinds of ideas. Just as it is hard to make a band play good music without a fundamental common ground in music theory it becomes hard for a game developer to make good games without a common ground in development methodology and game design theory. Lack of common ground will require blind faith which is a rare human trait and it rarely lead to good results.

Tuesday, April 7, 2009

Layers of iterative development process

All the layers in this image contain iterative process, of varying formal structure.


Note that each level also tend to be branched to different territories, at the bottom you have different types of experts or artists producing different types of work often through implicit iteration.

Sunday, March 29, 2009

A reductionist model of humankind

Anyone who read this is statistically likely to be annoyed by it. It is also not founded in any real research that I know about, just a bunch of conclusions drawn by myself through looking at things and probably cherry picking my sources.

Humans are agents in a big system based on other humans and the rest of the world they live in. The system is too large for us individuals to see how the system works even at a short distance away from where we stand. This is what makes us individual, local properties.

What makes us different on an individual level is what we know and how we think and this might appear like great differences on the surface. But in fact it stands for a tiny portion of what a person is in comparison to the position within the whole system. The definition of the individual – you come from your most immediate surroundings through life until now and your expectations on the future based on extrapolating the system in a predictable direction.

As we grow up we learn to attach blame and praise for how we operate on ourselves but this is primarily a bunch of fake social magic which our system has invented as method for success, as success for the system, not for you, through the last few thousand years. The biomechanical machinery in your brain is built to trigger on stimuli which it learns to associate with rewards or stress based on randomly testing the world to see how it operates. We spend the vast majority of this random testing on figuring out how people within the system work and what things we can do to make them exhibit useful behavioral patterns. It was quite a different result a long time ago when we roughly belonged to the same system as some kind of monkey.

Anyhow, condensed this means that we really all are just the same. We think we are very special because our own consciousness happens to sit without ourselves but we can be relatively certain that we would have been easily replaced by any other consciousness given the same circumstances as ourselves.

Given this potentially evil, if you like that type of language, argument we can probably figure out how the system operates even at a great distance. The people that are so far away that you have no chance of knowing anything about them will have done exactly the same thing as you did until right now. They have been trying to figure out how the system operates from experimenting randomly with the available local properties. Based on these local properties they have developed a personality which will be roughly the same as your own, regardless of where they are in the system.

It is very unlikely that they will be reading this text, har har, which means that you will possess a different set of data to use for interpreting the world. Which also mean they might even speak another language and associate other things as stressful or rewarding, that’s their local experience and it will have the power to shape their model of the world.

Now the responsibility of art becomes to manipulate the agents in the system towards performing actions which increase the experienced value of the whole system. Increase the full volume of the value, the average, the mean average and increase the minimum value per system component, the risk of failure and so on. The only reasonable compromise is the reduction of the individual maximum, which on a system level is waste anyway.

The usefulness of bugs

This is an interesting topic we had a little look at recently. In my world a bug is a subgroup of something that with a wider definition would be called a defect. Googling for a definition of the term defect gives a useful result quickly which says this:

- An imperfection that causes inadequacy or failure.

This a good place to start.

In my experience the vast majority of defects associated with professional game development or entertainment in general belong to the category of inadequacy of the user experience. I would call it ‘inadequate emotional attachment’. It happens that the experience of the player is significantly damaged by the existence of a good old fashioned bug. A program failure or crash will generally not be helpful towards the emotional state of the user but these problems are thankfully not all that common anymore and various measures are in place to remove them from software products.

A much more common problem is the lack of something intangible which makes playing the game feel just right. There are tricks or theories you can use to make better games but they are not generally accepted yet so they are hard to describe without getting into very lengthy descriptions of things. So instead of getting stuck in a theoretical black hole I can use a metaphor from the art of making music.

Most of the music that reach you will have been analyzed through a rigorous process of defect detection. During its creation the music you hear will have gone through lots of iterations, thousands to millions of tweaks and changes have been made to create the result that is emotionally attaching enough to reach your sensory system. These tweaks have had all kinds of reasons for being done. Different composers or music creating organizations have different methods towards doing things but in general we can take a reductionist look at it.

Most of the work done when creating music is inadequate on the idea level. The idea behind the work is not worth the trouble of refinement. The musician detects this quickly and iterates the idea. Eventually the idea is iterated to a point where it reaches something I will call experiential harmony. This is based on all kinds of details, such as the sounds of the instruments, the arrangement, the rhythm, melody and so on. The result may not yet be anything complete but it has reached a “proof of concept” level. To reach this point the musician has gone through defect elimination of several types. Different types of defects are eliminated based on different techniques.

Finding a good sound is the process of selecting the right instruments for the various parts of the arrangement and placing them in the sound image where they fit. This is something which typically starts with a great lot of simple defects and ends with a system of sounds which interact experientially productive.

Finding the notes played by each instrument is another type of defect prone creative process. Some parts come naturally and some are iterated heavily. It is easy to get to a state where the music is broken due to bad notes. These can be detected and changed from bad to good relatively easily.

The difference between a defect note and a defect sound is of some relevance to the topic of this article. The classical, and in modern times rare, bug is defined as a defect note. It is an explicit error in the construction which can be removed or changed to improve the emotional attachment of the product.

The more common defect in a user experience is a complex problem which arises from the interactions in the whole system. We hear player say various things to state the existence of these defects.

The game is too hard, the game is too easy, boring, slow, stressful, not interesting and so on. You might think that “he wrote boring and not interesting as different things, how stupid.” But from a game designers perspective these are different things, boring is about patterns and the interesting is about context. When you use a players feedback to iterate towards value you are well served to realize that most of the feedback you get will be describing symptoms of complex problems.

A complex problem is in this context a defect which arises from the interactions in the system. Classical examples are unrestrained positive feedback loops. These are so common that we even got a specific label and fix for them which is “restrain feedback loop” by changing how the system interact or process data in one or more points. When the player says the game is too slow it means that the player is waiting for relevant information for too long, this is matter of pacing and tuning which has different complex structure in different parts of a game application.

What makes this fundamentally interesting is that the process of creating emotional attachment is not reactive to user feedback. User feedback is useful for providing the process with relevant information at some points, especially useful for detecting complex problems in the system. The solutions to problems need to come from the system creators.

If the project which is creating this emotional attachment classify defects which are complex problems as bugs you are likely to have a much worse problem than bugs unless you already have reached primary business objectives for the whole product which means it will be ok to have a total failure anyway since everyone is happy with the already accomplished result.

From a musicians perspective it is intolerable to accept bugs. The existence of bugs in music means that you prefer making more of the bad music than making valuable music. You can use this strategy during the iterative process and for example accept bugs in the melody while refining the sound but you will never consider a piece of music to be “done” until it is free from defects and thereby flawless. This means that bugs which are reported from end users should return to the product development as the highest priority backlog, if they return as a randomly prioritized task list you are most likely far behind schedule towards reaching business goals.

Practically we can probably look at several strategies which deal with these problems. I myself believe the development team needs the mandate to stop defects from reaching the end user in the first place as they are the least likely to be having other goals than making a great product. If you reach a state where it is more important to release a defect product than it is to create a flawless product you are probably in trouble already.

Saturday, March 21, 2009

Target audience

Who likes a particular piece of music?

This question has a lot of answers. I would not be able to answer it in detail. All I can hope to do is to understand the piece of music and how it relates to world according to some quantifiable properties.
  • What kinds of music it is similar to
  • If it is easy or challenging to listen to
  • If it is easy of hard to perform
  • Maybe also what it is about
These can be broken down in little pieces. Like which things are similar to what, detailed infuences and so on. The relationship to the audience is influenced by these details. You rarely really know in advance which things have what influence. To get a satisfied audience as a musician you focus on making the music as good as possible. There are some genre dependant properties which define more or less strict rules for the audience. I usually like the extreme of improvisational jazz, as it is one of those hardcore music genres with a comareably small and devout following. It is also defined by quite rare properties with strong influence over the artform.

There are those moments when peple convert to become listeners to this type of jazz, they might make the leap based on a lot of various motivations. Not very relevant really...

When it comes to games I am quite confident that the same general principles apply that exist for music. The difference for games is from my perspective that most of the games we know are like improvisational jazz. Every game has relatively strict and strong influences which fence the player off from the experience.

A game will require the player to make that leap to become a player. The interesting question is why the player will make the leap. And how the game can make the leap as painless as possible.

When you want to push normal people to become listeners to improvisational jazz you can use a few tricks. Like making the musicians play things which are easier to listen to and follow than what they commonly do.

Sunday, March 15, 2009

Maintaining multiple options

This is a Lean productivity trick. Mary Poppendieck describes it well in this awesome movie; http://video.google.com/videoplay?docid=-5105910452864283694 - you have to watch it if you care about making good things.

When looking at game development this is done on a regular basis in some of the pipelines, most obvious when drawing art images through how the layer system operates in photoshop but also in how programmers write code with branches and classes, how storywriters use word processing software to keep dialogue and story flexible and how musicians create the music score with their software such as ProTools maintaining all the versions of the songs on the HD while edits are happening to a subset of files.

Now the question becomes how to apply this to the combined user experience which results from bringing all these pieces together. As the network theorists say something along the lines of: the whole system is the combination of the nodes and the interaction between the nodes. The game which becomes the user experience is the interaction between the nodes, the code is one node, the music is another node, the image art is a node, the interface is the tool which the user has available to navigate the network which in a good game becomes a modular agent in the network.

The game itself is a system which measure the skills of the user, these skills are deployed in context by the user to navigate the whole network. Any piece of the network which is outside the users path is roughly what lean would call "waste".

For the whole game system to maintain multiple options we'll need to expose the interaction between the nodes as readily changeable and generally transparent, human readable, data with some level of backwards compatibility. This is an utopian model, but it is not fully a pipe dream. In a not very far future we will know much more of the principles of game design. From my perspective these principles started with Chris Crawford and his model of interactivity, they have moved forward a lot with things like Raph Kosters theory of fun for game design and Daniel Cook's model of skill chains. There is a lot more stuff in this mix worth a mention, but maybe we'll go there another time.

With a better understanding of the principles for game design we will be able to identify differrent types of interactivity and thereby define the interactions between the nodes in the system with an explicit format. Music has several kinds of explicit data formats to present the patterns of sound on on various levels of abstractions, waveforms, instruments, overtones, harmonies, rythms, notes, tabulature and so on. Several of these have alternative modes, you can define a "tone" through various methods either as an "instrument (violin) playing a note (A) for an proportion of a bar timeunit" or a "fundamental frequency (440Hz) with 9 overtones (i think thats the violin if I remember it right) playing for a time in seconds". You can keep on going and define the waverofm as a function based on trigonometry if you prefer but I'll skip that example. I think the point made it through without. Note that the actual psychoacoustic representation of the violin is a lot more complex than these primitive models but on the theory side of things you go there if you want to, which is about never unless you are a bit "special". For the synthesizer manufacturer its all the way down through the trigonometry that wins the day with modulation, also trigonometry, controllers and stuff.

Game design theory is today at the stage where everyone communicate with a randomly selected spray from the whole arsenal of terminology, or rather, different people use different terminology to say the same thing and they generally don't know that there are other terminologies which define the same interactions within the system. They can barely even communicate with each other without first synchronizing the language which is a hard problem. Some very experienced designers will have a gut feeling for a lot of the principles, I myself find that I have a better grasp of some models when analysing a game play experience and some others when writing a game concept. I must admit that I also don't know the whole system, I don't think anyone does. There is no "first dan black belt" of game design and not even Sid Meyer, Will Wright, Chris Crawford or anyone else would have it if there was one.

However we can start in the pragmatic side of the equation and create a data model which best expose the whole system as nodes of data and interaction which is the transportation of other data through the system at the request of the user through the interface agent.

Now you could claim that this is already done with the programming langugage itself, and to some degree that is true. However the game systems which people play today are requiring domain experts which are not always competent programmers. (Programmers don't tend to spend most of their time doing user research as example, thats sub-otpimal to most production efforts.) Also maintaining multiple options through having several version of the whole code base is unlikely to be much help.

So what kind of data can define the interaction between nodes in the system?

If anyone wants to take a stab at it go for it, or bring up examples from various game engines. ^^ (Or I will later on and then it gets texty as usual.)

Iterating towards value

It is commonly accepted that the user value in a game and most things has a statistical probability to increase with the number of iterations it has gone through. This goes for things such as fried meatballs, your DNA, a guitar solo, a sound and so on.

This takes on different forms in different areas of life, since I am interested in writing about game development I will focus this story on some of the forms involved with making games. The process relates to cooking and music production, but since this is a big topic I’ll leave most such fun references out.

The relationship between iterations and value is often plotted as a neat little graph.

Note the S-curve type of deal going on. That says something about the existence of “no value” iterations at the beginning of the process. You got to get to some point before you have anything, then eventually it is finished and stops getting any better. To get anywhere interesting with this topic we have to take a look at the definitions of the graph. What is the value you get as a function of # iterations?

What one iteration is

One iteration is the work done from the point where there is an idea about doing something to the point where what was done has resulted in useful feedback. This is a fractal concept and it has several types of zoom levels and dimensions. The one zoom level most commonly associated with game development is on the product level. One iteration on that level have its value measured by feedback originating from the potentially shippable product through various test procedures such as user testing, technical testing and getting accepted by the product owner. These are examples of something I will call explicit feedback.

Explicit feedback gives a quantifiable measure of value which is obviously visible to the involved parties. These summarize as “done” when everything pass defined criteria often called a “definition of done”. Generally if feedback from the work shows an insufficient or negative value increase the iteration has failed.

Another zoom level for one iteration with an explicit feedback loop is the creation of code data, commonly called programming. If the code is broken it will fail to compile and all kinds of feedback is generally built into the code pipeline to prevent broken code from entering the system. The programmer makes a new iteration of the code to improve the value of the code without first shipping the code to the end user to test if it has any value. These iterations are fast, some broken code can be iterated on in a matter of seconds. This time unit defined by the time it takes to iterate is sometimes called “cycle time”, which I will also use a fractal concept. I will call this comparably low zoom level of iterating for “creative process”, the programmer creatively create the code.

Another type of creative process is the creation of images. The artist uses an image creation tool such as photoshop to create image art. This is also a fast process. The artist will generate art data on a second to second basis, undo things that go wrong and create new pixels with a stylus without thinking of it as iteration. The artist also maintains and switches between multiple options throughout the production of one image. The feedback which closes one iteration in the creation of a pixel of art data is internalized by the artist. I will call this implicit feedback.

Implicit feedback is not obviously visible to anyone. It is to the observer a subjective measurement and often leads to all kinds of emotional distress for the involved parties when it comes time to analyze the value of the output of the creative process based on implicit feedback structures. To the professional artist it is not fully subjective as some principles of the arts guide the creative process but in large it’s a relative mess compared to the efficient explicit structure of code creation. It also happens that different artists use different principles for this process which often cause communication problems, but mostly everyone has learned to live with this process quite productively.

Now that we have a model to differentiate iterations between ones based on explicit and implicit feedback it becomes much easier to understand what things you can put in through the value creation process.

A guitar solo runs its first several thousand iterations as an implicit process before it reaches the point where it gets explicit feedback in the form of praise or complaints from band members, audience or other people involved with the music production. Improvisational jazz is an example of the solo going directly from implicit practice to the end user without explicit iteration, even driven by the goal to change between each gig! The details of the solo are guided by a lot of musical theory internalized by the jazz guitarist.

The development team for a product increase its value based on explicit feedback from the producer or the team itself, as well as the implicit feedback within each team member and their feelings towards doing good or bad work. Scrum is an example of a process which forces some of this feedback to be explicit. This is good in the sense of providing direction but as all game designers or players should know we humans have the property of “gaming” systems towards maximum reward for minimum effort, hence it is likely that if not guarded well the process is used by the team to optimize towards getting the positive explicit feedback at the lowest cost possible. This is in game design terms sometimes called “bottom feeding” and needs to be guarded against by the rules of the game which define what to do to get which feedback. Another game design term which becomes relevant in explicit systems is the “mastery problem” which means that the better players will dominate the feedback structures of the game and win at a cost to the other players. Neither is good for the value of the product and digging into these details may be a topic for the future.

When explicit and implicit feedback systems fail to agree on if an iteration is successful or not there is often all kinds of problems surfacing. If these problems happen often the whole product is most likely going to fail on the market.

Implicit equals difficult

Making enjoyable and fun interactive games is primarily based on implicit iteration. Some fundamental infrastructure such as code and having a development team can be considered explicit but getting the experience to a point where the market value motivates the investment goes through tons and tons of implicit iteration.

Many of the implicit structures in a game are based on established art disciplines such as creating images, animations, music and storytelling. The product trusts itself to these domain experts effectively collaborating as a team. There are tools to rapidly iterate these components in isolation and it is part of the expertise of the experts to be masters of these tools.

The real problems surface when the implicit feedback relates to the sum of the parts of the system in the form of information design and game design. To make the game play experience have any value these also needs much iteration. Yet again there are skills and principles in the design expertise that help this process but they all fall under the implicit feedback umbrella and thereby cause communication problems.

If you look at the game industry at large you will find that there are a lot more games in certain categories, this makes the game industry appear relatively narrow. Many games resemble each other and are based on each other. The games that have been successful become so by playing on their strengths. The things that can be iterated relatively fast are strengths while things that iterate slow are weaknesses. Most are built on development techniques which upfront know where the pipeline is fast and where it is slow. This gets successful when each domain expert in the area of design owns the iterative loop for the implicit creative process. The things that have a cycle time measured in minutes or seconds reach the point of noticeable value, while anything which has a slower cycle time measured in hours or days should be considered as experience-wise valueless infrastructure. Those slower components of the experience will not be what make the user reliably have a gratifying experience. You might get lucky, but to get from lucky to certain the fundamental trick is to get the cycle time down to the range of seconds.

Techniques for effective iteration

Now that we have gone through a somewhat too big background of the problem we can take a look at a solution.

Based on concept, product vision or creative direction take a deep look at the idea which is going to result in user value then list the main components of the user experience.

  • Take a through, cross-functional, look at each of these pieces. If there are more than a few dozen and in the hundred or so range you probably mistook the user experience for something too granular or technical. Or your team might not understand what the experience is supposed to be which might be a sign for future trouble.

  • With the list in hand maintain the cross-functional approach and categorize the pieces in cycle time as estimates in seconds, minutes, hours, days and weeks. Include dependencies in these cycle times if needed, for example if it is relevant that some animations blend properly in the feedback system consider the pipeline for animation blending in the cycle time for animation feedback.

Now make three categories

  1. Usability Infrastructure, everything with a cycle time of days and weeks in here
  2. Shoehorn User experience, the things with a cycle time measured in hours
  3. Reliable User Experience, seconds and minutes

With these three categories freshly composed remove everything except the third, fastest, category and see how well the things in this fast list match up against the idea about the product. It probably won’t match up very well. Don’t panic! This is quite common when making interactive entertainment and it is to your advantage. Most of your competitors will expose their weaknesses if you can figure out where their user experience is bogged down in the infrastructure category. You can also save your project by avoiding dependencies on the user experience which resides in this category. You will have some, that’s unavoidable but at this early point you have the ability to shed complexity to move the right things to the category of reliable user experience.

A general trick for getting the interactive parts of the system to the level of reliable user experience is to make all feedback elements dynamically changeable. For example if you have a storyline with a movie in it you will have the experience defined by the movie as a feedback element for an event triggered by the user. It is now important that the person who knows how to make movies can change the movie inside the experience with fast cycle time. If the cycle time is slow for movies don’t make them as parts of the system. Put the movie in the beginning instead as an intro which has no dependencies of interactive nature.

This can also be done for the verbs of the interaction circuit. You can’t expect to add a new verb with a fast cycle time so the verbs themselves go in the category of infrastructure. You can however adjust the subject the verb interact with, such as the width of a hole you need to jump over, how fast the opponent is running in a shooter. The verb can be changeable too such as the target area of the weapon or the height of the jump, expose suitable adjustable variables in an easy to change and preview data model. Beware tho, don’t mess up all the level design by changing the jump variables after production of the levels has started!

Use a recursive strategy to tune the experience. Make sure that the user is protected by efficiently tweakable variables to lean against all the way along the user journey. This will allow you headroom to react to feedback on the user experience at any point during the production. The larger percentage of what the user experience you get in a fast iterative loop the better. It’s better for the user to play a tiny game with a flawless emotionally satisfying user experience than a bigger game with a few uncomfortable moments. Note here that proper pacing is not to equal “uncomfortable” because the player will need both peaks and throughs on the emotional side to enjoy playing.

Exceptions

There are some exceptions when we look at the established game industry. Mostly they are rooted in incredibly huge budgets. Someone is spending so much money on the business that you can move the infrastructure category one notch up to the week level and just pour calendar time and man hours on making slow iterations instead. This also tends to interact with established development pipelines such as game engines for specific types of interactions. This approach is however on its last legs or already dead but it made some good stuff the last decade.

Another type of exception is the undiscovered market. You usually don’t predict these, but it happens that a new market is discovered by a product developed with a random approach towards creating value. Usually the resulting product is soon dethroned or bought by a big budget competitor. Looking at the music industry we see these random productions rather often but for each successful one we see thousands and maybe millions of failures. Reliable and consistently successful musicians iterate more or less consciously towards a safe result including all relevant disciplines in the process.

A lot of products also have no ambitions of providing a valuable experience. Instead they provide something else of value which may be relevant information or a service with pragmatic and explicit solutions to specific user needs, however games are only partially explicit and rarely pragmatic experiences.

phew, thats a long post...

Sunday, February 22, 2009

Limits of art?

What message is beyond art?

This question is interesting on a general level. I would not directly label myself as an artist, maybe a musician or at least having had an income from writing, recording and engineering music. Everyone who is involved in making music has at least one leg in the artistic aspect of the art form. Even the guy who connects microphones to the recording technology is developing artistic skills. Once you leave the making of music and go to the business of selling music some people quit thinking they are artists, but really they are also involved with delivering the message to an audience, which is of some relevance to the experience of listening to the music.

I would believe the same can be said about movies, books, comics, oral tradition and everything else, and… games.

I can imagine quite well how to use music to convey almost any type of message. The exact meaning will be relatively irrelevant but the topic is up for grabs. The market for music would probably not be interested in paying for an opera about riding the bus, unless it is made by someone who is generally interesting for some other reason than the particular piece of work in question.

The same can be said for games. You can make a game which conveys a message about being a tree, it is not likely that the game will accurately make the player feel like a tree but I am sure a player can be made to identify with a tree. Raph Koster says he really wants games to be able to convey the feeling of being a tree, I don’t see that as very doable. But I do see a game where you pretend to feel like a tree, or maybe get to care about what the feelings you might have as a tree.

Is there a limit to the artist?

Does it require a Mozart to make classical music, or a young male to make a first person shooter? This really becomes more of an interesting topic when you aim at some specific resonance among the audience. I don’t see this as an existing restriction unless you try to impose severe limitations on the details of the production techniques involved.

Forcing Mozart to make a death metal song would probably not be a very good way to use his talent towards meeting a demand among a certain audience. However I am quite sure that Mozart would be able to entice this audience using more of his familiar tools if he put his mind to it. Well, back in the days. The direct problem with the game industry is that most have imposed severe limitations on their production techniques.

In most cases where you aim to remove these limitations you are quite likely to also remove every other chance of success you had. Understanding the abstract principles of making art is limited to relatively few people. This is also not an easily measured skill, its harder to use a theoretical measurement to measure a game artist than it is to use a theoretical test to measure the skills of a musician. Maybe someday this will change, but games will require a heavier effort than what it took to bring music to a level of theoretical measurement of accomplishment. Lucky us the productivity of the world has increased a bit the last 500 years or so, maybe I will see this development happen.

Productivity as information network

There are some great descriptions of how to achieve productivity around the web. A culled list of things which the more enlightened models seem to agree on looks like this:

  1. Measure productivity in market value change, often derived from user value.
  2. Maintain a special interest in anything you did which has negative market value so you can remove it.
  3. Avoid anything which reduces your efficiency towards creating value in the future.

This list can be described with other words:

  1. Test the production output before attaching it to the product.
  2. Handle all kinds of defects consciously, from bugs to bad ideas and everything in between. Lean says; stop the line quality.
  3. Never sacrifice product integrity to increase productivity.

To achieve positive productivity and develop market value there are several techniques in the production toolbox which probably are more or less familiar. There are lots of bad or outdated techniques which have been tested and found to be bad such as working over time, measuring productivity in code or features and developing towards a rigid specification. These bad ideas are not that interesting, but it happens that even a modern team fall in their traps.

The interesting things happen on the good idea side.

  • Team size limits

Team size around 7 members. If this is because our brains are good at chunking the function of each team member, because biological networks get saturated with communication if nodes recieve information from more than 7 sources, if it is for some other reason such as creating a temporary family or that this number is about where you can find all relevant disciplines for creating user value I don’t know. The good thing is that it (the reasons) does not really matter.

  • Responsibility distribution

The team, not a boss, determines how to create value within given constraints. Scrum does this partially by defining goals which the team convert into tasks aimed at realizing the value of a time box. Lean appears to approach this through something I recall as “on demand production” via pull scheduling the development when the market demands it.

  • Understanding of User Needs

The whole team understands what the product aims to be and how it aims to meet a demand. This often shows up as a transparent product vision and the methods used for testing user value where the whole team is involved with understanding the needs and problems of real users.

The whole business as a biological network

I will now make a very poorly grounded statement:
- The whole business is a biological network with nodes made out of humans.

This network exchange information about what needs to be done to satisfy a market with the goal to make a profit in money or sometimes a less direct unit such as “cred” or brand awareness.

Biological networks are relatively well documented on a scientific level. I am not well informed on the subject but there are some properties of biological networks which even I understand and which may be interesting when optimizing information flow towards meeting market value.

  • Information degrades every time it passes a node.

The network specializes towards dealing with certain types of information. Common specializations are to improve short range communication at the cost of gimping long range communication. We cannot, for example, well understand the emotional stated a source node which is at some distance and emotions carry a lot of information.

  • The cost of relaying information across the network affects the amount of information relayed.

If I understand this correctly we humans have learned that communicating information across several nodes is close to impossible. We end up either limiting the message to something insignificantly small and useless or we end up saturating the network with protocols which becomes needed for the information to survive its journey through the network. Btw, such measures does not work very often. When implemented they provide a structure for social mobility and people create links when communication is needed.

  • Node failure is random

A node which gets swarmed with information will fail to operate properly. This causes some hesitation towards accepting information among hub nodes. The practical effect is the same as above, the network limit itself to avoid non-random node failure.

It looks like the good ideas of productivity are natural adaptations towards optimizing the biological network.

  • The product vision is integrated with the team.
  • Defects are seen by the whole team.
  • The actual user value is measured directly by every team member.
  • The decisions on how to react on feedback are determined by the team.
Relevant information for the team is at most 1 node distant.
  • Constraints are negotiated between the team and the client.
  • End users deliver feedback directly to the team.

The interesting part here is that I don’t see much other organizational structures having taken on this approach towards optimization. They probably have a slower darwinistic evolution cycle, while software development productions often mutate several times per year. Lots of large organizations appear to try strong arming their biological networks to work as digital networks and actually go ahead with implementing communication protocol rather than reorganize the network to fit naturally with our human senses. (Hello email rules and conventions.)

The infrastructure problem

If your user value is heavily dependent on large infrastructure, such as a nuclear plant and a power grid I would not guess if this type of optimization scales up. It would appear reasonable to think that you can scale the production of such a large system efficiently by optimizing the information network to fit the properties of the biological network which build these kinds of things. You will probably get a few layers of abstraction between the development team and the actual user value, defects and future velocity.

This little post should have had some nice images with it. Maybe I'll update it someday if it still makes sence in the future.