Recently my team released the second phase of a project for which the development was going on
for more than 2 years. And the first phase is already in production for around 3 years now. By
the end of the phase 2 most the development was done thus nothing much of a work left for a
developer like me.
Therefore my today's post is about how to keep yourself busy or what to do when you do not have
much of a work to do at office:
1. Attend Trainings:
Since now you have time, try and upgrade your skills, try to learn what are the upcoming
technologies. Identify some good trainings that interest you. It is not necessarily be some
technical trainings, it could any trainings which will further improve your skills/ knowledge.
It could be related to time, process, project management. If you are not able to decide then go
for the once which you will need once you will reach to next level of your role, ex: How to
track defect density, Various Estimation Techniques, How to motivate a team etc.
In a lot of IT organisation, it is also mandatory to attend couple of hours of trainings every
year. While doing a training you will also be achieving your annual training quota. Who doesn't
like to kill two birds with one stone :-).
2. Impart Trainings:
If you think you are good at some things, then why not share with others as well? It is also
one of the ways to enhance what you know already. Knowledge increases by sharing it. Other than
enhancing your own knowledge you will also get other advantages -
You will get visibility in your organisation, who does not like fame anyway?
You will help others in those areas which are your strengths.
If you could prove yourself to be a good trainer, you can lend your services to other companies
which hires good trainers for corporate training needs.
3. Write White Paper:
While imparting trainings cover only a small segment of audience, you can also write white
papers on different technology, business scenarios and upload them to local intranet or internet
by which a large audience will be benefited. This way you record your knowledge and can easily
refer back when needed.
4. Make tools for your project/team:
Identify some problems or manual work of repetitive nature in your project/company and build
some tools to solve those problems. There are always some repetitive nature of work in any
project where a human being is assigned to do such tasks. For ex: In my project we follow agile
methodology and thus we release the executbales to testing team to test. And there were some
manual steps invovled where you need to build the exe's, copy it to a destination, raise some IT
tickets for the IT department to deploy the executables etc. Thus I went ahead and created a
small windows based application to make this entire process automated.
I then also took few screen shots of this application, converted it into a beautiful power point
presentation and showed it to my managers and client. Received a lot of appreciations as well.
This is the tool now I use to do any release, which is now a job of couple of seconds.
5. Prepare Prototypes:
If you have some innovative ideas that you would like to implement in your project. Then get on
to building some prototypes, which could be shown to your manager and peer to communicate your
thoughts. This will also prove how proactive team member you are. Please do not worry about how
big or small your idea is. Please do not think that this idea is not that great, what if my
peers or client would not like it. What matters is you can think about ideas, innovation and
have the desire to bring it on the table for others to review and comment. Also keep in mind
that at least you thought to do so.
6. Improve Existing Design:
It is also possible that you may think that your application have almost everything that a
client needs now what should you do? Well, you have an entire project in front of you. Why not
go into the details of how an application has been designed? See if you can find ways to make it
more scalable, extensible. Or improve it in any way possible. Trying to look for the ways to
improve an existing design does not mean that you trying to find fault in anyone else's code.
You are doing it for the larger benefit of the project.