The Odyssey of Team Synergy
“In the fell clutch of circumstance, we have not winced nor cried aloud”
👋 If you'd like to play our game, check it out here. Only works on desktops for now
I enjoy playing video games and I was always curious about how to go about creating one. Towards the end of coding boot camp, the pressure was on to form teams in order to create a final portfolio project, which I thought presented the perfect opportunity to finally write a game.
My final portfolio project team comprised of William Dyrland-Marquis, Christian Williams and myself. After working with these guys on several programming endeavors in the past, from hyper-competitive hacktahons, to interpreters for obscure programming languages, I concluded that you can’t ask for a better team of programmers to work with.
From Left to Right: Will, Myself, Chris
I formally met Chris at our school’s cantina. We were in the middle of a frenzied day of coding, attempting to meet a very tight deadline on a project which involved pointers in the C Programming Language. We exchanged small talk for a little while, and then I asked “What do you plan to do with the education you receive here?”. Without missing a beat, Chris declared, “I want to be the best software engineer in the world. I’ll do what others won’t do in order to become great". I knew right then that I’d want to work with Chris in the near future.
My first interaction with Will was quite unpleasant. I had been coding frenetically for about 12 hours, beleaguered by a tight project deadline. An error message which I had never encountered before, and which Google had failed to yield a solution to, threatened to derail the final portion of the project.
It was apparent from the first week that when it came to programming, Will knew what he was doing. By the end of the second day, he was already writing advanced scripts in Ruby which would automate repetitive tasks. During downtime, when we weren’t exchanging Spongebob themed programming memes (yes, those exist), he would lug out this massive tome which was replete with theoretical computer science concepts, and study. If you spend any amount of time with Chris and Will, you’ll discover that they’re always attempting to improve. They compete in hackathons, attend meetups, and solve programming challenges — In addition to their heavy workload at coding bootcamp!
Anyway, I approached Will with the hope that he would assist me with resolving the problem which kept generating that error message. I pointed to the error message on the screen and inquired “What is that error message?”. “Probably an error message”, Will replied.
Not what I wanted to hear after the stumbling along to fix an elusive bug.
What really convinced me that Chris and Will would be excellent teammates was their performance and actions during a fiendishly difficult project where Students were tasked with building a Shell emulator(Check mine out, here. I worked on it with another excellent engineer, Andrew Graf). Will, Chris, and another one of our good friends, Jose Alvarez de Lugo, went out of their way to assist all of us in completing our Shell emulator projects. Even though they completed their projects early, they burned the midnight oil with us for two weeks in order to make sure our code worked and was up to standard.
The champs! From Left to Right: Jose, Will, Chris
I had to work assiduously to convince Chris and Will to form a team with me. Since I entered coding bootcamp with virtually no programming experience, I had to put in those 12–15 hour days (on site) for months at a time in order to attain a high level of software engineering competency. Fortunately, when I popped the question(Chris, Will, will you work with me?), they agreed. Yeah!!
Now, let’s talk about the tech
Roles for Team Members
The roles for our team were decided based on our interests and career aspirations. Here is a breakdown of what each member of Team Synergy did:
Will: Will enjoys building the back-end of apps, and he indicated early on that this is a skill set which he would like to refine. Furthermore, he acted as the site reliability engineer because this is a role which he would like to occupy in the very near future. Finally, Will would assist us when a particularly hideous front-end problem was encountered.
Chris: Chris was eager to to continue to establish strong fundamentals in software engineering, which is why he decided to engage our project as a full-stack software engineer. Chris is also highly creative, and has designed our website and much of the assets of our game.
Faizan(me): Our team decided that my leadership skills would overlap well with the skills required to function as an effective project manager. I anticipate occupying a sales engineering or solutions consulting role because those careers require software savviness and people skills. In addition to my leadership responsibilities, I was responsible for the front-end portion of our app, and content creation.
Problems We Encountered
Creating Rocket Riders wasn’t all sunshine and rainbows. What I will say is that our team was perceptive enough to understand that forming our group with those of similar values would eliminate many complications. Because our values were consistent across team members, we encountered very few problems in communication or perspective.
Problem 1: Feature Creep
According to SearchCIO, Feature creep is the tendency for product or project requirements to increase during development beyond those originally foreseen.
We wanted our game to be really cool and creative. We had a list of features which we prioritized This included having a certain amount enemy types, design elements, and level structure. Inevitably my team wished for more enemies, levels, and special effects.
A common mistake which most project managers make is asking their team “How long will it take you to create and implement this feature?”. This question is one dimensional and invites a one word answer in the form of a number. OK, you have your number, now what?
The questions which I asked my team when they approached me to pitch the implementation of a new feature during production are “How much will this enhance the user experience?” and “How much time and resources will creating this take away from all the cool stuff we’ve already committed to make?”. I’ve discovered that asking these two questions invite discussions and debates which are Socratic and have the effect of cultivating practical thinking skills. The great engineers eventually figure out for themselves that the costs of implementing the vast majority of their extra features during production are too high. Chris and Will are great engineers.
Problem 2: Bad Documentation of the Library We Used.
By far, the most difficult technical challenge which we encountered, and overcame, was the implementation of text boxes into our game.
Our team felt like this a few times
I believe we ended up creating a very fun game. If you'd like to play it, check it out here(just desktop for now).