Video of My Talk On The Importance of Purpose, Mission, and Vision

On May 29th, I gave a lunch and learn presentation at StartupCity Des Moines titled Playing the Long Game: The Vital Importance of Purpose, Mission, and Vision to Your Business.

It was a post mortem of sorts. I’m running this business part-time as I have a day job again, but I ran GBGames as a full-time independent game developer from 2010 to 2012…poorly. There were some major lessons I learned about running a business, and the idea was that by sharing the cautionary tale of GBGames, other business owners could benefit from my experience.

If you couldn’t make it to my presentation, don’t worry! There’s a recording uploaded at

I also uploaded the slides with notes in a few formats:

The presentation itself is about 35 minutes long, and then there was some quality question-and-answer time with the audience. The energy I got talking about the impact I wanted to have in the world really brings home the point I was making about the importance and benefits of having a clear purpose, mission, and vision.

It was a great experience, and my talk was well-received. I hope you get some value out of it.

Reminder: Come to My Lunch and Learn Presentation on May 29th

If you can make it, please come to my Lunch and Learn post mortem about my time running GBGames full-time on Thursday. I hear it will be a good one.

Playing the Long Game: The Vital Importance of Purpose, Mission, and Vision to Your Business

Gianfranco Berardi will share the major lessons that can be drawn from his experience running an independent game development business full-time.

He’ll explain what happened between the time he delivered his two weeks’ notice to his day job in 2010 until 2012, when a lack of funds forced him once again back to part-time business owner status. See how a lack of strategic planning resulted in a business with no focus and a business owner feeling out of his depth. More importantly, learn how doing the hard work of identifying your Why, How, and What pays off both immediately and in the long-term.

May 29th, 2014 at noon

StartupCity Des Moines
317 6th Ave, Suite 500, Des Moines IA, 50309
p: 515-868-0473

It’s a free event, and I’d love to see you there. Register for it at

A Recipe for Meaningful Gamification

Gamification has been quite the buzz word for the last few years, although I haven’t seen too much in the headlines recently.

Sebastian Deterding defined gamification as introducing game design elements in non-game contexts in the presentation below:

Deterding has since been upset at how gamification is thought to be nothing more than using incentives to reward people (press button, receive points/badge/achievement) for doing what the designers want them to do, and he argues that good game design and a larger purpose behind it all is still needed to make it successful.

Gamification isn’t new, and people have been talking about it for decades under different terms. Deterding has since preferred “Gameful Design” as a term instead.

I recently learned about Scott Nicholson, associate professor at the School of Information Studies at Syracuse University. He researches learning through games, and he’s the director of Because Play Matters Game Lab, which is meant to create transformative games and play for informal learning environments.

Nicholson is interested in Meaningful Gamification, which he defines as “using game design elements to help users find meaning in non-game contexts.”

So, you are trying to establish long-term change and making such effort intrinsic rather than relying on rewards to keep it going. There’s a lot of research on compensation in the workplace. The old carrot-and-stick approach seems logical. If you want people to produce more, you reward them with more pay. If you want to stop some behavior, you punish. If you take away those rewards and punishments, people will revert to behavior you don’t necessarily want.

But for some time there has been the idea that extrinsic motivation actually reduces productivity. A person told that he/she will be rewarded for doing an activity will be more likely to stop doing the activity when the reward stops than a person who was not presented with an award.

Nicholson created the following recipe to help create meaningful gamification:

  • Reflection – assisting participants in finding other interests and past experiences that can deepen engagement and learning
  • Exposition – creating stories for participants that are integrated with the real-world setting and
    allowing them to create their own
  • Choice – developing systems that put the power in the hands of the participants
  • Information – using game design and game display concepts to allow participants to learn more about the real-world context
  • Play – facilitating the freedom to explore and fail within boundaries
  • Engagement – encouraging participants to discover and learn from others interested in the real-world setting

I think choice is interesting, because a lot of gamification interest comes from the idea that if you create a game that everyone in your organization must play, then it will drive the behavior the organization wants, when it’s not actually the case.

More information about this recipe is at the Because Play Matters Game Lab website.

Learn Computer Science, Not Coding

When I was in college, I was in the computer science program. Some of the classes were about learning programming.

I enjoyed programming, but I didn’t always enjoy the classes. Part of the reason was that we were learning how to program in Visual C++ 6.0.

For anyone who remembers it, 6.0 was…OK. That is, if you wanted to code and compile and run a project, it worked more or less as expected.

But it had a reputation for not supporting the C++ Standard very well. As I didn’t know the Standard very well myself, I had no idea, but in hindsight, it explained why my professors almost universally ran into difficulties teaching certain aspects of it.

Eventually the school’s official language switched to Java. I recall hearing it was because a professor started talking about linkers and object code and got a bunch of stares from confused students who were used to doing nothing more than clicking the “Build” button in a UI.

