All Things Done By Design

27 Nov 2018

All Things Done By Design

Design is one of those things people don’t normally think about until it’s done poorly. Terrible design is easy to spot. A misplaced bathroom tile is quickly pointed out and laughed at. A door handle being placed on an exit that is easy to push on but instead must be pulled leads to frustration. Good design is much more difficult to spot and create. Common design patterns are what help us to make good, solid design choices that facilitate our intended purpose for the product. The only real design work I’ve done has been on my Magic the Gathering commander decks. I’ve recently adopted the practice of planning a deck out before purchasing all the cards and this seems to pay off for me. My design philosophy first starts out with a desire. I first ask myself, what do I want my deck to do? What goals do I have for this deck and how am I going to win with it? These questions are ever present in my mind when I am deck building. One of the decks I have built recently is a deck based around the card Karametra, God of Harvests. I got the inspiration from this deck by watching an episode from one of my favorite MTG YouTube channels, Game Knights wherein a magic pro named Melissa DeTora, piloted this deck to a quick and easy win. This card has some incredible power built into it and I wanted to build it for myself. I did quite a bit of research and figured out a way I wanted to design my deck.

This new way of thinking also has led to some ideas for how I want to write my code in the future. Problem driven design is something that stands out to me and makes a lot of sense. Given a problem, figure out some way to solve it. This method is fairly straightforward and I think makes the most sense to me. This is similar to when I think about what commanders (problems) my opponents are bringing to the table and how I should design my deck around beating what they’re trying to do. Iterative design is also something that I apply to my decks as well as my code. When I lose a game of commander or in coding terms run into a bug, I go back to the drawing board with deck or code and try to figure out what went wrong. Did I miss a semicolon? Did I forgot to add enough creatures? Am I playing enough removal? Do I have an infinite combo or infinite loop? Infinite loops are usually good in commander, in coding they’re usually not. Design patterns are really all around us. Good design usually means no one notices it unless they’re really looking for it.