Tuesday, June 20, 2006

Think Big Projects

Alrite, this advice is for all the IT grads out there. You are fresh, and you are eager to show your talents to the world. And you landed yourself quite a decent job in the MIS department. But you found your job function quite the opposite of what you really wanted to do. Your role is....PC support job, endless troubleshooting MS office applications...for computer idiots staff. Or, if you got some programming job, it's debugging some previous bloated hideous ugly code written by an intern last few months. And no documentation.

So what do you do?

Now, this scenario is common when you work at a big company. If you are in a smaller company, you won't be flooded with so many boring stuff...

I know, cause I was there before. My other colleagues were just doing uncool stuff, like programming ABAP programs for SAP. Or managing some computer hardware stuff. It's just boring, for me.

Now, even when you are stuck with day to day mindless jobs, try to fit in your mind, BIG projects. Now, where can you get such inspiration to start one? Just look at your company's business, and see if there's any problems, that you could solve by putting some IT work into it.

And why would you want to trouble yourself, and take more jobs on your shoulder? Actually the benefits of doing this, has more to do with you.

First of all, the next time you want to job hop, you will have to update your resume. And which one is better? Writing big stuff? or writing the smaller mundane stuff? The big stuff will make you a better marketable person.

Then, if your boss, sees that you are pro active in thinking about problems, harder than anyone else, you stand a chance for better raise, or compensation. But nevertheless, this should not be your main target. Money in fact is not the main target.

So what is?

So that you could do the cool stuff. Even if you are working for a company. If you could pull the resources for your cool project, it would be much more fun.

For programmers, we want to be cracking harder problems, using the latest, or whatever tools we have to pull it off. Hack into whatever necessary to do things. These are the cool stuff.

For a record, I did in fact manage to pull out 2, 3 major projects in my career so far. It's big enough, that I could just go to my next employer, and confidently get the job.

So, if you are stuck in the rut with boring stuff, it's time to think big, and solve the next big problem.

Friday, June 16, 2006

Impractical Thinking

I overheard my partner that day, telling an intern to be practical. This guy was doing some web development using Ruby On Rails. I had just asked him to try it out, to see whether this platform could really speed things up.

Now, impractical thinking might not apply to all programmers, but sometimes, you just got to be the opposite. I have a habit of throwing off whatever I have known, and try to figure out, whether there are newer ways to solve the problem.

Telling programmers to be practical is like limiting their capabilities to think further ahead. It's like telling an artist to paint a portrait using a limited color set. He can't go on explore mode using his/her imagination.

Problems are aplenty, but how you solve it requires creativity. And creativity does not come easy, or just when think you want to be productive. In fact, creativity and productivity are opposite of each other. If you want to know what productive means, take a look at the factory. I used to work at one, manufacturing air conditioners. And I had observed how engineers will try to make a process faster. The main thing, is how you handle the assembly line, how fast you can get your raw materials coming in. If you can manage these well, productivity kicks in.

But creativity is a whole new ball game. It requires thinking of solving problems, using methods that needs exploration, and which are, might be totally new to yourself.

For eg, I was thinking of this web UI which list down a list of file names, and those file names can be changed via the web interface. I had done it using the previous method, which is the user clicks on the link 'Rename' and this will fetch another page with the rename functionality.

I did played with some ajax, made some calls to the server, and had it work. So I was thinking, could i just rename the file from the web page instead? Just like when you rename a file in windows explorer?

So, off I went, figuring out how to do this using ajax. And the results were good. I had a working interface where you could just rename the file by clicking on the filename(which is a text input), and once the focus changes from the input text, a request is sent via ajax to rename it.



So, to be really creative, you just have to be impractical in your thinking. While these might not apply to all areas of your life, but it's good to throw out old thinking, and put in a set of new ones.