Similarly, my classes that were ostensibly about teaching database concepts almost always were really classes about using Microsoft Access. Even before I started using GNU/Linux as my main OS and cared about cross-platform compatibility, it seemed wrong to me that the tool we were supposed to use to practice what we learned was so proprietary.

I found I preferred classes in which I learned concepts and theories that could be applied in many contexts. I always liked general principles rather than specific solutions.

Now, when I neared graduation and was worried about finding a job, suddenly my disinterest in specific tools such as Microsoft Access turned out to be a liability, but I was looking for programming jobs in particular, and most of them seemed to want people who knew not only how to work with databases but with specific types of databases.

On the other hand, if I cared, learning Access, or Oracle, or MySQL were all within my grasp if I applied myself. My issue wasn’t skill but experience. I understood how databases worked, and I could apply my knowledge to most of them. And in fact, my knowledge of how they worked could be applied outside of formal databases. When I was creating a component-based entity system for my game objects, I was basically creating my own database system. It’s been said that video games are just databases with pretty front-ends.

So I preferred being able to think generally about solutions rather than learn specific tools. I still hate picking up a game development book and discovering that it’s actually a Windows-specific game development book, or a Game Maker-specific development book, or a Game Salad-specific development book, or a Unity-specific development book.

A few days ago, I enjoyed reading Don’t Learn to Code, Learn to Think. The author is railing against the confusion that computer science is nothing more than programming, against learning a tool as an ends in itself. Computer science is a way of thinking, and programming is how you apply that thinking. The former is more general and has broad applications, the latter…well, creates specific applications. B-)

Not everyone needs to learn how to write code in the same way that not everyone needs to learn how to fly a plane, but knowing logic and information theory helps you in life the same way that knowing physics and math would.

If you want to learn something that also has broad applications, you should check out the online course Model Thinking led by Scott E. Page at the University of Michigan.

In these lectures, I describe some of the reasons why a person would want to take a modeling course. These reasons fall into four broad categories:

  • To be an intelligent citizen of the world
  • To be a clearer thinker
  • To understand and use data
  • To better decide, strategize, and design

Sounds good to me.

Being able to improve my ability to think about problems has wide-ranging benefits. For one, I have more tools. I don’t learn to use a hammer and treat everything as a nail. I learn the screwdriver, the ax, the jigsaw, and more, and I apply the right tool to the problem, and I can even combine tools in ways that make sense.

Similarly, if I learn programming but don’t learn the concepts, I’ve basically learned how to use a hammer. While you could hammer a screw into a board, you can’t use a hammer to remove the screw, or to cut the board. When problems arise, such as compiler or linker issues, or logic bugs, I have almost no frame of reference for how to solve them if I haven’t learned about compilers or De Morgan’s Law.

See Me Present at StartupCity Des Moines on May 29th

StartupCity Des Moines

NOTE: If you couldn’t make it, the presentation is available online.

Des Moines, Iowa has a coworking community called StartupCity Des Moines. It’s a pretty neat place, and there’s a lot of exciting things going on there. It’s the only entrepreneur hub I know of in the area.

Over a month back, I went to a lunch and learn on entrepreneurship given by one of the founders, Christian Renaud.

About halfway through his talk, he mentioned the idea of sharing your failures with the community. While successes are great to share, giving a post mortem for failed business also helps make the entire community of businesses better for the future.

“I would strongly encourage you, just for the betterment, to not make central Iowa suck for startups over the next 20, 30, 50 years. Till that back in. All the good things you learned, all the bad things you learned. Till them back into the soil, because God knows we need them.”

Since then, I’ve been thinking that I have something to share from my experience running GBGames full-time and failing to get it self-sustaining before running out of money.

I’ll be presenting at the end of the month:

Playing the Long Game: The Vital Importance of Purpose, Mission, and Vision to Your Business

Gianfranco Berardi will share the major lessons that can be drawn from his experience running an independent game development business full-time.

He’ll explain what happened between the time he delivered his two weeks’ notice to his day job in 2010 until 2012, when a lack of funds forced him once again back to part-time business owner status. See how a lack of strategic planning resulted in a business with no focus and a business owner feeling out of his depth. More importantly, learn how doing the hard work of identifying your Why, How, and What pays off both immediately and in the long-term.

May 29th, 2014 at noon

StartupCity Des Moines
317 6th Ave, Suite 500, Des Moines IA, 50309
p: 515-868-0473

It’s a free event, and I’d love to see you there. Register for it at



Extreme Leadership, Incorporated President Steve Farber recently wrote a challenge involving seven words.

He made a reference to his thinking on this topic at the Extreme Leadership Summit a few weeks ago, saying something to the effect that most people are very bad at keeping their word.

We say we’ll do something, deliver something, create something, and when the deadline comes, we say things like “I ran out of time” or “I forgot” or make some other excuse.

I believe that we’ve let ourselves get away with mindless lip flapping for far too long; therefore, let me suggest this: if you could, somehow, hold yourself ridiculously accountable to your own words, if you spoke with a contractual attitude, you could earn a tremendous competitive advantage over 99% of the population. You could earn the rare status of the person whose word truly is their bond. Imagine the cred you’d gain.

