Even people as busy as software developers sometimes have spare time on their hands. Maybe a project they’re working on is getting stalled for reasons out of their control, or the company currently doesn’t have as many clients as was expected? In situations like these, programmers don’t necessarily have to waste precious time and fall prey to boredom. In fact, they shouldn’t have to – and you shouldn’t let them. One good way to make sure they don’t is finding cool side tasks that’ll both teach them new skills and benefit the employer somehow (financially or otherwise). Here’s a couple of fun project ideas, and some indicators on how to manage such activities well.
The importance of side projects in programming
Many people start working in the IT sector with grand ideas – they want to work on cutting-edge stuff, change the world and create revolutionary technology. Some may even aim to become the next Steve Jobs or Bill Gates. Sadly, for most of them, the reality will look radically different – it’ll be full of legacy software, and menial, boring tasks. It’s a harsh truth that sometimes can lead to disappointment and burnout. That’s a problem – a pretty big one, which many Delivery Managers and Team Leaders have to deal with on a daily basis. Thankfully, there’s a way to prevent such a scenario – side projects.
As we wrote with Bartosz Podgórzak in our note on leading a software development team, most developers see programming not only as work but also as a hobby (78% of them code in their spare time). A good side project can give your software developers something fun to work with for a while, to take their minds off the bland daily life (and possibly make it easier for you to keep them in the company, as we already mentioned in our article on how to hire software developers). It can help you with team building (challenges can be fun amongst people who know and like each other) and boost people’s morale. In some cases, you can even create a solution (a program, a mobile app) that can be used by your company internally or one that can be monetized. There are many possibilities, and I’ll show you some examples later.
It’s important to note there’s no reason not to tackle side tasks. Sooner or later your employees will have some spare time on their hands. Sometimes you’ll finish a big project with nothing new in sight. Also, your team’s work will be going through the testing process regularly, and during that period the developers will only be needed for brief moments to fix something – and then they’ll have to wait for more feedback. Sometimes a programmer will have around 30 minutes of real work to do, and then literally hours of sitting idle. You can’t avoid situations like these, and – as my experience tells me – coders really hate them. Hell, some of them don’t want to have even a single free hour during work time. They consider it a waste, and therefore so should you. Side projects will help with that, offering you some much needed flexibility.
What makes a good side project?
Assigning your team a side project is easy, but finding the right one can be more problematic. There’s a couple of things you should look out for. An easy choice is something that will allow you to make some money – some fun web development, a useful program, or a web app, for example. However, earning on such a project shouldn’t be a requirement, but rather an additional boon. The real gains here will be in other fields – employer branding, skill acquisition.
The most important thing is to choose a project that’ll be fun to do for your people – a task that’ll give them a chance to work with something new, top-notch, stuff that people talk about (like the cloud, microservices, or machine learning), or something that’s simply entertaining. Once that box is checked, you can take note of others – for example, consider something that’ll require working with several stacks, integrating different technologies, and using many skills at once.
Ideally, you should concentrate on stuff that’ll help during your normal projects or that’ll look attractive to your clients. But honestly, most things that’ll allow your developers to learn something new will be fine – it’s worth remembering that most coders want to learn a new language or framework at least once a year (we know this thanks to Stack Overflow’s 2020 Developer Survey).
Here are some great programming project ideas
1. Open Source
One of the best side project ideas for your developers is to let them create an open-source piece of software, e.g. a plugin or a handy tool for other developers. There’s a certain kind of respect coders have for open source and people who contribute to the advancement of free software, which makes it a great way to boost morale and build your developers’ position in the community. Also, letting people know about your open-source projects on your website and social media is a great employer branding opportunity, attracting ambitious and skilled devs to take part in your recruitment process.
There’s a variety of open-source projects you can take part in. Zulip, Neovim, webhint, iGraph, Scrapy, and even our own Oracle APEX plugins – these are just some examples of things that gather interest right now. You can search the Internet for more ideas, but the best way to choose is probably to just ask your people. A survey conducted in your team will bring you many options for a fun open-source project.
2. In-house App
Another cool idea for a side project is an app (or a web app) that’ll help your company in one way or another. For example, you can create software that’ll help your employees with parking space, conference room, or vacation day reservations. You can also make a mobile app that’ll let you know who’s present at the office at a given time – it can be a pretty useful tool, especially in the current pandemic situation.
Again, there are many possibilities here. Consider what you need, ask your people what they think will be helpful, and then just create it. The cool thing about this approach is that you get tangible – if not exactly monetary – benefits from something that’s still essentially a side task. You can also make your new software match your specific needs and goals in a way that isn’t always possible with third-party solutions.
3. Programming challenges and Hackathons
You can also use side projects to help with team integration. One good way to do that is to organize programming challenges or hackathons. A friendly competition will help your people take their minds off more serious work and other “real world” problems. If it’s done right, it can be pretty fun. The developers can show their strengths, joke about their weaknesses, and improve their skill set at the same time. If you want to spice things up and give everyone an even footing, you can try to choose a technology no one is particularly savvy with.
Challenges like these often aren’t easy to organize, but they can be worth it. Just remember to keep things simple and friendly. For example, while you can offer something small as a prize for the winner, it probably shouldn’t be anything pricey, like a new laptop or smartphone. You want to promote a friendly rivalry and team spirit, not jealousy and spite.
4. Trending software technologies
Developers will always be attracted to new, cutting-edge technologies and software solutions. It’s pretty much part of the job description (you can say that about most positions that have anything to do with computer science, in fact). You should use that to your advantage when looking for an attractive side project – it’s a great opportunity to check whether something is a useful addition to your company’s technological stack. Here at Pretius we always have some shiny new toys we can give our employees to play with: microservices, the cloud, machine learning, and so on.
That last example is particularly interesting. Machine learning is a very future-proof technology that slowly starts sneaking into many aspects of our work and life. At Pretius, we already did several projects that used ML in one form or another – for example, for a big client from the transport industry we created a system that calculates prices based on accumulated data. I’m excited about the possibilities of machine learning and I think that skills linked to it will be very valuable and useful in the coming years.
5. Games or mods
Last but not least, there’s always room for a little bit of entertainment. Making games – or complex modifications (so-called “mods”) for existing ones – can be a pretty good side project for your development team. It’s probably not a good idea to try to create something big from scratch (it would take a lot of time, and the lack of tangible results can get frustrating), but there are easy-to-use platforms that can help channel your people’s creativity.
Popular Roblox is one such example. At Pretius, we’ve already made a side project that uses it: we appointed two teams and asked them to create a pretty simple zombie shooting game. It was a fun exercise for our developers and it worked well as a side task – helped take their minds off of more important things, at least for a little while. We’ve even started writing a tutorial that will help people follow in our footsteps and create their first Roblox game, so you can check the details of this side project there.
Side projects in programming – how to do them well?
Choosing your project is the first step, but also it’s important to run it in a way that’ll actually lead to something. The most crucial thing is setting clear rules and boundaries for your team. Your people need to know how much time they’ll be able to spend on that side task during work hours – if the project is something people are passionate about, they’ll often be willing to also work on it in their own time.
You also need to clarify who in your team can work on that side task, and who should prioritize other responsibilities for the time being. For example, if your company is body leasing some developers, the client probably won’t look favorably on them working on side jobs on what’s effectively his payroll. Of course, if a certain employee was interested in a side project you took on, and couldn’t participate in it because of other responsibilities, try to make sure he’ll be able to take part in the next one, if possible.
Another important thing here is defining specific goals for the project. What’s the end game? What do you want to accomplish? When will you be able to say you’ve achieved your objective? Plan all these things out, because otherwise, you can find yourself in a problematic situation – for example, your team might work on something for hours upon hours, but you won’t really have anything substantial to show for it. Not necessarily out of laziness – often enough the problem lies in perfectionism. Remember: good is the enemy of great, but sometimes good is just… good enough.
One battle-tested method to take on side projects is to do them in small, incremental steps. This way you can even try to create bigger things – they’ll just take some time. But whatever you do, make sure you don’t push your people when it comes to these tasks. Because the first rule of side projects is you don’t talk abou… nah, I’m just kidding with the movie reference. The important thing is actually to make sure your team has fun doing these things. Otherwise, what’s the point?
Do you need great software developers for your new project?
There are months when you have too much spare time on your hands, and there are some when you really need outside help. As you can see, at Pretius we’ve got some knowledgeable managers with experience in different kinds of projects. If you’re looking for a good team of software developers, drop us a line at firstname.lastname@example.org. We’ll answer in 48 hours and tell you what we can do for you.