Last updated: 10/29/2014
During many years of running software projects and working on our app incubator program, I have repeatedly come accross certain work habits that prevent people from being all that they can be in a job. In the short run, these habits create a very unproductive environment for everyone on the team. In the medium run, they may lead to job loss. In the long run, I believe they significantly affect one's career advancement. The goal of this short write-up is to describe these undesirable habits and promote their desirable opposites.
Particularly in the case of remote teams, it is crucial for everyone to be their best as opportunities for feedback are less frequent, and less direct. May this document help set us on the right path.
Things are quiet around you, so that means you need to pat yourself on the back. I mean, you are really good, right? Mission accomplished! Not quite so. Things may be quiet because everyone is busy. Your co-workers are busy. Your boss is busy, possibly even busy working around somebody's latest contributions to the code. Realize that your most precious asset is your time. If your current project succeeds, you win: if not immediately, then when you apply for some new job down the line. If you declare victory and just stall until you are given something new to do, it is your own time you are wasting. That hourglass won't take a coffee break, and neither will the rest of the team. Be proactive, seek out new challenges vigorously. And often, you will realize there is much further you have to go before you can declare victory.
You are doing your job. A solid 10 hours a day. Sure, there are some things in your field that you are not familiar with---but it is OK, because they are someone else's responsibility. You can just stop and wait for someone's intervention when you hit a hurdle like this, what is wrong with that? Well, first of all congratulations for being a hard worker. Seriously, this is no small feat! But if you want to advance, you have to learn; often, you have to learn on your own time. You have to look beyond your immediate job, and consider your career. A career needs investment of time, and it rewards you with more interesting work, more responsibility, and sometimes, more $money$. You career requires you to invest time. Often, your "free time". It can be worth it.
Your code seems OK. You followed the feature request to the letter, so everything must be fine, no? If there is a problem, someone else should fix it in their code. Or maybe there will be a problem and they will ask you for a change, which you will implement---again to the letter. Wait! If you introduce a problem for every problem you solve, you are not contributing! There must be a better way. It is no good to go back and forth on trivial changes! It doesn't help if you just follow requests, never thinking about the impact. It is quite possible that whoever requested you to implement something, didn't think it through completely. Start with the request but take it two steps further and think about what could go wrong. Or, start with how the whole system needs to work and see if the feature might need to work completely differently. Be a problem solver and refuse to introduce chaos.
Your counterpart delivered a feature that you'll be using in your code. Perhaps an API that you will be talking to. But, it doesn't work :-(. Something is broken. If only the API would take your slightly out of spec input and handle it... why not ask for a change in their API implementation? Free for you, and cheap for them! Well, maybe not. You will create some conversations; people will have to figure out the problem---maybe in parallel, wasting energy. Throughout this time, you will not have your fix yet. Try tackling the problem yourself! Look at their latest code and try to understand whether the problem is there, or in your work. Then go and attempt a fix! Do it yourself, and you can get back to your work immediately. Then you can suggest the fix to them (no strings attached, and if they want to fix in a better way, that is fine as well!). Or maybe the problem is in your implementation in the first place, and because you went the extra mile, nobody will be annoyed by your making unnecessary noise. Be the ultimate problem solver: step bravely beyond your domain.
I wish I could tell you that this is the ultimate truth and following my recommendations will get you ahead in your career. Often I believe this will be the case, but also often you can advance rapidly by just being a skilled salesperson. Your mileage will vary, however when I evaluate whether I would like to work with someone, the traits described here matter a lot; so take that into consideration.
©1992-2015 Hristo Bojinov. Contact: hristo-at-bojinov-dot-org. This address is subject to change.
We will not be liable for any damages anyone suffers because of using this information. While we believe all we write is correct, there may be errors. The contents of this site are provided without any expressed or implied warranty of fitness for any purpose. Use your judgement, and use at your own risk.