He talks about seven words that change everything. Those seven words? “Do What You Say You Will Do,” affectionately known as DWYSYWD.

It sounds simple, but there is a lot packed into such an obvious-sounding sentence. It involves quite a bit of groundwork, actually.

Learn to Say “No”

If you are going to hold yourself to what you promise, you can’t say yes to everything you are asked to do. When you make a commitment to be somewhere for one person, you have effectively said no to being anywhere else with anyone else, right?

It can be hard because many of us don’t want to say no to another person’s request. It feels rude. It can feel selfish.

But you also know that you can’t be in multiple places at the same time. You can’t multitask effectively, according to the science. You can’t squeeze in more hours in a day.

So you only have so much capacity. At some point, you have to say no whether you consciously decide to do so or not.

If you agreed to go shopping with your daughter, for instance, you aren’t going to be spending it on your own game development. You’ve said no to your own goals when you said yes to someone else’s.

Similarly, if you said you were going to meet with your friends at a bar, you have cut off all other options for how to spend your evening.

And depending on your priorities, it may be a fine decision to make.

Which brings us to how you know when to say yes or no to a request.

Figure Out Your Priorities

If your life is a boat, then your priorities act as your North Star. With priorities, you know which direction you will decide to go. If the currents and waves turn you around, you can quickly steer back on track.

Contrast it with a boat with no direction and no destination, and you have the experience of most people. Tossed and turned in the turbulence of life, they just know they don’t want to capsize. Otherwise, so long as they are floating, it doesn’t matter which direction they go.

As I wrote in 2005 in a post on responsibility:

“Go with the flow” is a nice saying, but it is a horrible motto for your life.

Knowing your priorities in life, you gain a lot of clarity. You have a much better chance of identifying opportunities as opposed to distractions.

So how do you know what your priorities are?

Identify Your Goals

Here’s a choice: go to the gym, or watch TV.

If one of your goals involves a healthy body, you know you will choose the first option no matter what you’re feeling at the time. If you have no such goals, then the whim of the moment dictates your actions. If you are tired or unmotivated or don’t have a habit of going to the gym, then you are probably more likely to sit on the couch. Without a clear health goal, there’s no reason to point you out the door!

In the boat analogy above, your goals are your destination. You can’t decide which direction makes sense unless you know where you are going. Similarly, you can’t prioritize unless you know how to measure two options against each other.

If you take on a project, does it get you to your goal or take you away from it? Going to the gym is clearly going to be a better option than watching TV on the couch if your goal is to be healthier. Spending time with your spouse is clearly a better option than working late at your day job if your goal is a loving relationship.

And that clarity is what allows you to decide what to do when faced with multiple options.

Know Your Why

How do you decide what goals matter to you? You need to know your overall purpose. Your Why needs a good answer.

You want a healthy body? You better be able to answer why. When it is 5:00AM and raining out and the blankets are warm, everything will be screaming that your morning exercise routine is too painful and uncomfortable and annoying. Merely wanting a healthy body won’t be enough. Knowing you want a healthy body because you want to be able to play with your active children, on the other hand, drowns out the noise.

Knowing your Why gives your goals meaning beyond themselves. When the going gets tough, people start expressing doubt. Do I really want to run my own business? Do I really want to get married? Do I really want to learn guitar?

But your Why is how you determine the difference between a whim and a conviction. Your business isn’t about you. It’s about the people it will help. So you get up and work. You are getting married because you want to share your life with someone special. You are learning how to play guitar because you want to be able to play on-stage at your local bar’s open mic.

Your Why doesn’t have to be incredibly world-changing. It just has to be identified and clear to you.

The Key Is to Know Yourself

You need to know quite a few things about yourself. You need to know what you are capable of. You need to know what matters. You need to know why you care.

But it’s not easy to figure those things out if you don’t put in the work. As one of my favorite Nietzsche quotes puts it:

The individual has always had to struggle to keep from being overwhelmed by the tribe. If you try it, you will be lonely often, and sometimes frightened. But no price is too high to pay for the privilege of owning yourself.

The cost to know yourself is higher than most people are willing to spend. It’s easier to go with the flow of your family’s expectations, the interests of your friends, and the pressures of society.

But once you know your why, you can choose your own goals, which may or may not match the goals of others.

And once you have your own goals, you can make decisions according to those goals.

And once the decision is made, you have said no to any other options.

It is the hard work of knowing who you are and what is truly important to you that makes it easy to DWYSYWD. The reason is because you’ve already done the work of making decisions for the long term, so the short term decisions almost make themselves. And you’re more likely to keep the commitments you make because they are in alignment with your values, purpose, and goals.

Simple, right?

(Photo: | CC BY 2.0)

The Best Conference I’ve Ever Been To #ELSummit14

