Hello World! Welcome to my shiny new blog, OtterTech! Read on to learn what it’s about and what we’re about!
My name is John, and I like software. I like to use it, but I also like to understand how it works. I also like to learn. Turns out that’s really important because the software world is constantly changing (or at least it appears to be), so there’s always something new to learn.
The problem is that I think we still have a ways to go in the way we teach programming and software design. A lot of the concepts are actually fairly simple, but they tend to get explained either in a very dry and academic way (I’m looking at you, Gang of Four!), or by really expensive consultants who obstruct learning with lots of business/marketing jargon.
Thus, I want to do my small part in giving back to the Internet community by studying some of these topics and share them in a way that makes learning fun. The reason I chose “otter.tech” for my blog name was that I always wanted to keep that picture in mind when teaching or learning something- those fuzzy little guys seem to have a good time.
Now normally “software stuff” is too broad for a single blog (or at least that’s the advice I’ve heard constantly). The theory is that you don’t need to be the biggest fish in the ocean (those things always have a bigger fish)- you just need to be the biggest fish in your pool. If the pool is small, that becomes a lot easier to do. It’s good advice, but the only problem is that that I happen to be a bit of a jack-of-all-trades- I don’t have a niche yet. But that got me thinking- why not start with several ideas and see which one works?
The first topic that I want to explore is software design. I’m not going to define it formally, but to me this means the art and science of building good software.
This topic is important to me because my day job is being a “solution architect” at a large-corporation-which-shall-not-be-named. My job is to help our clients figure out what they want, translate that into what we need to build, and then help the different application teams (sometimes more than 70!) figure out how to build that software. It comes with a lot of responsibility, and it’s important that I nail it.
Now I realize that this topic isn’t all that much narrower than “software stuff”, but I figure that
Unfortunately, my day job doesn’t really give me the opportunity to program much anymore. In order to stay in practice, I like to do a little bit of game development on the side, and I thought that would also be a fun topic to cover.
Now some of you may be saying “Gosh, I’m a grown-up who doesn’t play games- maybe this isn’t for me.”, I get that. Games are often over-played and can be a waste of time. However, there are several reasons why I think game development is not a waste:
First, game development has great (and largely untapped) potential to teach young folks about programming, logic, and analytical thinking. For certain people, this can be really motivating because they can subconsciously transfer the fun of game-making to the fun of making itself.
Second, games are no joke. They have to be blazing fast, deliver a killer UI, and stay within tight budgets- all skills that can be transferred to an enterprise or otherwise “serious” environment.
Third, more and more companies are asking what it means to make their software and processes “social” or “game-ified.” Guess who has the most experience in both areas? Game designers.
Finally, if the reasons above weren’t enough, it’s important to remember that the video game industry is a multi-billion dollar industry.
While I’m an architect by day, one of my hobbies is game design. Now when I say game design, I’m not talking about the latest gaming industry news or those “Let’s play” videos on YouTube. There are already a bajillion YouTubers and bloggers who play games really well and make it a really entertaining experience for everyone. Instead, I’m going to focus on how to make games, and to make sure those games fun and edifying.
At its heart, game design is the art and science of taking the tools we get in game development and use them to put together a game that is fun. Game designers face the daunting task of taking their knowledge of psychology, cinematography, story telling, and a host of other subjects and weaving them together; the result is the difference between amusement and amazement.
Like other arts, we’ll learn about game design by studying the work of other game designers to see what worked, what didn’t, and what we can use in our own games. Like the sciences, we’ll experiment with different design techniques in little mini-games. One of my sources of inspiration has been Extra Credits. They take design concepts in video games or issues in the video game industry and really raise the discussion to the next level. But in addition to building a better video game, I’m wondering if we can take these concepts and apply them to software outside the entertainment industry (in a less marketed and better thought-out version of “Gamification”).
Hopefully one of these topics will interest you as much as it does me! If you want to stay in the loop and be notified when new OtterTech content is posted, make sure to sign up using the contact form below! You can also leave a comment below or follow me on Twitter! Cheers!