Monthly Archives: March 2016

Ethical In-Game Purchases

Throughout the history of computer gaming, people have tried many different business models.

Early on, models included rental and sales of coin-operated machines, shareware, mail-order sales, sales through distributors, and doubtless others that I’m forgetting.

Monthly subscriptions were a more recent innovation, for games such as World of Warcraft, in an effort to find a more consistent revenue stream.

More recently, ‘Downloadable Content’ or ‘DLC’, and ‘in-app purchases’ have become de rigeur.

At their heart, they seem to be trying to solve the same problem as monthly subscription fees, but in a more explicit and a-la-carte fashion.

My recollection is that DLC was first, being a model very similar to the old shareware and multi-episode games. You would try the first one for free, or perhaps pay for it (depending on whether it was shareware), then that would entice you to purchase the next episode, and the next.

You knew pretty much what you were getting, the developers got a more consistent revenue, everyone was happy[1].

DLC then started branching out into partially or mostly cosmetic items, like the Oblvion Horse Armour

This still seems reasonable to me. You were playing a single player game, you wanted more features, the developers gave them to you for more money.

Then the ‘Free to Play’ games started becoming more and more popular. They would start out being free to play, but you would then need to play to continue after a certain point. Almost exactly the same as shareware, no problem. You purchased access after you had tried out the game. Totally reasonable, still very ethical.

But then the ‘Freemium’ games started coming out, the games that which were ostensibly free to play, but you could only play so many turns before you had to wait for your energy or whatever to recharge. However, you could play ‘just one more turn’ if you were to pay a little more money. This has gone from ‘money for content’ to ‘searching out and exploiting addiction‘.

In a somewhat orthogonally unethical category are games which allow you to pay to achieve an unfair advantage over other players in a multiplayer game. One of the games I currently play is an online turn-based strategy game, where you can pay money (about $15CAD) to get unlimited turn undos. This allows you to not pay for scouting units, and know the disposition of all of your enemy’s units, mostly obviating the ‘fog-of-war’ game mechanic. I’m sure it’s also very profitable.

In summary,

Ethical:
– Pay for more content/features
– Pay a subscription fee to keep playing on company-run servers[2]

Not so ethical:
– Pay to take more turns in the game with no ability to unlock as many turns as you want for a reasonable sum of money
– Pay to achieve an unfair advantage over other players

[1]Perhaps not game developers, but that’s a different story.

[2]We haven’t talked about games which stop working when the game company goes under and the server goes down…

A Long Tail of Whales: Half of Mobile Games Money Comes From 0.15 Percent of Players

Why do I Write?

Earlier today, after showing him my ‘Beenary‘ post from yesterday, M asked me: “How did you get the motivation to write every day?”

I ended up writing a lot on the topic (apparently I have feelings here), and I wanted to share it with you. (I’ve also said a few things on this topic in a previous post.)[1]

There are a few ways to interpret this question:

1) What started you writing every day?
– I was on vacation for the holidays, and had a few days to just sit on the couch and write, to get me started. Last year, I did some Project Euler problems, this year I decided to write. I ended up making some posts, and a bunch of extra drafts, which I mine when I’m looking for inspiration.

2) Why do you keep writing every day?
– I want to be able to look back and see things I’ve done, both for the feeling of satisfaction, and so I don’t forget things.
– It feels *really* good to finally be releasing (in the software sense) some of the thoughts and ideas that have been kicking around in my head for so many years.
– I know that I now feel like I have something to tell the world…I’m not sure where that changed. I know that when I was writing on LiveJournal, that was not the case, and that’s a lot of what stopped me.
– At the same time, I’m doing this for me more than for others. There was a time in February when my readership dropped by more than half for a week, but I found that it didn’t really change my motivation to write (turns out deleting a post manually (I had mistakenly hit ‘publish’ rather than ‘save draft’) on fb turns off autoposting).
– At some point I would like to write a novel (the category ‘Rollick’ is the closest I’ve come so far), and this is a convenient way to break it down into chunks and get ‘er done.

3) How do you keep writing every day?
– I’ve made it a non-negotiable. I’m allowed to get a day or two ahead, but I’m not allowed to fall behind. It helps that I usually finish them in the late evening for the following day, so I can trade a bit of sleep for writing the post that day.
– I currently have 127 drafts on the go, in addition to hundreds of emails to myself and a bazillion Apple Notes to myself. If that runs out, I have 19 years of journals and five figures of photos to mine for ideas.
– But don’t let that daunt you. After doing this for a bit, I find that I can take some random words and spin a story in about an hour that fills a few hundred words, sometimes more. I often start with puns, or two words which sound the same but are not really related. ‘Bracer, Embrasure’ started this way, I envisioned a hallway with display cases, a thief creeping down the hall, then I fit it into the existing ‘Rollick’ universe.