Last year, I went to the Extreme Leadership Intensive here in Des Moines, IA. I met Steve Farber, who is not only the author of The Radical Leap and founder of the Extreme Leadership Institute, but he’s also a real down-to-earth guy.

Extreme Leadership can be summed up as “do what you love in the service of people who love what you do.” It’s about the challenge of changing the world, whether that’s the entire world or the world of your customers, company, or co-workers.

It’s about love, which many other leadership books would call vision or passion. You can’t do your best work if your heart isn’t in it. And you won’t be able to generate the enthusiasm from other people who might otherwise be willing to support your endeavor.

And it’s about the fear. If you’re not doing something that scares you, then you’re not living up to your full potential, which means you’re holding back in this one life you have to live. If you’re doing what you love, then it is intensely personal, and it should scare you and everyone else that you’re trying to make a difference. Otherwise, you’re not leading.

Love and fear? It’s the exhilaration you feel in interplay between these opposites that shows you that you’re doing what you should in life. If you let fear get in the way, however, you’ll have a different experience.

Larry Smith talks about it in this TED talk on why you will fail to have a great career:

So, a couple of weekends ago, I went to the Extreme Leadership Summit, which Farber has repeatedly said would be a unique experience. It wouldn’t be a passive conference, with sales pitches and feel-good platitudes that leave you no better off than when you arrived. It would prove to be interactive and challenging, practical and immediate, and full of amazing and approachable people who are walking the talk in their own lives.

Extreme Leadership Summit 2014

And as a result, I think it was the best conference I’ve ever been to. And I’ve been to GDC, which is a spectacle onto itself. I’m still processing everything I learned and experienced a week later.

Day 1: Deepening Your Leadership Foundation

The first speaker was Simon Billsberry, and his presentation was all about answering the question of whether or not being an entrepreneur is the same as being an extreme leader. He said, “Entrepreneurs know who they are” and talked about how he plans to help accelerate the pace of change in we had a discussion afterwards about the nature of entrepreneurship. It was too bad he was sick for the rest of the summit because I was looking forward to hearing more.

Billsberry said the fundamental leadership question is “What can I do, right now, regardless of what others around here are or are not doing, to change my piece of this world/company/organization for the better?”

Chad Coe is a wealth management expert who wrote The Power of Peopletizing: Networking Your Way to an Abundant Life, which was provided for free in the goodie bag at the summit. He spoke quite a bit about how connecting with others and maintaining relationships with them can result in so much capacity to help.

Coe has a big philanthropic streak in him. He organized his work time to ensure he can not only spend time with his family but can also participate in a number of charities, many of which he founded with the idea of “If you want something, create it.”

He gave many inspiring examples of the amount of help he is able to provide due to the way he motivates his relationships. For the three days of the summit, our tables at lunch were our mastermind groups, something else he strongly advocates for, and everyone had a fascinating story to tell about their experience and their struggles, and everyone had actionable advice to give.

Darren Hardy, publisher of SUCCESS magazine and author of The Compound Effect, talked about the power of repeated, consistent actions on achieving your goals. He said that the secret to success is in three words: “hard frickin’ work.” He gave the example of doubling the grains of rice each day for 60 days as evidence for how subtle yet powerful the compound effect is. After 10 days, you’d only have 512 grains, and at 20 you’d have 524,288, but at 30? You’d have 536,870,912.

He then talked about how many of our beneficial activities, such as exercising or investing, don’t pay off immediately. We don’t have immediate consequences for eating dessert for dinner or being lazy on the couch on evening, but over 20 years, daily dessert and laziness results in health issues. Similarly, having a fight with your spouse and going to bed angry once doesn’t immediately result in divorce, but resentment and disappointment builds up over time before it comes to a head.

He gave an example with three otherwise similar people who get the same job. One does what he always did. One eats just 250 calories less a day, walks 250 extra steps a day, reads for 15 minutes and listens to inspiring audio for 30 minutes at the start of his day, etc. The last one eats 250 extra calories a day, walks 250 fewer steps a day, and otherwise does the opposite of the second guy. After only six months, you wouldn’t see a difference between them, which is what frustrates people and makes magic pills and diets and secrets to success so appealing to them. The results aren’t immediate. Drinking water instead of eating chocolate cake basically feels like you’re just missing out on delicious cake.

But after five years? The three have such different experiences from each other. One has read hundreds of books and listened to hundreds of positive and inspiring audio programs and has lost tens of pounds of weight as a result of eating less and exercising more. The other gained weight and has the health issues that come with a sedentary lifestyle, and he has learned a lot less, resulting in less interesting prospects for his life. The compound effects of your small choices sneak up on you to create big results. Another way to put it is that you either pay for your results through discipline or through regret. Missing out on that chocolate cake now sounds like a more freeing and enjoyable life is possible.

Day 2: Amplifying Your Life Experience

The next morning, Pamela Slim, author of Escape from Cubicle Nation, said that your purpose in life is to create a body of work that you are proud of. She had incredible enthusiasm for the stories we each had, since creating a body of work starts with our roots and the identification of our skills and experience. Who we are drives what we’re passionate about, and being true to it is the only way we can really tell our story. And she signed my copy of her recent book, Body of Work. B-)

