This article was originally published on my personal blog in 2014. What you have here is the recommendations that withstood the test of time, became fundamental for my decision-making at work and did good for me and my clients both. That's why I decided to re-publish it on mkdev, so it could reach more readers.
The day just began, but I'd already got to the metro station nearest to my office. I strolled to the bakery and bought a croissant (a chocolate one, if that's what you need to know.) Then I walked to my office, having a croissant, carefully packed by a youthful Turkish lady, in one hand and an mp3-player in the other.
At the office I made some tea in the same slow manner and settled down at the desk. I was calmly drinking my tea and chewing the croissant, but behind that was hidden a growing flow on energy inside of me. I couldn't wait to start working. Some exciting and dangerous adventures were ahead of me. But also a short morning briefing, where I had to talk about all the entertaining tasks from yesterday. My working day didn't even start yet, but I was ready for the action, even without any coffee or reading the news.
After 10-11 hours or so, I looked around me. There were janitors in the office. It was getting dark outside. There was only the project manager in the office, besides me. My stomach was growling as I was starving and couldn't think straight anymore. Another day of my beloved work was over and it was time to go home.
But the situation was completely opposite three or four months ago. I used to be constantly late for a morning briefing, as I had nothing to say there. An hour before I had to finish my work, I would stop any activity and start procrastinating relentlessly. Yep, I wasn't even scared of being ashamed. The growing feeling of annoyance with another day full of dull tasks and bug fixing made me want to go home even more. Away, away from this office. I used to enter it without any passion and was looking forward to the end of the day.
At the same time I was reading The Project 50 by Tom Peters and it turned out to be really inspiring. The Peters' style is really laconic and emotional and all his books are to-do lists and calls for action. The core message is that you shouldn't waste your time but try to transform everything you do into a fun adventure. Another great idea of his is that there are no bad projects. You can always take on the tasks everybody has given up on and turn them into wow-projects. If you're engaged in some boring task, no one cares what exactly you're doing. Which means that you have a chance to do something unexpected and awesome.
After I read the book, I came to the conclusion that nobody but me could make my job more exciting for me. Yes, the current atmosphere in the team was rather discouraging and all the tasks seemed monotonous and stupid. But was that the reason not to enjoy every hour of my life? Well, I guess not. Eight hours every day is a huge part of my life, so I'd better turn my complaints into something entertaining. Well, how can we make your everyday routine interesting and joyous again?
We all had it when you're said to fix some bug. It's rather small and annoying. You can fix it in an hour or less and then you have to wait for your coworkers to do a code review. It might take a lot of time. It might be that there is deployment going on or they're testing some feature and cannot deploy because of that. And thus, a small bug gives rise to several days of waiting and we all lose focus completely. Bug? Which bug? Ah, this one? Well, yeah, I fixed it... I guess.
You may face such bugs five times a day or even more. What should you do about that? Transform bugs into full-fledged tasks. For instance, you can refactor the part of the code where you've seen a bug. Or even rewrite this nasty controller completely. It might also be that the feature with the bug is not needed at all and it's better to remove it after a brief discussion with the management team.
All the bags are fixed, but the rest of the tasks aren't even a tiny bit exciting? You want to work on something huge and not to export the data to CVS? Well, there's no choice, you know. There's gonna be something big in the future, but now you need to concentrate on the current tasks. But you know what? You can turn your boring and, optionally, small tasks into comprehensive mini projects, which might take a little bit more time and effort, but will bring you a lot of fun.
Some task might be connected with some other big project which is about to start. Some might have not existed at all, if some part of the system had been automated. You can also reformulate the task so that the initial conditions are the same, but practically you're doing something more global. I once turned updating minor versions of gems into updating to Ruby on Rails 4 :)
Still don't know how to do all of this? Neither do I. Those dull tasks are yours, I know nothing about them. But we can discuss them in the comments below, if you wish, maybe together we'll find a way.
Well, of course, if you want, you can independently transform the tasks behind your tech lead's back. But you should be ready that eventually somebody might not like that. So it would be better for you to find some allies as well as arguments backing up your point of view and to give time frames. Having all that, you can go asking the management team to give you more time for the task and allow you to make it bigger. What's important is that if you've been turned down that doesn't mean you shouldn't at least try. It's better to apologize for something you've done than to ask for permission.
You fell as if you've been cornered, as there's no way to make this particular task bigger? Then use it as an opportunity to learn instead. You can get the gist of some new technology or wade through the very depths of the code. Turn your work into studies and it'll be way more fun to do even lackluster stuff. As long as you discover something new, everything's fine.
If you didn't manage to do anything of the aforementioned and still do not enjoy your work, you'd better think about quitting it. The programmer who's unhappy is a bad thing not only for him or her, but for the company itself. But, well, for the programmer in the first place, of course.
Keep in mind that the situation on a programming market is rare. There are more job offers than actual programmers. And before it changes, you have all the chances to find a challenging project.
I followed all the recommendations given here myself. Since then my tasks weren't boring anymore. I started doing things that I like, dealing with interesting stuff and rapidly developing my skills.
Remember that your self-growth is in your hands only. Making your workday (and not only) more exciting is too. None of the team leaders, managers or anybody else are going to give you only awesome tasks to make you happy. So go for it, transform your working process until you're completely satisfied!
Which of your current tasks might be considered dull and useless? How can you make them more interesting and why haven't you done this yet?