Reliability == Success
When working in the software development field, it doesn't take long to find out how small your world is. Due to the smallness of this world, it is important to be aware of what your reputation is. If you know me at all, you know that I am not one to toot my own horn. Recently, however, when talking to recruiters and colleagues I have heard some words get thrown around like "Pro", "Hustler", "Senior", "A-team" and even "Rockstar." I have also been a part of a few conversations where the people involved have said that it is really hard to find good developers because there are so many that just aren't reliable. They will start a project and just fall off the face of the map. Whether it is due to finding a better project, personal life problems or a nervous breakdown, who knows. This got me to asking myself "Is reliability all it takes to be successful? Is the bar really set that low?"
Now, first let me define what my idea of being successful is. It doesn't really have anything to do with how much money you make. It has more to deal with your reputation. Do people enjoy working with you? Would they give you a recommendation? Are you the person that someone thinks of when they hear about an open position that you would be a fit for? Would people want to help you out if you were to fall on hard times? If you answer yes to most or all of these questions, you should consider yourself successful. In a lot of cases, people that answer yes to all of these questions tend to find themselves with more opportunities. That, in turn, can lead to higher pay.
Once I started thinking about the question that I asked myself above, I reflected on my past jobs. I focused on the ones where I considered myself successful. The first one that came to mind was my summer job during high school and college. I worked for the Parks Department in my hometown. It was a popular summer job for people in that age group and it was actually difficult to get unless you knew somebody. My sister worked there so she vouched for me. I worked there for a few years and eventually found myself driving the "Big Mower" that was used for the nice baseball and soccer fields. In my last year, my boss told me "You are my best employee, bar none." He said that I was the first person to drive the big mower for an entire summer and not seriously break it. I had gone two summers without breaking it. It wasn't that I did an exceptional job at mowing. I frequently got stuck in the mud and I scalped and rutted the hell out of some of those fields. I just showed up on time, got my route done, and didn't break anything (serious).
After I graduated college, I landed a job writing exams for a company that produces training for software developers. It was my job to watch the videos and come up with questions for the review tests that make sure the student was paying attention. It started as a contract position to tide me over until I found a full-time developer position. I watched the videos and wrote the questions. A lot of the time they were taken word for word from the slides shown in the videos. Yet, I still received many kudos emails for getting them done and on time. The company liked me so much that they ended up hiring me full time to do QA for their courseware exercises. I eventually ended up doing in-house tech support, customer support, phone system administration and network administration. See what I mean about leading to other opportunities?
Since I have become an Android Developer, I have found myself with a fair amount of opportunities. Almost all of them have come from recommendations by other people that I have worked with. I don't consider myself a Guru or an Evangelist. I write code. It's not the most elegant or inspiring code but it does what it is supposed to do. I show up to meetings, report my progress and report problems early. I have found success because I show up on time, I am responsive and I get my work done.
After reflecting on my past experience, I have come to the conclusion that in order to be successful, you just need to be reliable. Be there on time, be available and get your work done. You don't necessarily need to do it well, just get it done. If you know that you can't or won't do something, don't agree to do it. Employers want to be able to depend on you, know what you are doing and predict what you are going to do. Having to keep tabs on you, replace you or fix your work is a waste of everyone's time. A lot of times, that wasted time seems to hold more value than the final product. So, if you want to be successful, show up, communicate what you are doing and get it done. If you want to be VERY successful do your work well.