How do you rate a software developer? That’s a fantastic question! There are so many theories out there, and there are so many forms that HR teams try and come up with to help you conduct performance review. However, what really makes a great developer? And if you are a Software Developer, how can you improve your career today! Below is my bible for rating the developers on my team. By following these tips and rules, you will improve your status from “good developer”, to “great developer”!
In scenario A, you have a developer that pumps out code like mad, things seem to be working… then bugs start happening, you don’t know why, seems to take forever to fix! Or they fix 10 and cause 5 more! But you get a lot of code…
In scenario B, you have a developer that seems so smart! You interview him and he knows everything about everything, can speak the theory up and down! Yet for some reason, you have assigned him three features, and three weeks later, he is still working on something that should have been done in 3 days! You are so confused! He is so smart! He knows everything about generics, multi-threading, and can explain pointers to your grandmother and make her excited to want to code! Why is nothing getting done?!
In your dream scenario, you get great code! Great code is done by a great developer that is super smart, knows what quality code is, and writes code like Tony Hawk rides his skateboard. It looks so natural! He or she is almost entertaining to watch! They also get it done at blinding speeds! They know how long each problem should take, and do not get caught up in finding the world’s best solution, that has multiple threads and layers, to write a game of pong. Bugs are nonexistent because they write unit tests for themselves, and just plain can code in their sleep! These guys are worth their weight in GOLD!
See, a great developer knows that the way they see the problem and interpret the problem, is probably not the way that the problem creator intended it to be understood. This is a key point, commit this to memory! A great developer will want to understand it fully, before attempting to approach a solution. Do you understand the problem 100%, no? 99%? Go ask more questions and be sure you are 100% clear!
Look at the problem, figure out what the outcome needs to be, what kind of time you have, the quality being expected, the tools you have to work with, etc. Then, start solving the problem.
Bottom line: The higher the confidence you can have in a developer, the closer they get to being great developers! Imagine being your manager, and the weight you lift off their shoulders if he doesn’t have to worry about your code!
They find the conferences they want to go to, and send emails like “I would really love to go to Tech-Ed This Year! I will learn <insert reasons here>, and I will be able to contribute to <insert projects here>. I foresee this saving us <money/metric reasons here>. If it’s at all possible, can the company help me pay for this trip?” If someone sent me this, I would not only help pay, I would pay the entire trip!
Great developers are always attending all the user groups, like a .net user group for example, or a Java user group. They go to the “free local” meetings, and do whatever it takes to feed their brains! Do you read all the latest blogs and magazines? List your top 5 favorite development blogs right now! Can you do it? You should be able to drop them like you can do the actions to the YMCA! Stay up to date, it will stretch your mind! You will have the next big idea! You will be rewarded!
They learn new things, find out about new technologies, but don’t let anyone know about them! A good developer finishes their projects on time, but when push comes to shove, is not there for the rest of the team. A great developer is in touch with all the projects that are going on within the team, and is ready to lend a helping hand when needed! They will say things like “I noticed team A is working on <issue>, and I think I can help out, do you mind?”
Next, a great developer will send their meeting minutes to the manger, listing the date of the meeting, the topic, and attendees. Following this, you will have the action items at the top, with who is the champion of the item. Below that, you have the detailed meeting minutes. A good developer, takes no meeting minutes, says yes every time you add something to his list… and hopes that his memory will serve him well. He then later emails you to check out his changes, and you cringe as you see he forgot a few things, but got 90% if it correct. This is a HUGE WASTE of time! For no reason at all! Take Great Meeting Minutes!
Of course, this is the ideal work environment, but that’s where you want to be anyway if you are a great developer! I absolutely guarantee you, and promise you, that the better you can improve this skill, make yourself extremely teachable, make notes on suggestions and criticism, and make a point of improving them, the better chance you have at becoming greater than you have ever imagined possible! If you on the other hand, choose to think of yourself as “elite”, and have nothing more to learn, you will always be stuck where you are. If you are not growing, you are not even staying at status quo, you are dying! Grow!
However, with all those perks, comes responsibility, no question! If it’s crunch time, a great developer will suggest to you that he will come in on the weekend if needed. They will stay as late as possible and as late as is needed to ensure the job gets done! See, great developers take responsibility for their creations! Now, this is not a necessity of course, but it is the mark of a great developer. Some people just want the 8-4:30, and will be good developers, but they will never be great. Great developers are team players to the end, and view their work like art, and view their team, like a family.
A great developer dresses in great business clothes Monday to Friday. They dress for success! See, by looking the part, you become the part! Of course, if you have no skills, you will not be promoted to a manager or team leader just because you dress sharp. But if you have great skills, and dress in a suit and tie, you have just catapulted yourself up in rank, no question. The 400 dollars you will spend on a decent suit and tie will pay you back within the year. I promise you!
Bottom line: If you want to be an executive, you have to be a 9 or 10 at communication. Even when you take meeting minutes, or send out status reports, you need to communicate extremely well! Don’t just say “I fixed bug 1371″ on your daily report! Show off; explain how hard it was to solve the problem, how long, or how quick you solved it! Explain the technology you used! And explain how you will ensure the problem doesn’t happen again. Your status reports should not be a bad thing you don’t like to do! They should be an exciting part of your week where you get to show off to your manager!
Great developers also take it to the next level by not only thinking about their goals, but also visualize it! They can see exactly what they will be doing in five years, to the level of where they will be doing it. Even more, a great developer will create a detailed plan for his next year, complete with courses he will take, projects he will complete, and relationships he will build.
Bonus Tip: Passion!
One of my team members read my post and reminded me of something that every single person on my team has in buckets! Passion! Without passion in what you do day to day, you will not be a great developer, or great at anything for that matter. Lack of passion is the number one reason so many developers never become great! It is also the number one reason people do not succeed! A passionate developer will outperform even the best technical developers if they are not passionate about their job, their role, and their project. Think about it, if you have read this far, are you going to make an effort to make all the changes I listed? They seem simple, but without the passion to do these things, are you really going to commit today and be successful?
So there you have it! These are some of the key principles I am using in rating my development team during the review process. Mind you, I provide my team members with the best environment I possibly can, and in return I want great developers! And they want to all be great developers! You can use these rules to rate your developers, or if you are a developer yourself, please use this list to make changes if needed, and catapult your career past your peers!
Follow these tips, and you will get the promotion you want, the increase you have been waiting for, and you will overall be happier with your achievements! Try it out and post your results in the comments below! I’d love to hear from you! Also if have other points you think I should add, let me know!
original link : http://www.realsoftwaredevelopment.com/how-to-rate-a-software-developer/