Independently of the project what I was working on I always had teammates who were not satisfied with the project. At most of the projects they were the majority. Their points are always the same: not challenging enough, not innovative enough, boring and the most typical point: I don’t learn anything new in this project.
After several projects I started thinking about this issue: does it mean that all projects are boring after a while? Yes, they are boring, unless you are finding your own challenges in the project. And if you can find your own challenges, you can always learn something new. So it is always up to you if your projects are boring or not. But how to make them more interesting?
Fortunately, there are several ways to make your daily work more interesting. The main goal is to find new challenges so that you will enjoy your daily work and keep on learning something new every day. Let’s see some ideas.
If you are working on a project you have to know why you are doing it at all? Will that project to help people in their daily life? Will it make the world a better place? Will it make life easier? Will it make people happier? Is is saving the environment? You have to find your motivation and keep it always in front of your eyes. You need to believe that you are working on something useful. That will make your daily work much better.
For example, during my work with driving assistance systems my motivation is to make driving possible for people who couldn’t drive otherwise due to health issues and to increase accidents on the roads.
For most people it is motivating to feel themselves responsible for something. But it is also important to find responsibilities which are matching with your knowledge and interest. It must not be something too complicated. For example you can be responsible for reviewing the code of others, to support technical job interviews, to participate in project planning in tracking, to coordinate testing activities, to mentor the new team members, to integrate the code or to act as a software architect. Your responsibility can be also more project specific, like being responsible for the communication with the customer or being responsible for on software feature or component.
If you are having the right level of responsibility that will keep you motivated and it is giving the opportunity to help a lot. But pay attention: too much responsibility is making you stressful which destroys your motivation.
It is also important that you can also find a new responsibility for yourself. Just start to do new things during your daily work and with time you will become responsible for that thing.
Learning is very important in the life of the programmers. It is making you motivated and it is also required to stay up-to-date to keep your value on the market. So if you are working on a project where your colleagues are using a solution which you don’t know, just take your time to understand it. Don’t repeat always the same solution, always check for alternatives and if you find one, even if you don’t know it in details, try to understand and use it.
Always try to use the newest technologies: if there’s a new library which solves your problem just use it. Check always the solutions of your team mates: for sure you can learn something new from them. Keep on searching for topics to learn and take the time to learn them.
Things are never perfect. That’s true for your process, for your software design, for your code quality, for your testing strategy and for your teamwork as well. Find always things to be improved, point them out and try to make them better. By doing it you can learn a lot and if you are handling it in a positive way it can also motivate you.
These were the high level ideas. Let’s see some concrete examples of what you can do.
Code quality is a subjective topic, but it always could be better. Keep on doing some refactoring on the codebase to make it more readable. To work with a nice code is always more motivating than working in the middle of chaos. You can also improve the process to ensure a higher quality of code: do regular code review, do pair programming, improve your coding guideline or setup a static code analyser tool.
Teamwork is challenging. Anyway most programmers like to sit alone in front of your computer with a headset on their ears and listening to some music.
So doing pair of mob programming is moving them out of their comfort zone.
But that’s exactly why it is making your alldays more colorful and more challenging. You can learn a lot from each other. Not only technically, but you can also improve your interpersonal skills: how to present your ideas, how to communicate with your colleagues and how to handle your anger. Not easy, but challenging. And it can be a motivation factor as well on long term.
Most projects have some parts which could be done easier and faster by some automation. It can be a part of testing, integration of just the generation of a part of the code (like getter functions, easy conversation functions etc.). Try to identify these parts of your project and automate them. For this purpose you can use some pre-implemented tools or any scripting language (like Python). You can learn a lot by doing it and at the same time you are eliminating the boring part of the work. So two points for your motivation.
You are behaving just like the people around you. If your teammates are demotivated that can destroy your motivation very fast. So it is also your responsibility to motivate your team. By doing it you are not only helping them but even for yourself. There’s nothing worse than working in a demotivating environment.
You can use the above mentioned points to motivate them: help them to find new responsibilities or things to be improved. Try to understand what motivates them the most and try to find the most fitting tasks for them.
As you can see, you need to do your daily project work anyway and it is much better for you if you are motivated in the meanwhile. Luckily you can do a lot to improve your motivation. Just do them and be a happier developer.