One thing I’m finding is that I would like to do more more in depth posts, but they are much more difficult to do on a work-during-the-week writing daily schedule. I usually have to give up an hour or more of sleep to get the focus and time required to get one of them done. Not sure how to solve this, other than doing more ‘quicker’ posts and giving myself more time for the more in-depth ones.

Really all of the above is a lot of words to say that I’m doing this because I enjoy doing it, and more fundamentally, I enjoy the act of creation.

[1]For those of you keeping score at home, this will be post 157, daily post #77, meaning I had 80 posts during the previous ~4.5 years. I also have 128 drafts, and 2 of my drafts went to the trash. 4800 emails, and 480 emails in my project folders. I’m releasing faster than I ever have, and the backlog is still piling up. Turns out prioritization is important in everything. (Compare with 5 Jan, where I had just finished my 10th daily post, I had 93 drafts, 0 Trash, 3600 in my inbox, and 400 in my project folder.)

Beenary

It was never really taken seriously. It was most often expressed as a joke:

Q: What type of logic do hive dwellers use?

A: Beenary logic!

And this was true, to an extent. Bees did in fact use beenary logic. But like their honeycombs, it was a hexary, or six-valued logic system. As part of the ‘hive mind[1]’, they would dance in one of six directions for each hat[2] of information conveyed.

Most bee historians had indeed converged on the conclusion that bees were the true inventors of hexary logic, and were the first to answer yes or no questions in one of six ways.

So it was for this reason that ‘beenary trees’ had six children for each node, that a ‘beenary search’ would involve a bee making a ‘bee line’ out from a central hex, and ‘beenary star systems’ were much more complex.

Also, in their preferred computer language, the conditional operator was ‘Bees?’.

cah-bees

[1]Scuttlebutt has it that the bees always hated the term ‘hive mind’, both because “Yeah, we live in a hive, and we have minds. What of it?”, and because it was mistakenly applied to other colony forming insects.

[2]Binary uses ‘bits’ of information, the natural log uses ‘nats’ of information. Ergo…

Nice and Egregious: Shifted Meanings

Recently C pointed me to a blog post about the etymology of the word ‘Egregious’. This is especially relevant to me, as you may guess, because of the title I chose for this blog: ‘Sometimes Egregious, Always Gregarious’.

At the time I chose the title, I thought that ‘egregious’ and ‘gregarious’ were almost anagrams of each other, and were only one letter apart. Hence the ‘one letter can make a word of difference'[1]. It turns out that you need to replace the ‘e’ in ‘egregious’ with the ‘ar’ in ‘gregarious’, but I think it’s still apropos and funny.

Anyways, etymology. I also chose the words ‘egregious’ and ‘gregarious’ because I feel they describe me. ‘Egregious’ because I’m often pushing the boundaries[2], or going the ‘third mile'[3]. ‘Gregarious’ because I like talking to people, saying random things when I walk up to strangers. (Come to think of it, ‘Garrulous’ might be better in some situations, but it doesn’t anagram quite as well. Also, it implies a talking requirement that I don’t always fulfill.)

So, now you know more than you thought you needed to about how this blog came to have its title. I hope you’re happy[4].

[1]The phrase ‘One letter can make a word of difference’ came from P, from his rotating .sig file during undergrad. It was routinely a source of wonder for me.

[2]’Pushing the boundaries’ was the motto for my undergrad program, Engineering Science. I enjoy doing this in many ways, the most socially acceptable probably being attempting to solve problems with stupid and outlandish suggestions.

[3]My grandfather was part of the 3T5 class, which decided to give back to the community by instituting a ‘Second Mile’ award. The ‘First Mile’ is the things you normally do, working at work and the things you do at home. The ‘Second Mile’ is ‘going the extra mile’ in service to the community. Our class decided to have an ad hoc ‘Third Mile’ award, which is awarded when ‘You’ve gone too far’.

[4]Really, I do. 😀

Silos and Agile Project/Product Management

Earlier this week, I was talking with a friend of mine who had been recently promoted from Scrum Master/Product Owner[1] to being a project/product manager[2].

