Curated by: Sergio A. Martínez
For many people, the idea of software development is just a job, with long hours in front of a computer, coding and debugging programs until they meet the requirements of their employer or client. However, software development can also be a fun hobby, taking on personal projects or contributing to open-source software where developers can exercise their creativity and practice their craft without the pressure of deadlines. In addition, working on side projects can give developers a chance to learn new programming languages and technologies; after all, practice makes perfect.
So, by working on side projects, developers can not only gain valuable experience but also try out new techniques and learn new languages. In many cases, side-projects can also be a great way to develop new skills. For example, by working on a project in their spare time, developers can learn how to manage a team or how to bring an idea to fruition. Moreover, working on side projects can also help developers stay up to date with the latest industry trends. By keeping their skills sharp, developers can increase the scope of their talents and the chance of growing professionally in ways you might not even expect.
So, this time we want to dive into the kinds of side-projects that many Scioneers have dabbled into during the years, and this time we chat with Pedro Ramírez, a Chief Architect at Scio with many years of experience, about a project he is most proud of: a complete videogame.
And this is because, for any software developer, no matter how experienced, creating a videogame can be daunting. Numerous challenges need to be solved and overcome, from designing compelling gameplay, to ensuring that the game runs smoothly on a variety of devices and platforms, to getting it into digital stores. For Pedro, though, this was an opportunity to learn and have fun alongside his son, releasing the endless runner FlyFlyFly in 2016 for mobile devices. You can still find it on the Microsoft Store, and talking about its development, shed a lot of light on the process for a software developer trying to get a project done on the side.
“At first, I thought it was going to be simple, but there were a lot of challenges to solve along the road. You can use a lot of tools and libraries today to make game development easier, but still requires a lot of puzzle-solving and learning to manage your resources wisely. For example, I needed to save as much memory as possible at the start of development to make sure the game ran smoothly on every device possible, and the Microsoft tools don’t give you much. And even when I got it working, lots of things were still in the air.”
However, being a solo game developer is no easy feat. Not only do you need to be skilled in programming, but also be able to create engaging gameplay, design attractive visuals, and even engage in marketing for your game to build a community around it. Of course, you don’t need to be an expert in all of these areas — there are plenty of tools and resources available to help you get started, but it’s important to have a general understanding of all the different aspects of game development if you want to be successful, and most of the time that is a challenge by itself.
“I had to develop stuff completely new to me, like the user interface, or draw the graphics and make them work as intended. Not everything is just writing code, you need a knack for art to make it look nice and appealing, which was one of my biggest learning experiences of the whole deal. When I started this project, I thought it would be easier than it was, so it was a big reality check when I realized how much I still needed to learn, especially when it comes to trying to get the word out and make it stand out in the stores.”
A passion project (in more than one sense)
Anyone who’s ever gone through software development knows how rewarding it can be to see your code doing something. It’s even more satisfying when it’s something you built yourself, just for fun. But what you might not know is that having a personal side-project in software development can be pretty advantageous, too. For one thing, it gives you a chance to explore new technologies and learn new skills without the pressure of having to produce perfect results. You can also use your side project as a portfolio piece to show future employers what you’re capable of.
“Three or four years ago, we had a client in Scio that was looking to develop an RPG-type game, similar to Final Fantasy, and I was put in charge of it thanks to my experience with FlyFlyFly”, tells Pedro. “In the end, the client had to put the project on hold for budget reasons, but we still have the source code somewhere in the Scio servers, and I’m proud of the opportunity it offered me. That’s why I believe that doing things for passion and fun can be so important in software. You never know when those skills will come in handy.”
And beyond that, working on a project by yourself can be a great way to relieve stress and take a break from the day-to-day grind of work, and when done purely for your own enjoyment, you can learn new programming techniques, try out new tools and frameworks, and generally push yourself outside of your comfort zone. What’s more, side projects can be a great way to make connections with other developers and build up your professional network, and maybe even have unconventional learning experiences along the way.
“When I first started development on FlyFlyFly, I was working for Amazon, and that technically made it their property, thanks to the terms of my contract with them”, explained Pedro about one of the most unexpected issues of this project. “It was basically a conflict of interests with the IP or so, and that basically made it impossible for me to maintain the game after I left them to work elsewhere, which is one of the reasons I couldn’t keep updating it on Android and iOS. Still, the experience I had with my son figuring out the game and learning how these storefronts work is invaluable.”
However, a question you might be thinking is why put some much effort into a side project like FlyFlyFly? Well, if you ask any software developer what they love most about their career, they’ll likely tell you it’s the challenge. Building new software is like solving a puzzle — it’s endlessly fascinating, and there’s always something new to learn, but even the most dedicated developers can burn out if they’re not passionate about what they’re doing, which is why this is such an important element of software development; when you’re passionate about the work, all the difficult challenges are worth it, constantly driving you to push yourself to do better.
After all, it’s easy to think that working hard and being passionate means the same thing. After all, if you’re putting in the hours, it stands to reason that you must care deeply about the work, right? But in reality, these are two very different things that need to be balanced carefully: Working hard is a necessary part of achieving success in any field, but to be truly successful, you need to be passionate about what you’re doing. Passionate people are driven by a desire to excel, not just by a sense of duty or a fear of failure; they’re willing to put in the extra work because they love what they’re doing and believe in their abilities. Projects like the game created by Pedro are a great example of this: a fun bonding project that taught him so much pushed him to learn new things, and even was useful to get a project rolling at Scio.
So, if you want to achieve your goals, ask yourself: Are you working hard because you’re passionate about what you do, or just because you think you should be? The answer will make all the difference.
Scio is an established Nearshore software development company based in Mexico that specializes in providing high-quality, cost-effective technologies for pioneering tech companies. We have been building and mentoring teams of engineers since 2003 and our experience gives us access not only to the knowledge but also the expertise needed when tackling any project. Get started today by contacting us about your project needs – We have teams available to help you achieve your business goals. Get in contact today!