Oh yeah I am renewing my blogging habit. Perhaps a redemption attempt. Why i stopped blogging? Well there is lot of reason behind it.First its not just because of im being so busy but i was into a serious cycles of depression lately in the year, mainly due to performance appraisals.Which bogged my mind always, trust me blogging wont be good unless you really have a fresh mind. Though few of my pals including peerless , the Knbl guys and few others helped me to get rid of it. But still i couldnt continue my blogging. Sole reason is Twitter. It occupied much of my time lately. Thanks Ev, Biz , Jack for such a wonderful tool.
Now i started to blog again. When performance appraisal are out. I m analyzing, looking back my own past one year, what i did, whats my growth. Here we Go !.
What the heck is performance appraisals?
A collaborative definition from wiki,Performance appraisal, also known as employee appraisal, is a method by which the job performance of an employee is evaluated (generally in terms of quality, quantity, cost and time).
Now into serious questions?
I am a programmer how do they evaluate my performance ?Do they count my LOC as my productivity ? Well Gates said once, ""Measuring software productivity by lines of code is like measuring progress on an airplane by how much it weighs it's a bad idea.
How about performance related to ROI? Hey I m a programmer, at my level i can only help my customer feel better because of/ through my code. I cant directly control ROI. The Business people need to do it and not me.
How about delivery time and code metrics ? Well this things are all subjective, and any one can bet on it. But so far my delivery been perfect and i have followed good metrics in the project comparatively. Well I read both the Java bible and programmer bible.
How about the issue solving / bug fixing capability? Well who will include the complexity of issue? I can solve thousands of simple useless issues can you rate meas a good performer?
Ok this is a never ending discussion, i didn't find any experts including Joel, Atwood commenting on how to reward programmer performance. If you find any good articles just mail me and give me the link !!!!
There is nothing serious about the metrics or reward. Each rewarding system is therefore subjective and commendable.
Then why the heck you or I need to take care of such system? But i did as i didn't know it fully but not anymore. I found this post will help some one who came through just like me. There are always n number of engineers joining and undergoing such system.
During the last year appraisal i expected a best rating in the system. Its O. As i have critically helped and put all my efforts up-to my fullest potential to the project, and performed in critical releases. In fact I used to stay more than 11 hours at office working out a issue or planing out what should be done next so that i can get a good name / impress my superiors.
Dont get me wrong. Every one wants to impress some one. The whole world works as a rating system be it school, college or even at work. When i asked, i got a nice reply from paul "attention is a scarce resource with alternate uses, cf. "Basic Economics, 3rd. ed." "Rating" == "Price" in this context. ".
So here s the deal. When i was doing all my effort and not getting the result i expected, there is a disappointment. I felt there is no inspiration or motivation for what i did and there is a depression cycle.
Though it didn't lasted for too many days, but it did occupied my time. Few of my pals helped and made me to understand this not a big deal.This was the time i learned hard lessons .
Badly i need a change. Looking back, I did changed. How ? Here it is !
Programming for fun
I learned the art of programming for fun. I am fascinated my programming , by software's right from my school days. I passionate about technology and always wanted to work on cutting edge.
But sadly programming for money, food deals with some legacy, 80's technology. The world is just not end. Ever thought why there is so much open source communities out there? Ex Apache, Linux ? All are programming for fun. I learned it when i started to twitter. Linus wrote kernel for fun. Charlie, Tom implemented JRuby as fun project. Ola is doing Ioke for fun.
Time and Learning's are the best investment.
I never stayed back at office more than 9 hours for the past one year. My bad performance results did made me so perfect.With the name of scrum and agile i never worked more than 9 hours now days. I understand agile and practice it rather than just speaking hey we are agile and staying out in office for more than 12 hours.Hey I did finish the task in given time, in fact much less than the given time, started to learn the art of programming for fun.
This is the time i started to read research papers, flirting with open source product which i found fascinating.Thrift,Cassandra,Hadoop, Hazlecast,Asm, CGlib, Guice And so many.
Did any of this learning's helped ? Yes it indeed.I did suggest and brought so many good practices into my code, (Guice method chaining, Fluent Interfaces, DSLs )into my work.We had a requirement of 3000rps per second. My knowledge on Bloom Filter helped to reduce database look ups, and use of JSON with it did helped to achieve almost 2500rps.
Never Ever involve in technical fame/political wars.
I remember this XKCD article. Never involve in such situation. It ll always waste your precious investments (both time and leanings). Be pragmatic, instead of involving flame wars, just implement the dumb idea will save time. Ouch be pragmatic dont implement dumbest idea on the planet. In case you got into such situation read next one.
Communicate with code.
In case you want to make/suggest a solution communicate it withyour code. Dont involve in flame wars. There is always gonna be a group flaming like vim vs emacs, linus vs windows, ie vs firefox, rest vs ws *. So many ideas i proposed to for my current not just accepted on the first instance. There is/was a situation of fame wars, but i hesitated not to involved. I am not good at speaking or convincing people, communicating with code did worked like magic. When you got a working implementation, in a flame war situation its speaks more than your words.
Be dumb to dumb peoples. In a NNPP environment its good to be a dumb to dumb peoples. Being so smart or trying to be smart will always increase the NNPP and hurt your time aka your investments, and project as well.
Working in a dumb project is good. In such environment You can always learn about anti patterns. And how not to do it instead of how to do it. You can learn how not to screw up.
Ideas wont help. Go implement it.A bad implementation is worth than thousand good ideas. So implement it, will always helps to be pragmatic.
Knowledge is your portfolio.Dont hesitate to learn a new piece of technology / good practices. Its a connecting dot.
Looking back at my personal growth, Im extremely happy, and in fact with twitter i felt its almost doubled. I always connected with a passinated group of peoples.I learned a lot of practices by looking on Crazybob's code. Programming for fun is just fascinating !
This year the rating is out and i got the best rating. Even though i don't feel anything happy and Im not in cloud nine.
I just learned, Inspiration wont come from others, Motivation wont come from others, you have to do it, the best inspiration to you is none other than you. Both your success and failure should be a motivation to you. Wrote a good code for a less priority bug ? Go treat yourself for the good code. Read a research paper which gives a satisfaction ? don't just stop celebrate it with a choco
I m gonna follow this principles and like to continue the way I am.
In short O is the new 0.
In chris style, This part of my life is called, this little part right here is "Staying foolish, Staying hungry"
My pals knew what is O is about. For outsiders, O is the highest rating system, we have.