I’ve been in IT for 15 years now. For most of that time, I’ve been programming, at least on some level, even if it was “only” batch files. I’ve worked as an employee, a contractor and an independent consultant. For companies both large, medium and small, I’ve written code, built computers, networked them, trained users and written documentation for it all. I’ve done this on small and large teams as well as having been “the guy”. So I’ve been around … and there was five sentences about me.
Enough of that though, this is about you.
Now, my writing this post doesn’t mean that I “know more than you” or that I’m a “better developer” than you. I may not be; as far as technical matters go. You may speak more C# or PHP or whatever you choose there. It’s kinda irrelevant but that’s another blog post for another time. 🙂
Regardless of your programming profession, here are 10 things you simply NEED to do in order to be a GREAT developer. What (or who) defines “great” you may ask? Why your customers do of course. Which brings us to point #1.
1. Provide Excellent Customer Service
We ALL have customers. They have a needs, we figure out how to meet those needs with technology. It’s what we do. Our job for them is simple: make their lives easier by providing what they need in our software.
2. Ask Questions. Ask again and again
Clearly understanding the customer and what they need is paramount to good code and great business relationships. Make this about them. Get in their heads, learn their business and find out what problems you’re solving, not just “what they want this app to do”. THIS is the difference between an application with a limited shelf-life vs. a tool that clients will love you for.
3. Make Documentation for SOMEBODY, even if it’s you
Document what you do. Document your code. Yes. I know it can be boring. Writing, however, IS coding of a sorts. It sometimes uncovers logic-bugs before they become problematic and helps with your refacoring.
4. Don’t Write Messy Code
Speaking of refactoring. Your code, modules, functions, subs, procs, etc .. should each do ONE thing and do that ONE thing WELL. Learn that rule and live by it. If you can’t describe in your comments in no more than 3 sentences what a slice of code does and why; consider refactoring to smaller chunks.
5. Testing! Testing! Testing!
How many times have you heard “developers don’t test”? A lot? A whole lot? It goes without saying that this is HUGE thing that, if you do it, you’ll stand out as a great developer, even among other developers.
6. Debug! Don’t Guess
I’ve seen this time and time again. Developers don’t think through the problem or even get all the facts before they start changing code to “try something”. Sometimes this gets the problem to go away. Absolutley. But do you understand the code, why the problem happened and how to KEEP it from happeing again? Nope. Learn to debug. Slow down (at first) and figure out what’s going on. Have a set of repeatable steps that help YOU run down problems. Which brings me to my next point.
7. Develop your own personal SDLC
And before you ask .. why yes I do have one. It even has a cool name; RAPIER. I have it on Evernote so that its with me wherever I go. I modify it as I need to – as my experiences change and as I grow. You should do a similar thing. Creating your own persona SDLC takes the emotion out of a stressful debugging situation for you. And it helps give you measureable data to share with your customers to tell them where things are at. I’ll post mine (in it’s current state) as a free e-book but for right now think of some steps you might want in your own.
8. Think Modular and Reusable
This goes along with refactoring and messy code however, reusability is really about you and your sanity. Want to help meet that NEXT project deadline? Want to have more time to make your NEXT project better in a way that you normally don’t have time for? Then start with THIS project, making some reusable code for yourself (and others).
9. Write code for others, not yourself
Five years from now, the code you’re working on right now, you won’t remember anymore. Likely you’ll be in another company. Someone else will have this problem. Dont’ make it worse for them by writing crummy, undocumented spaghetti code. What goes around, comes around, even in the tech-world.
10. Write tools/libraries/personal wiki, etc for others (and yourself)
Organization is a great thing to have as a great developer. Need a widget for feature X? Pull it from your toolbag and liberally apply it to the problem at hand. Plumbers and carpenters don’t forge their tools on the jobsite. They already have them or they’ve made specialized ones over the years to fix a certain situation to make THEIR lives easier. Works for me! Let’s do the same with our tools!
Bonus
Ok this list actually goes to 11 … I just couldn’t leave this part out.
11. Develop relationships, NOT to-do lists
All business is a people business. Maybe even especially in IT. Whether you’re a developer sitting alone in a room, coding for the department in the next room/across the country, or you’re part of a huge team writing the next big thing .. this is a relationship business.
The key to all of this is building a repertoire with your clients. Run your cubicle like its your own private company and everyone is your client, and you’ll be a person that is noticed as an excellent employee