The issue they were experiencing was that they had a number of teams (think 10+), each of which was producing a good product, but the product as a whole was terrible. Also, the last time they tried to assemble a team to deal with this, it foundered because of intense opposition and inertia.

So, how do you deal with this, especially as a product manager in charge of the whole project, with no direct reports[3]?

We ended up almost working backwards to find a solution. When they were on a team, their sideways management[4] style was to learn how each of the people tick, and to help fit them with doing the work that was best for them.

My first idea was to have a working group with a member of each of the teams, where they would work together to make all the parts work better as a whole.

To me, this felt like it was iffy, and could easily be torpedoed by a small number of people obstructing it, or even not being engaged.

So, we came up with something simpler. In any project of this size, there must be some more obvious pain points, and some people who are more interested in collaborating to solve them. So, you just need to get a few people in a room together. Maybe only two. You find a few quick wins where they can quickly show the benefits of working together. Maybe the things they’re working on are even useful to their own teams.

To me, this is really using the Agile principles the way they’re supposed to be used. You find the most obvious problem, find a small number of people who are most interested in solving it, get some quick wins, and then spiral out from there.

We’ll see how well this ‘Agile from Below’ worked. Here’s hoping.

[1]This is how they described it, but didn’t go into detail, and I might have misheard it. If true, I’m not sure how this would work in practice, perhaps as a counterweight to supervisory management?

[2]They described it as one or both of these, and the role described above could be defined (as far as I know) as either. Thinking about it some more, it feels more like a product management role, which is how I decided to write it above.

[3]That you can direct. Ha!

[4]I use ‘sideways management’ to mean things positions like ‘Scrum master’, where your job is to remove blocks from people who don’t report to you.

Four Colours

Today, I wanted to share with you an ‘organizing things to do’ method that Y showed me a long time ago.

This method is from a podcast by a talented individual known as Chris Westra[1].

I also love ASCII 4-quadrant diagrams, so we’ll start with one[2]:

  Spend 80%       Spend 20%
  of your time    of your time
  on this         on this
  column          column

  DEEDS           TASKS
*---------------*-----------------*
| Red:          | Black:          |
| Things which  | Required, but   | 
| Move your     | Not Important   |  TODAY
| Project       | in and of       | 
| Forward       | themselves      |
| in a Big Way  |                 |
*---------------*-----------------*
| Green:        | Blue:           |
| Things to     | Maybe important |  TOMORROW
| Automate or   | in the Future,  |
| Delegate      | but Not Now     |
*---------------*-----------------*

The upper left corner (Red) is ‘Things which move your project forward in a ‘Big Way’. This is the writing that important post, writing that module[3], calling that important new client, building that thing. Basically, anything that is a deed, not a task. Done once, will move your project forward.

The upper right corner (Black) is ‘Things which are required, but not important in and of themselves’. Chris uses the example of ‘changing the printer ink’, to mean anything that needs to be done, but you really shouldn’t take more time than you need to. Anything which is a task, something that you do repeatedly is in this category. You should be constantly looking for ways to automate or delegate things in this category (we’ll cover that later). This category contains tasks which may feel somewhat satisfying to perform in the moment, but ultimately are meaningless in the grand scheme. The tasks here tend to be easier and require less decision making than red tasks, so it’s easy to get distracted here.

The lower right corner (Blue) is ‘Things which are maybe important in the future, but not now’. All of your undirected R&D is in this category, Chris mentions reading trade publications, lots of random browsing can be in this category.

The lower left corner (Green) is (for me) where this method really shines. In this category is ‘Things which you can automate or delegate’. Something where you spend an hour today which saves you a minute a day for the rest of your life[4]. Chris says (and I agree) that it’s important to do one or two of these every day. You will thank yourself later.

In my first phase after discovering this way of thinking, I rotated from Black/Blue to Blue/Green. Through considerable work, and some life coaching, I feel like I’m finally making the rotation from Blue/Green to Green/Red. This takes considerable self-discipline, and can feel emotionally difficult as you give up spending time on things which give short-term accomplishment feelings, but don’t really help you towards your goals.

Comments? Put them below!

Note: I added the column and row labels above. They’re not quite accurate. If you have better suggestions, comment!

[1]I can’t seem to find him online any more. If I do, or if someone points me to him, I’ll put it in the comments below. EDIT: I added http://christopherwestra.com above. He also has a site at http://icreatereality.com which is…a little…on the strange side of new age. But the mental model above is still very useful.