Pete Luongo, retired CEO of The Berry Company, signed my copy of his book, 10 Truths About Leadership…It’s Not Just About Winning. He talked about how so much of what they realized and developed years ago to turn around the company, and what businesses literature has covered decades prior, has come into vogue recently, such as focusing on the customer. He said to me the day before, “Franco, it’s all common sense.”

Frank DeAngelis didn’t leave a dry eye in the room as he shared his experience as Principal of Columbine High School. It’s now 15 years after the tragedy, and he talked about his efforts since to reach out to all students and to ensure that he can see everyone who was in elementary school on the day of the shooting walk across the stage as a graduate of the high school, which was accomplished a few years ago. He got a standing ovation, and I’m sure his school will miss his passion and enthusiasm for the children and their education when he retires.

Janet Bray Attwood, author of The Passion Test and member of my mastermind group during the summit, has an infectious excitement about her. My favorite quote from her presentation: “When you are faced with a choice, decision, or opportunity, choose in favor of your passions.” Between that thought and the idea of talking about the higher purpose of your work, what you really do, I thought it was the most subtle and challenging mode of operation mentioned. As part of her presentation, she had us administer the Passion Test to a fellow participant, and I found it surprisingly clarifying.

To wrap up the day, Jay Jay French, manager and guitarist of Twisted Sister, shared his life and business lessons as the group persevered for a decade before signing a record deal, which once again demonstrated that everyone has an interesting story to tell. He also participated in my mastermind group for one day, talking about where he wants to grow next since the band is still playing concerts today, decades later.

That night, there was what Farber jokingly referred to as the real reason for the Summit: the Extreme Jam Session and Open Mic. Attendees and speakers were invited to perform and sing. I sang one song, Long Cool Woman by The Hollies, and I got to hear some really talented musicians have a great time on stage.

Day 3: Transforming Your Results at Work

The final day started with the magic of Andrew Bennett. He was a personal assistant of Ross Perot, became a member of The Magic Circle, and is a leadership consultant and coach. Using illusions to wow us, he shared with us that transformation happens in three ways: appearance (revealing the truth), disappearance (concealing a deeper truth), and restoration (replacing something with something of greater value). These three transformations occur through six creative powers: inspiration, words, self-awareness, relationships, authenticity, and mastery. He learned during research for a blog post that the seemingly silly and popular magic word “Abracadabra” is actually Aramaic for “What I speak is what I create,” which was relevant to the power of words to restrict or unleash creativity. He gave each attendee an orange wristband with the word and translation.

Phil Town is the author of Rule #1, a book about a simple investing strategy. I have to admit that I initially got quite interested in his presentation, which explained how mutual funds are a bad deal since you are paying managers who consistently can’t seem to beat the market on returns, which is something I already knew which is why I’m more interested in index funds if I had to choose. He explained that consistently successful investors exist, such as Warren Buffett, and their success is based on simple strategies.

He also talked about the idea that where you invest your money equates to your support for those investments. For example, if you don’t smoke and don’t want your children to smoke, why would you invest in any of most mutual funds since it means you’ll necessarily have money supporting the source of most cigarettes in the market? Makes sense to me, and I know people who won’t invest in index funds because it means investing in weapon manufacturers, for instance.

That said, I found myself feeling a bit strange. Here we were at this amazing conference being told consistently that identifying your love and passion is key, and it seemed most people in the audience were getting the most excited about the idea of relatively easy and consistently high returns in the stock market. Granted, Town’s wealth opens up quite the capacity to give back and live an abundant life, and he talked about investing only in companies that match your values. Still, it felt very much like I was ultimately getting a pitch to subscribe to his service which provides the info to make investment decisions the way he described. Talking to my mastermind group, it seemed I might have been alone in that assessment as everyone else felt the offered intensive course in Atlanta to learn the ins and outs of the strategy was an amazing opportunity. I hope it works out for the people who go. I have plans scheduled for that weekend.

Dr. Tasha Eurich is an organizational psychologist and author of Bankable Leadership: Happy People, Bottom Line Results, and the Power to Deliver Both. Her presentation was about what it takes to create fulfilled teams and exceptional results, that it wasn’t an either-or proposition. When striving for success here, she said you (1) know where you stand, (2) make one change at a time, and (3) be obsessed about relentless, deliberate practice.

We ended the summit with a Q & A speaker panel, and the final good-bye was said with champagne.

Extreme Leadership Summit Speaker Panel

Extreme Conclusions

There were a few themes that kept coming up throughout the summit. One was the idea of being clear on your why, both for yourself and for the people around you.

Another was the idea that your adversity is your advantage, that your past developed muscles, not wounds.

Another was the idea of being conscious and deliberate with your life. Whether it is investing or how you choose to spend time with your family, being fully aware of what you are doing and the consequences is the only moral thing to do.

