"Lets go get some Bubble tea. Its nice n sunny today (in Seattle) for a change" said my manager just before my one on one session. My eyes popped and I could already smell my favorite Taro bubble tea with tapioca. Then we walked over to "Oasis", a hip Bubble tea parlor in the International district in Seattle and ordered our Bubble teas before we started talking. BTW, If you thought Mountain dew was the ultimate coder fuel, have Bubble tea and you will probably change your mind. Anyway, we have weekly one on one sessions with our managers to talk about various issues. Most teams here at Amazon are pretty consistent about having them at lease once a week. The topics discusses in a one-one session include critical issues to your project, self development, direction of the team etc.
Since my first full time job is at Amazon, I really cannot compare it with any other organization. But I do have friends in other organizations ranging from startups to multi billion dollar corporations. When I was in Austin a couple of weeks back, a friend of mine told me that he had never met his manager face to face EVER. "Oh! I talk to my manager about goals and self development after my performance review every year" said John (with a sigh of relief) who works for a consulting firm. And boy, was I surprised or what? Then after having my next one-one session with my manager I was thinking about the impact it has on my my career.
As a fresher out of college working on my first job felt like an aquarium fish out in the middle of the Pacific. At least for the first few days. This is one of the reasons why an internship in a good organization makes such a big difference. You would have already learned how to paddle through the rough seas with the help of a life boat. Of course, you don't have a luxury of a life boat when you have a full time job. During these trying times, you need someone to look up to. Someone who has gone through the rough seas and gives you confidence that it can be done. This in my opinion, this is probably the primary reason of having one-one sessions. Everyone likes a mentor whom they can look up to and get inspired.I hope your manager is one who can guide you and commands your respect.
Secondly, you get constant feedback on your performance and how you match up against your goals. This is like seeing a road sign every couple of miles on a 1000 mile road trip. You have set your destination in your performance goal but without these signs , how do you if you are on the right track? At least for me, nothing helps me develop better than feedback. Take criticism in a positive manner and remember to celebrate your successes. If your manager tells you that your last pet project doubled overall productivity, don't just go back to home, watch "sports center" and go to bed. Celebrate your success, with that latest Wii controller that you have been eying or that 1987 Pinot Grigio from Napa. Whatever makes you feel better. This makes you repeat such acts and keeps you hungry for more success. Also make sure you give feedback about your manager and peers. If you truly want your manager to get better, give him/her honest feedback (obviously in a diplomatic tone). This way, you you give him a chance to get his favorite movie on a Blu ray disc as well :) (HD-DVD is a thing of the past now)
Thirdly, you get to know how your goals align with that of the team and the organization. Every piece of software that you write at work should add some business value and one step closer in the direction of your org's goals. A good manager should take this opportunity to reinforce this in every one-one session. This develops ownership and a sense of belonging to your organization.
Fourthly, there should be some time to talk about personal stuff. Your next vacation, the book you read last week, the home run you hit in your neighborhood park...This helps you know your manager as a person and vice versa. This is important in any relationship. Unless you see the personal side of somebody, you will look at that person as someone whom you work with instead of a "team mate".
Even if your organization doesn't have a concept of one-one sessions, have a talk with your manager and encourage him to have similar sessions at least once a fortnight. I am sure the benefits of this will be quite visible and you will thank me for making you have bubble tea....with tapioca.
Showing posts with label SoftwareDev. Show all posts
Showing posts with label SoftwareDev. Show all posts
Saturday, February 9, 2008
Saturday, January 26, 2008
Review me?
Its that time of the year again...No I am not talking about your taxes. I am talk about what makes you pay your taxes at the first place. Your income and the process that determines your income: Performance Reviews.
How important are these anyway? John, a friend of mine, considers it as an opportunity to get exposed to a hodge podge of fancy HR terminology (which would help ultimately help him boost his Scrabble score). Well, that is partially true. HR's do like fancy jargon just like Software Engineers do. These reviews also give you a chance to discover fancy websites and perf review generator softwares. Yes I did have the same look like you have on your face now.
Pic 1: Snap shot of a perf review generator.
Well, I think to top five things a performance review is intended to do is:
1. Company's goals and principles: It makes you think about what your Company stands for and how your work aligns with the company's. Sometimes it is good to sit back with a Peppermint mocha and take a 50,000 ft view of your Company. If you think, you don't believe full heartedly in what the company stands for, please do yourself and your company a favor by switching jobs. This, in my opinion, is the single most important thing a performance review should do: To reinforce the company's principles and goals in what you do everyday.
2. Think about business value: Software developers have busy iterations and goals for each iteration that they get too wrapped in this world of code reviews, unit testing, deployment and the stuff. Remember, no matter how cool your code/feature is, as long as it doesn't add value, it means NOTHING. This is a skill that most lacks in software developers today and they definitely do not teach this in your "Compiler design" class.
3. Reflect on the year: Like anybody, you would've had a few ups and downs in your work life in the last year. Take some time to celebrate your success and analyze your mistakes. Everyone falls the first time(including Neo) but the important thing is figuring out how to stand up (and in Neo's case how to jump buildings).
4. Think about which peaks you want to climb: It is much easier to measure your success if you pick the challenges that you want to take on. And please be realistic. If you are starting with a 8-8 record, set yourself a goal to clinch the division next year (and not try to be the "Perfect season" Patriots) . I am not trying to discourage you, but small victories do more to your morale than falling short on a "Venti" goal.
5. Feedback: Nothing, I mean NOTHING improves you more than feedback from your peers and your Manager. If your company doesn't have peer feedback, please talk your HR and try to make it happen. It is your peers who see your work day in and day out and their feedback is invaluable. And please be honest about giving peer feedback. If you are concerned about your peer's well being, tell them how and which areas they need improvement. On the other hand, if you really liked them stepping up during your last vacation, add that to the review.
Well, reviews are time consuming and need a lot of thought. But they is important and need to be done the right way. Ooops...I need to start writing my reviews and they are due in a week.
How important are these anyway? John, a friend of mine, considers it as an opportunity to get exposed to a hodge podge of fancy HR terminology (which would help ultimately help him boost his Scrabble score). Well, that is partially true. HR's do like fancy jargon just like Software Engineers do. These reviews also give you a chance to discover fancy websites and perf review generator softwares. Yes I did have the same look like you have on your face now.
Pic 1: Snap shot of a perf review generator.Well, I think to top five things a performance review is intended to do is:
1. Company's goals and principles: It makes you think about what your Company stands for and how your work aligns with the company's. Sometimes it is good to sit back with a Peppermint mocha and take a 50,000 ft view of your Company. If you think, you don't believe full heartedly in what the company stands for, please do yourself and your company a favor by switching jobs. This, in my opinion, is the single most important thing a performance review should do: To reinforce the company's principles and goals in what you do everyday.
2. Think about business value: Software developers have busy iterations and goals for each iteration that they get too wrapped in this world of code reviews, unit testing, deployment and the stuff. Remember, no matter how cool your code/feature is, as long as it doesn't add value, it means NOTHING. This is a skill that most lacks in software developers today and they definitely do not teach this in your "Compiler design" class.
3. Reflect on the year: Like anybody, you would've had a few ups and downs in your work life in the last year. Take some time to celebrate your success and analyze your mistakes. Everyone falls the first time(including Neo) but the important thing is figuring out how to stand up (and in Neo's case how to jump buildings).
4. Think about which peaks you want to climb: It is much easier to measure your success if you pick the challenges that you want to take on. And please be realistic. If you are starting with a 8-8 record, set yourself a goal to clinch the division next year (and not try to be the "Perfect season" Patriots) . I am not trying to discourage you, but small victories do more to your morale than falling short on a "Venti" goal.
5. Feedback: Nothing, I mean NOTHING improves you more than feedback from your peers and your Manager. If your company doesn't have peer feedback, please talk your HR and try to make it happen. It is your peers who see your work day in and day out and their feedback is invaluable. And please be honest about giving peer feedback. If you are concerned about your peer's well being, tell them how and which areas they need improvement. On the other hand, if you really liked them stepping up during your last vacation, add that to the review.
Well, reviews are time consuming and need a lot of thought. But they is important and need to be done the right way. Ooops...I need to start writing my reviews and they are due in a week.
Wednesday, January 16, 2008
We don't need to college education...or do we?
We just hired a recent college grad a couple of weeks ago. Smart kid from a top 40 school with a Computer Science degree. My first impression of him was that he was down to earth and very enthusiastic about learning. He had to go through a bunch of training camps to get overwhelmed and in awe of what people do in the industry. He was handed over a simple and straight forward project to load some data in the database. The whole point of the exercise was to get him familiar with the code repositories and deployment processes. As with any good programming organization, we have the practice of code reviews in my firm. Beep beep...from my brand new Blackberry curve and there was one unopened message with a code review request.
And being his first code review, I had to clearly communicate the quality and style of code which was expected of him to be a good software developer in my organization. I was looking through his files and made quite a lot of comments about his code. It kinda reminded me of my first code review a couple of years back. I was really nervous about it. More nervous than my final software project at school. At least he has the luxury of being with more polite senior developers than I did. When I got my first code review back, there were several disparaging comments which really made me feel sorry for not doing my second masters. This really made me ponder as I was walking back home another day in through the rain, hail and snow ( the last two are rather unusual for Seattle this time of the year)...Does school really prepare you for work? If not, why are there not more revolutionary techies like Bill Gates and Steve Jobs. I know it is not fair to compare people with a superior genes than ordinary ones. How do you think they might have turned out if they had decided to stick with their college degrees?
Lets see why we need to go to school at the first place. Hmm...to be room mates with your best friend in school...to go to wild frat parties...to wear your college colors and cheer for them on game day . These are really good answers, mind you but these shouldn't be the only reasons to go to college. Well, if most parents would tell you that you need to go to college to get a good job. That is partly true but the true point of going to college is to prepare to handle the real world. I mean the REAL world. The kind of world where you didn't have your Dad do the dishes when you broke your hand. I am unreasonable, but even Neo was shaken up when he found out what the real world was from Morpheus.
Pic1: Carrier Dome, Syracuse University, NY
First and foremost, college really teaches how to be independent. This is probably the most important quality needed for a Software Engineer, and a matter of fact, any job. You should be able to handle and get things done on your own. Yes, you got help from your friend born in "FormalMethod"us but it was ultimately you who got the job done. Secondly, it helps you handle adversity all by your self. There have been several times when you felt the whole world was resting on my shoulders. But as it happened more frequently you would have seen your shoulders take it much better. At work , there will be times when there would be bugs needing immediate attention, to save the planet. And most of all, college prepares you to handle people. In college, the number of people you meet in any given month would beat your non college month by at least 10 times. Among these would be the most annoying, most intelligent, most athletic, most sexy, most artistic, most geeky people whom you would have ever met. In doing so, you give your people skills a big boost and give yourself a good chance for doing well for yourself.
I think our industry should not expect fresh graduates to write production level code from day one. If the person has graduated college he has probably demonstrated that he can get things done and see it through completion. Apart from people from "JobsGatesville", college is really important in preparing one to take on challenges in real life. I think most interviewers are a little too harsh when dealing with college hires and expect them to have the same level of expertise as them. In face, a college hire can bring in so much more energy and fresh air to the team that the learning curve is justified. So please be patient with your new hires to get to the point where they can contribute. After that, its how hungry each one is to make the big leap. Sometimes, it is good to have an "NFL sized hunger"!
And being his first code review, I had to clearly communicate the quality and style of code which was expected of him to be a good software developer in my organization. I was looking through his files and made quite a lot of comments about his code. It kinda reminded me of my first code review a couple of years back. I was really nervous about it. More nervous than my final software project at school. At least he has the luxury of being with more polite senior developers than I did. When I got my first code review back, there were several disparaging comments which really made me feel sorry for not doing my second masters. This really made me ponder as I was walking back home another day in through the rain, hail and snow ( the last two are rather unusual for Seattle this time of the year)...Does school really prepare you for work? If not, why are there not more revolutionary techies like Bill Gates and Steve Jobs. I know it is not fair to compare people with a superior genes than ordinary ones. How do you think they might have turned out if they had decided to stick with their college degrees?
Lets see why we need to go to school at the first place. Hmm...to be room mates with your best friend in school...to go to wild frat parties...to wear your college colors and cheer for them on game day . These are really good answers, mind you but these shouldn't be the only reasons to go to college. Well, if most parents would tell you that you need to go to college to get a good job. That is partly true but the true point of going to college is to prepare to handle the real world. I mean the REAL world. The kind of world where you didn't have your Dad do the dishes when you broke your hand. I am unreasonable, but even Neo was shaken up when he found out what the real world was from Morpheus.
Pic1: Carrier Dome, Syracuse University, NYFirst and foremost, college really teaches how to be independent. This is probably the most important quality needed for a Software Engineer, and a matter of fact, any job. You should be able to handle and get things done on your own. Yes, you got help from your friend born in "FormalMethod"us but it was ultimately you who got the job done. Secondly, it helps you handle adversity all by your self. There have been several times when you felt the whole world was resting on my shoulders. But as it happened more frequently you would have seen your shoulders take it much better. At work , there will be times when there would be bugs needing immediate attention, to save the planet. And most of all, college prepares you to handle people. In college, the number of people you meet in any given month would beat your non college month by at least 10 times. Among these would be the most annoying, most intelligent, most athletic, most sexy, most artistic, most geeky people whom you would have ever met. In doing so, you give your people skills a big boost and give yourself a good chance for doing well for yourself.
I think our industry should not expect fresh graduates to write production level code from day one. If the person has graduated college he has probably demonstrated that he can get things done and see it through completion. Apart from people from "JobsGatesville", college is really important in preparing one to take on challenges in real life. I think most interviewers are a little too harsh when dealing with college hires and expect them to have the same level of expertise as them. In face, a college hire can bring in so much more energy and fresh air to the team that the learning curve is justified. So please be patient with your new hires to get to the point where they can contribute. After that, its how hungry each one is to make the big leap. Sometimes, it is good to have an "NFL sized hunger"!
Saturday, January 20, 2007
Software conferences and learning seminars
I just came back after attending the third annual Amazon Developer Conference in Seattle. Wow! I really like this feeling of your 'inspirational cells' come alive and boy does that feel good or what. I feel like a child who went to the zoo for the first time. I think as grown ups we need impetus like this to keep us going and making our journey more fun-filled. I am so glad that I work for a company like Amazon that promotes such conferences. I think every software company needs these for the following reasons:
i) Fuels your knowledge appetite: I think as software Engineers we constantly need to feed our insatiable knowledge appetites. This is like fuel and it is partially a responsibility of the organization that you work for, to feed your appetite. In this way the company keeps raising the bar within.
ii) Keep up or miss that train: I think this has been the 'mantra' in any tech related field. Especially in software the playing field shifts quite rapidly. If you don't keep up, someone else will and win over the market.
iii) Meet the 'software Einsteins': I think intelligence has an equilibrium effect like temperature. When you have a group of people with varying IQ's together to come up with an idea, the final output/solution will be comparable to the one with average IQ. This is specially true with the outcome of software projects.
In the same vein, meeting the 'Einsteins' in your field can certainly make you aspire to be one and make you strive better.
iv) A 'techation': Its like a tech vacation from your workplace. Its a vacation from your work and it recharges you just like your other vacation to Hawaii (minus the belly dancers...)
v) Free internal advertising: I think its a great venue for some of your internal tools and programs that never took off to get noticed and get the spotlight.
vi) You love doughnuts and freebies :) Who doesn't? Take a piece of conference history with you :)
So I think this is an extension of the regular ' friday learning series' which we have at Amazon. If a conference can do so much good, imagine having the same effect on a weekly basis. Of course because of the constraints they cannot have the "Steve Jobs" and "Bill Gates" for weekly seminars. Think it of your annual conference like the superbowl and your fridays like your regular monday night games. In no time you will have employees asking "Is it friday yet?".
i) Fuels your knowledge appetite: I think as software Engineers we constantly need to feed our insatiable knowledge appetites. This is like fuel and it is partially a responsibility of the organization that you work for, to feed your appetite. In this way the company keeps raising the bar within.
ii) Keep up or miss that train: I think this has been the 'mantra' in any tech related field. Especially in software the playing field shifts quite rapidly. If you don't keep up, someone else will and win over the market.
iii) Meet the 'software Einsteins': I think intelligence has an equilibrium effect like temperature. When you have a group of people with varying IQ's together to come up with an idea, the final output/solution will be comparable to the one with average IQ. This is specially true with the outcome of software projects.
In the same vein, meeting the 'Einsteins' in your field can certainly make you aspire to be one and make you strive better.
iv) A 'techation': Its like a tech vacation from your workplace. Its a vacation from your work and it recharges you just like your other vacation to Hawaii (minus the belly dancers...)
v) Free internal advertising: I think its a great venue for some of your internal tools and programs that never took off to get noticed and get the spotlight.
vi) You love doughnuts and freebies :) Who doesn't? Take a piece of conference history with you :)
So I think this is an extension of the regular ' friday learning series' which we have at Amazon. If a conference can do so much good, imagine having the same effect on a weekly basis. Of course because of the constraints they cannot have the "Steve Jobs" and "Bill Gates" for weekly seminars. Think it of your annual conference like the superbowl and your fridays like your regular monday night games. In no time you will have employees asking "Is it friday yet?".
Subscribe to:
Posts (Atom)