[2]Some people have said that it reminds them of ‘The 7 Habits of Highly Effective People

[3]This would be true for any of the 3+ meanings of ‘module’.

[4]A handy chart from XKCD on when this is worth it. This may understate how worth it is, if it also reduces your ‘open loops‘.

Agile: Limitations of Scrum

Based on some recent experiences and conversations, I wanted to explore a couple limitations of Scrum that have come up recently.

1) Limitations of the Standup

Long-time readers will know that I’m a strong advocate of the 5-minute daily standup.

Where 5-minute daily standups are weak is in any discussion of the larger picture. If you try to have a reasonable discussion about the larger picture during a 5-minute standup, this will take far more time, and most of your group will have tuned out by the time you’re done. Conversely, under normal operation, your 5-minute daily standup is great at firefighting issues with currently open tickets, and seeing what is not being worked on, but unless you’re paying active attention, it’s easy to miss someone being semi-blocked or not speaking up to say that they’re blocked. This can happen often due to pride or embarrassment, often with inexperienced or new team members.

Proper use of one-on-ones is probably the best way to deal with this. But if your team member is shy and embarrassed about issues they’re having (especially if they feel technically inadequate), you may need to do some serious digging and active listening to ferret this out. This will require, but also help gain trust of your team member.

Another method is to have regular demos, perhaps daily or weekly, as part of your cadence, which will very quickly show who is having issues (or who does not know how to demo).

2) Limitations of having many small tasks

Organiation and prioritization can be difficult and time-consuming. It can often be easier to delegate all of it to the Product Owner (after all, they have final say on prioritization). However, they may not be the expert on which items should be split into smaller items, or they may try to determine too much of the ‘how’, instead of focusing on the ‘what’ and especially the ‘why’.

What this can cause is a disconnection between the ‘why’ and all of the rest of the team. The work can start to feel like an endless stream of little unimportant tasks, rather than a cohesive whole.

My tactic to deal with this would be to have a planning and prioritization session with everyone attending, so the entire team can be and feel involved, and so the entire team understands the why of each of the items (and can influence which ones will be done and not done!)

I was talking to a manager from another company earlier this week, and they had (I thought) a good idea for dealing with this type of issue. I would typify it as being somewhat orthogonal to Scrum, perhaps somewhat orthogonal to Agile. The concept is to give each member of the team a project of their own, where they are completely in charge. This way, they have complete ownership, and ostensibly will be much more engaged. I like this idea, and it helps a lot with the next point:

3) Scrum works well when team members are well-fungible