Most of the speakers also attended the summit. They weren’t just there to talk and leave. I had conversations with quite a few of them, as they were all quite approachable and ready to connect. A few made supportive comments when they learned I wanted to make educational entertainment to encourage creativity, curiosity, and critical thinking.

In fact, quite a few attendees, many who are educators, came up to me and expressed their support, offering advice or asking for more information. The idea of talking about what you really do, that everyone has an interesting story to share, and that you should choose in favor of your passion seemed to pay off immediately.

Steve Farber and the lovely Dianne Kenny were at both the intensive and this summit, and it was good to see them again. Kenny is very clearly a fun and positive person to be around, and she celebrated her birthday with us on the first day. I’m not sure how many people chose water over the delicious cake that was provided.

One thing that struck me was how warm the summit was. When Farber thanked everyone who was involved in making the summit a success, I realized it was very much a family-run business. I met his wife who I had only spoken with on the phone, and she recognized my name and gave me a hug. It seemed many of the people behind the scenes were related in some way. Everyone had an enthusiasm that demonstrated how much they believed in what the organization stands for.

And that’s probably the biggest thing I took away. I thought a lot about what impact I’m having in the world. Based on how I spend my time and where I expend my effort, am I similarly demonstrating how much I believe in what I stand for? Or am I allowing fear and momentum to hold me back, doing a disservice to myself and to the countless people who might be positively impacted by my efforts if I only focused and dedicated more time to it?

And that kind of deep questioning is why I think the Extreme Leadership Summit was the best conference I have ever attended.

Learning Game Software Architecture

Note: I wrote a significant amount of this post in 2011, back when I was actively working on Stop That Hero!, and enough still resonates today that I decided to publish it.

It’s only in the last few years that I’ve started to appreciate the importance of software architecture, and especially as I write the game engine for “Stop That Hero!” Before “STH!”, I haven’t had much experience with writing entire programs from scratch. Most of the code I’ve written professionally fit into an existing framework or architecture, so high level architectural work wasn’t something I had to worry about in my day-to-day work.

Beginner Programmer Woes

When I first learned how to program, I was focused on getting the syntax correct. Programs, even if they were completely original and not copied out of a book or magazine, were simple. More complex programs usually didn’t get finished before I lost interest. Any non-trivial programs that were successfully completed were the epitome of what we in the biz call “spaghetti code,” which means I was lucky to get something working at all. See my Pac-man clone in QBasic as an example of what teaching yourself how to program can result in.

Then I got to college, and I learned C++, and concepts such as recursion and stacks and objects. I was still using QBasic as a hobby, and my new code was definitely cleaner, but I struggled with putting everything together in a cohesive whole. And programming on a modern OS required a message pump, which meant I had to change the way I did things drastically. You couldn’t add empty loops if you needed a delay anymore.

Ok, so most likely, you’ve been there before, too. My story above isn’t unique. Lots of programmers went from DOS to a multitasking OS. The thing is, I think I fell behind in terms of learning how to program in this new world order. When I stopped using QBasic, I didn’t write a lot of C++ code outside of class requirements until I nearly had my degree. It turned out that I learned C++ wrong at first, which is why I didn’t enjoy programming in it as much as I did with QBasic. Once I read Accelerated C++ by Koenig and Moo, it made a lot more sense and was a joy to work with. That book is a great way to learn C++ for a beginner. Even though C++11 has since been released, I still highly recommend the book today.

Program Design Is Hard

But it still didn’t change the fact that larger applications were hard to make. If I knew what class or function was needed, I could write the code just fine. It was determining what class or function was needed that was the hard part. Or to put it another way, I struggled with “where should this code live” questions. Basically, software architecture was hard, and I didn’t know it was even a thing to be concerned about. Heck, years ago, I was concerned with how to put together a basic game loop. Solving that problem means I had everything I needed, right?

What I knew about game engines is based on what I read. Countless books and articles broke down the anatomy of a game engine by talking about its subsystems: audio, video, input, networking, etc. At the time, I believed this subsystem knowledge was enough to make a game. If you had a way to render to a screen and detect input, you had the bare basics to make a game. It’s just a matter of implementation, right?

Since I taught myself QBasic, and my first projects we isolated endeavors, I thought I knew how to put a piece of software together. I was able to put together an entire game, so how hard could it be? After all, they don’t give 70% reviews to just any QBasic games, right? I’ve even managed to put together complete Ludum Dare entries.

Why Is Everyone Else So Much Faster?

But I was also aware that some of the other Ludum Dare participants were able to make their entries way more impressive within hours of starting than my games end up by the deadline. Ludum Dare was historically a “write your game from scratch” competition, so it’s not as if they had full game engines available (although that’s changed with Unity entries). What was I missing?

Well, experience, for one. Some of those impressive entries are made by people who have been making games for way longer than I have. Even if we started at the same time, I haven’t been working on as many games as they have. They might have worked in the game industry and so know how to make games on a deadline. Even if they didn’t have game dev experience, they might have worked on financial software. Either way, they’ve likely written a lot more code than I have, so putting the software together to implement their game designs is possibly second nature.

