When you extend your co-op for another term, there is a chance that things might not be as exciting as before. Evgeny shares tips on how to keep your term productive and engaging based on his experience at Broadcom.
Usually, as the work term proceeds, everything becomes more of a routine. New tasks do not excite you as much as before, and sometimes boredom overpowers you. I assume this is all-natural.
However, it is not very beneficial to your co-op experience! I’ve found the following way to fight routine (and occasional boredom that accompanies it):
- Planning my day ahead: virtually, creating a list of features that I will work on today.
- Switching between unrelated tasks: yes, frequent switching harms performance but, believe me, boredom harms it even more.
- Set ambitious goals for yourself: this will help keep you motivated to excel.
Thanks to my planning and task switching I was able to continue delivering good results and completing the tasks given on time; as a result, the co-op continued to be an enjoyable experience during my second term as well.
But saying that every single day was great would be an overstatement: as the team project was getting closer to its completion, there were days when I didn’t know what to do next. Such situations are the worst: you are in office, you are getting paid, but you are hardly doing anything. In my case the managers were away and I’ve completed all my tasks ahead of time. If you ever find yourself in such situation – you should try to end it no matter what. A successful co-op is when you work a lot, not when you have many days off.
Another common issue, that everyone probably faces once in a while, is when you are given a task that you don’t like. In my case, I don’t really like reading documentation or specifications. During my second term I was once given a task that came without rigid deadline or immediate need for implementation, which, however, required meticulous studying of one technical requirement by European Telecommunications Standards Institute (ETSI). And by saying meticulous I really mean it – some test scenarios differ virtually by one letter (a flag), yet that made all the difference between the passage and a failure of an entire test. So I’ve spent hours playing the game “spot the difference” in a text, which is not entirely human-readable. A couple days went without proper results, and I was not happy with my own progress. Finally, I decided to force myself to complete this task in a day or two. I came to work earlier and stayed longer only to complete the task. I did this because until I finished that task, I will not be given another (more enjoyable) one.
For my second term I wanted to come up with a more ambitious goal, which was “to learn how to write Software Development Specifications (SDS)”. It sounds simple and easy, but it doesn’t come with an explanation that the latter is quite:
a) Tedious in the attention to details that is required
b) Boring to read
c) Mandatory to be followed later (and the author is the one who would have to do this first place).
Yet, I did write an SDS; but then reality decided that it is nothing more than an approximate guideline. The end result was very different from was put on the paper, but it still was a spectacular achievement (at least in my mind), because I:
a) Delivered the entire feature almost all by myself
b) Managed to merge my patch in to the main code branch, after approximately 80 review rounds. This was a company record according to my colleagues!
I worked hard to keep myself motivated and productive regardless of anything that might be seen as a barrier. Goal setting kept me motivated and I even impressed myself with what I could do!