Saturday, October 9, 2010

6 Things to do - when you are free

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.

Recent Posts