Another thing people seem to have is boiler-plate code, such as code for menus, buttons, and sprites. XNA users have a huge advantage here, and Unity users are practically cheating. As I run and deploy to GNU/Linux, neither option is available to me, and since I work in 2D, there aren’t a lot of game engines available. A lot of the libraries that I could piece together also don’t fit my needs. Either they do things in a way I don’t want to do (GUIchan versus IMGUI), or they are not cross-platform. Instead, since my first Ludum Dare, I’ve written a lot of boilerplate code as I needed it. Each competition, I created more and more base code to leverage for the next project.

But I was oblivious to some of the fundamental architecture needs of a game engine, and so I still struggled to put together a finished, playable game in 48 hours. After all, the subsystems were everything. Just tie input to what’s happening in the game, and make sure the player can see feedback on the screen. Why is this so hard?

Learning Software Architecture

Most people will tell you to get a copy of the book Design Patterns by the Gang of Four. It’s a great book and features a number of patterns. Now, if you want to refresh yourself on what a pattern entails, it’s fine, but it isn’t great for learning about them in the first place.

I found Head First Design Patterns to be a great, easy-to-read introduction to major patterns.

But patterns knowledge isn’t enough to know how to organize a major software project. If I want to be able to provide a single interface to a bunch of disparate pieces of code, the Facade pattern is what I need. But what about determining that I need a single interface to those pieces of code in the first place?

And Test-Driven Development is supposed to be about code design. By writing tests, you already have a user of the code you’re writing, so you know how to design the functions and interfaces. TDD can help you design a single class, but it’s not going to help you drive the design of a full application. More and more, I realize that my lack of experience with writing larger applications is making my TDD efforts more of a struggle than they need to be. Uncle Bob Martin wrote about this topic in TDD Triage (the link has since died):

Here’s the bottom line. You cannot derive a complete architecture with TDD. TDD can inform some of your architectural decisions, but you cannot begin a project without an architectural vision. So some up front architecture is necessary. One of the most important up front architectural activities is deciding which architectural elements can be deferred and which cannot.

So patterns and TDD aren’t enough. Some architecture decisions are necessary, and I hadn’t made any. No wonder I had trouble in the past!


Ok, it’s 2014 again. Since 2011 when I first wrote this post, I’ve learned quite a bit about software architecture and designing software. Experience is one of the greatest teachers.

I’ve learned to focus on the data flow. Where does data come from, and where is it heading? I’ve learned to focus on what large pieces I need and worry about how to hook them up to each other later. I’ve learned how to separate the GUI from the internals, and that each has their own massive design decisions to worry about. I’ve learned that software architecture is less about the overall design of a software project as much as it is about the constraints on it.

I also learned that software architecture concerns don’t come into play as much if you are hacking together quick prototypes, but addressing the major software constraints can be huge if you intend to have a reusable set of code to use from project to project.

I’ll write more about the specifics in a later post, but it seemed important to document to struggle, especially as I did not identify my lack of knowledge about software architecture as an issue at first.

If you’re an indie developer, what were your major insights into software architecture? Do it come into play for you, or do you find that it isn’t anything to be concerned about in your day to day?

Anyone Going to the Extreme Leadership Summit?

Fom April 11th through the 13th, I’ll be at the Extreme Leadership Summit in Chicago.

Last year, I met Steve Farber, author of The Radical Leap and The Radical Edge and founder of the Extreme Leadership Institute.

His books are novels about the nature of leadership and what’s needed from it in today’s world. According to Farber, LEAP stands for:

  • Love
  • Energy
  • Audacity
  • Proof

Being a leader “is intensely personal and intrinsically scary” so you have to love what you do and love the process of making change, even if you don’t know how things are going to turn out. “Do what you love in the service of people who love what you do.”

Energy comes from having a good purpose. Without one, you are likely to falter just when you need the energy most.

As a leader, you need to inspire audacity. Are you planning on changing the world, or the world of your customers? If not, are you holding back your potential?

And you need to walk your talk. Do what you say you will do.

Farber isn’t a fan of passive conferences with a lot of fluff that make you feel good but leave you the same person as when you came in.

It’s described as a “hands-on, entertaining, productive, and interactive experience where you’ll learn, develop, and apply profound leadership practices to your current work and life opportunities.”

I’ll be there. Will you be there? If so, let’s meet up!

How to Be Prolific

Shakespeare's complete works

Sometime back, I read the article How to Be Prolific: Guidelines For Getting It Done From Joss Whedon.

The interview was published shortly after Whedon’s Much Ado About Nothing, filmed while The Avengers was still in post-production, hit theaters. Being able to put together a second film on the side while working on a major Hollywood production is impressive enough. Whedon is also active in comics and television shows. The guy is just everywhere.