A lot of Agile and Scrum especially assumes that team members are reasonably fungible, sometimes almost to ‘Mythical Man-Month’ levels. If you have team members who have vastly different specializations (like Valve’s ‘T-shaped individuals'[1]), your prioritization may be greatly limited by their inability to map to your team members’ strengths.

The tactic mentioned above, where you give each team member a small (or large!) project of their own can help a lot here, but depending on how much of a disconnect you have between the composition of your team and what your organization requires, you may need to hire some people.

[1]If you have not read Valve’s Employee Handbook, go and read it now. I’m talking above about their description of employees who are ‘T-shaped’, which means that they have a broad set of skills, but are exceptionally deep in one area.

Peep-to-Peep Computing

[chirrp][chirrp][cheeerp](whirring noises)[chrrreeep][cheeerp]

It started out as a humorous RFC, something that you would share with your friends and have a quick chuckle over.

[chbeep][chrsssssh][weeooweeoo][bloooop?]

But then the solar flares started. They only caused small problems at first, a little more static on your VOIP call, your conference calls became a little more annoying.

[maaa][maaaa]

Soon, it was all they could do to keep the electrical infrastructure in place. It would have to all be refit, and that would take years, if not decades. A different solution had to be found. Luckily, someone had managed to cross pigeons with mockingbirds.

[booooeyp][booooeyp]

You were limited to the speed of sound, but with creative sampling and filtering, you could train the ‘Mimidae Columbida‘ (or MimiCos, as they were called) to only listen for specific types of sound, and to re-chirp them as soon as they heard them.

[beeyooop][chiiiip?]

Many things became simpler. When you could only send data at 300 baud, IRC and MUDs flourished again. Twitter shortened its character limit to 100, then 50 characters. Emoji encodings became even more compact. People became adept at ‘hearing’ the messages before they were decoded, some were even forgoing the decoding stage, and speaking only ‘beakspeak’.

[yeeebeep!][gshhhhh][yeeeniiip]

Oh, that’s an urgent message coming through! Gotta run! [yeeeneepneep!]

#internetofbirds

From S

Onomatopoeia and Silly Noises

So, this one time, many years ago, S and I are sitting in the hospital. She’s mostly unconscious on pain meds, I’ve been sitting there beside her for the last few hours, amusing myself reading a book[1] or whatnot, and the nurse comes in, to kindly bring her her supper.

The nurse brings over the mobile table-tray thing, and rotates it into place.

“Ruuuuuik.”

The nurse moves it back.

“Iuuuuur.”

“It’s him.” S says, from her mostly dazed state. “He’s doing it.”

I had apparently been semi-consciously making sound effects. “Making the world come alive” as S puts it.

[1]Probably my phone.

Fruit Pancakes

When I was growing up, we had a weekend tradition, making fruit pancakes. It was the thing I remember my dad making most often in the kitchen[1].

I also remember helping my mom with baking and other various food prep, but pancakes were the first thing that I learned to make myself, with no recipe.

The recipe is very forgiving, and probably helped me a lot with my nalysnyky.

Fruit Pancakes, 1 batch:

Ingredients:
– 1 overfull cup of Pancake mix (we always used Aunt Jemima buttermilk pancake mix, you can only get it ‘complete’ now, which doesn’t require milk or eggs, but we add them anyway…vegans or those lactose intolerant should see if they can find the non-complete version, or make this part from scratch)
– 2 large eggs (vegans can omit this, but I don’t know how it will work)
– 1 cup milk (vegans or those lactose intolerant can use water here)
– Butter, 1/2 to 1 stick
– Fruit to taste (2 bananas, 2 handfuls of cherries or blueberries, 1/2 can of peaches, some people like apples in pancakes, but I don’t…apples I would peel before use)
– Maple syrup (optional)

Kitchen tools:
– Medium to large mixing bowl
– Stirring spoon
– Ladle (optional)
– Butter knife
– Measuring cup or mug (a normal sized mug is fine…all you need is something that will be the same size each time)
– Skillet

Instructions:
– Turn on your skillet to 375 degrees F. You may need to experiment to figure this out. It should be the temperature where butter will crackle and turn brown (eventually), but not burn
– Crack the eggs into the mixing bowl. Remove any shell that accidentally got in.
– Add the fruit. Cut bananas into 6, then slice, cut peach slices in 3
– Add 1 heaping cup of pancake mix
– Add about half of the cup of milk
– Stir. You’re looking for the lumps to disappear, and to see the popping bubbles from the baking soda and baking powder in the pancake mix
– Stir while adding more of the milk. You will probably end up putting bout 3/4 of the cup in
– Stir until there are no more lumps, and the mix is the correct consistency (the easiest way to test this is by buttering the skillet and putting a pancake on the skillet. It should be about 0.7-1.0cm thick. This part will likely be trial and error.)
– Butter up your skillet! Especially with the first pancakes of a batch, you want to make sure there’s lots of butter on the skillet. I usually cut off a piece with the butter knife, stab[2] the piece, and swab it around the skillet. You want to make sure the pancakes won’t stick, and incidentally also be filled with buttery flavour goodness.
– Pour one half ladle’s worth or three tablespoons’ worth of pancake batter for each pancake you want to make. A large square skillet will hold four pancakes, most frying pans can only hold three or fewer.[3]
– Watch the underside of the pancackes. This is not the easiest thing to do. You want to flip them when they look cooked on the bottom. You can also tell from the top when the top starts to dry out and become pockmarked.
– Flip the pancakes
– Watch them, don’t let them burn
– When the pancakes are cooked on both sides, spatula them onto a serving plate and start the next batch. You will want to at least partially re-butter the skillet
– Serve with syrup or butter, to taste, or eat them plain!

Serves 2-3 per batch. Can be easily multiplied by multiplying all ingredients above. Note that the milk should still be added only until the mix has the correct consistency, or you will get something close to crepes (very thin pancakes) with strange large fruit-shaped lumps.

Enjoy!

[1]I also remember him making toasted meat sandwiches and jam, but I was never really involved in that.

[2]It’s a butter knife.

[3]Advanced: The little spatters of batter are called ‘crunchies and munchies’, and you can make sure to add a bit of extra butter and put little bits of batter in it