The main points, from what I gathered:

  • Get specific with what you’re trying to accomplish
  • Reward yourself for doing even one small thing
  • Get exposure to diverse ideas
  • Ensure your friendships support your purpose
  • Don’t make excuses because there aren’t any

You can read the full article to get the meat of each of those things.

What I think linked everything, however, was his focus on being purposeful. If you don’t know what you’re trying to accomplish, it is easy to let things happen to you.

That paragraph might not sound mind-blowing. Stephen Covey wrote about keeping the end in mind in The Seven Habits of Highly Creative People decades ago. Being results-oriented isn’t a new idea.

But Whedon brings it to everything: his process, his downtime, his friendships, his life.

As a part-time indie game developer, I could say, “This evening is dedicated to game development”, and then find at the end of a few hours that I’ve gotten nowhere. On the other hand, if I task myself with coming up with an interesting core mechanic or introducing a new character, it’s specific and focused work that by its nature gets done. It’s about focusing on results, no matter how small, on your way to get the larger result, no matter how big.

I could spend each night vegging out in front of the TV, or I could schedule time to go to game developer meetups, conferences, seminars, and panels. I could read books, play boardgames, or write blog posts. Or if I am going to watch TV, it should be for the higher purpose of spending time with my wife, or learning about ancient 90s culture (seriously, Frasier is amazing), or something besides merely not being creative enough or motivated enough to think about doing something else.

I could play video games to pass the time, or I could play them to critically analyze the hell out of them for the purpose of understanding game design better. Even better, I could play the heck out of games that are both incredibly similar and incredibly different from what I want to create right now to get a sense of what’s been done and what’s possible.

I knew someone who went to the library after his day job to work on games for four hours a night every night. Over the course of a few years, he went from knowing nothing about game development to being able to publish a number of games in a short span of time. That developer knew what he wanted.

The older I get, the more I realize how precious my time is. Time is the only thing we really have to invest in anything.

If you want to be more prolific, if you want to create well-received works, stop and look at how you spend your time. Is it on purpose? Are you taking responsibility for what you are doing with your limited time, or are you going with the flow, allowing the agenda of other people to exert more force in your life than your own choices?

Doing creative work, you will struggle at times. It’s not going to be enough to say you’re making what interests you. You need that higher purpose to get you through the game developer equivalent of writer’s block. You’ll need to know the results you’re trying to achieve when you’ve scrapped months of work because you find it doesn’t actually work.

And frankly, you’ll need it when you look back and wonder what you’ve really accomplished. Did you do what you set out to do, or did you merely do?

The other day, Dan Cook tweeted about this concept:

It’s fine to have a list of tasks to accomplish for your current project. After all, it makes sense to break down the tasks and get it done.

But did you similarly think about the point of your current project? How does it fit into your vision for the future?

Last year, Notch posted about the news that broke when people found out he wasn’t working on 0x10c anymore. In So That’s What I’m Going to Do:

What I hadn’t considered was that a lot more people cared about my games now. People got incredibly excited, and the pressure of suddenly having people care if the game got made or not started zapping the fun out of the project. I spent a lot of time thinking about if I even wanted to make games any more.

And then there was Dong Nguyen, creator of Flappy Bird. The game was making him $50,000 per day, and he pulled it down. Why? According to this Rolling Stone interview, it was partly because he felt responsibility for the people who blame the game for losing their jobs or becoming isolated from their families.

In both cases, what did these games mean for the developers besides interesting experiments?

Or put it another way: when you think of a company like Mojang, what do you think of besides “they made Minecraft”? When the company publishes a new game, what can you expect? I’m not sure, because there doesn’t seem to be a larger purpose to the organization. It’s a company that happens to have a major hit to fund it, but it isn’t clear what principles or values it has that dictate what they do next other than “This seems interesting today”.

There’s nothing wrong with it, and it is great that they have the freedom to explore whatever they want, but compare it to a company such as Toca Boca, creator of Toca Hair Salon and other fascinating children’s games, including one that seems very similar to Minecraft:

Toca Boca is a play studio that makes digital toys for kids. We think playing and having fun is the best way to learn about the world. Therefore we make digital toys and games that help stimulate the imagination, and that you can play together with your kids. Best of all – we do it in a safe way without advertising or in-app purchases.

If you hear that Toca Boca is publishing a new game, you know in general what you’re going to get. They have a purpose, and they are organizing everything towards that purpose. You won’t see them publishing a very eclectic collection of games. They won’t be exploring survival horror or creating the next major FPS because they would be distractions from their larger purpose.

What you achieve in your life is going to be a direct result of what you do today. At the micro level, you have the tasks you’ve identified in front of you for a given project, but at the macro level, you choose the project to work on in the first place.

Or I suppose another way to say it is that if you execute everything perfectly but you did the wrong thing, you’ve wasted a colossal amount of time.

What’s your common thread that ties everything together? If you want to be prolific, it’s not enough to churn out random work. Having that vision about what you really want to accomplish is incredibly vital.

Do you have one?

(Photo: | CC BY 2.0)