On the beginning a little disclaimer – it’ll be neither a recipe for dummies nor extract from some wise book about self-management. It’ll be rather a small set of advices learnt based on my experience and observations. No theory – just practice.
Know where you’re going
First, you have to know generally where you’re heading to – what you want to do in the long run. You don’t have to be very specific here – no one expects you’ll exactly know your occupation in the 20-year perspective. However, thing I see so often is young developer, who answers “coding – that’s what I want to do, never thought about something different”. OK, he’ll make his way through internship, wow-I’m-learning-how-to-work-in-the-team, full blown developer, senior developer, local guru (if he’s lucky). It’ll take him 10 years. Maybe 15. And then what?
Yes, you can say that being 25 you don’t need to think what you’ll be doing when you’ll be 40. Just remember that transition to another role probably requires quite different set of skills you have to develop. It doesn’t take a week to achieve that.
How can I expect that graduate would know what he exactly wants to do? I don’t expect that. A general direction is enough and you can change it later if you feel like it. When I was starting my first job in the IT I wanted to become a designer or something. That’s enough. I knew that life doesn’t end up with being tester or even developer; however I knew also that’s a long way to go.
Know your next step
If I had to choose only one advice it’d be the one. If you know generally where you’re heading to, you also need to know where to turn on nearest crossroads. Without that, you’ll end up frustrated, struggling to achieve something and having no clue how to do that.
It’s not as hard as it looks like. In bigger organizations there’re usually some career paths, so unless you don’t know where you are going (start reading from the beginning) or where you currently are (stop reading that – it won’t help you anyway) it’s rather easy to plan the next step. In small organizations it’s a bit trickier but also easier. No formal paths, so everything is in your hands. With a bit of common sense it won’t be hard to find out what’s in your range.
Look at me – when I started my job as a tester, I knew the next step will be development. Being the developer I wanted to become a designer. This part for me is a bit weird, because it went a bit different way. However there was some time when I was fulfilling a designer role (primary goal achieved). Meanwhile I changed my general goal; otherwise I wouldn’t know my next step. I decided I want to manage team developing software – to be a project manager/program manager – depending on terminology.
OK, coming back to the next step I had to make – it was managing a team to learn some management skills. I became manager of quality assurance team. Then the next step was to build my empire… er… team to prepare myself to become the full blown program manager. Now I lead a technical team (covering development, implementations, project management and quality assurance) so I think I made it. It’s much easier when you know where to turn on the crossroads.
Learn, learn, learn
Now, when you know what should be your next occupation you need to prepare yourself to suit to the role. When you’re a developer and struggling to be a designer – look how designers work. What in your and others’ opinion they do good and where they are failures. You have a comfort to be a recipient of their work – exploit that. Want to be a manger? Look at your boss. Think how her actions affect you. It’ll be very useful when you at last become a manager.
When you know your next preferred position (and now you know it, right?), locate your teachers (those who fulfill role you want to have) and learn from them. Evaluate them – who perform well and who’s opposite. Remember you can learn from both.
If it just so happens your boss is your guru here you’re lucky. I have to admit I was and I still am very lucky with my bosses. Most of them were guys I learnt a lot from. Oh, I think I learnt a lot from all of them, but some of them were rather counterexamples to what I wanted to be.
Exploit unexpected situations
Unexpected situations just happen. Then it’s often time of changes. A manager is leaving. A guru developer is changing his division (or job). Management at last comes with idea that they should build a quality assurance team (no kidding here). Women go to maternity leave. There’s some kind of reorganization. Everything is hard to predict. Everything creates a chance for some people. That’s not always a chance for you of course, but you should think fast and act fast if you can be engaged.
I became a lead tester after a short rather informal chat with my boss while electricity was out and it was hard to do anything (no laptop then). I was done with my development work and I was testing other’s programmer code submitting tons of bugs (the code was from “tester’s dream” category). A manager asked me if I want to become a test leader. He didn’t think I could agree. Nor did I. But after a quarter of thinking I told him, that if he’d been serious I was ready to try.
Some time later I was asked if I take over the support team, after its former manager was dismissed. That was nothing what I could find on my roadmap. I was scared that I’d land there for a long time and no one would take me to project management from there. After a day I decided to take the job. It came out I couldn’t be more wrong with my fears. I learnt a lot about managing bigger teams and now I consider my experience from the support team, especially working with our enemies… I mean customers, as essential for my further career.
Work hard wherever you are
As I look at my career I was several times in a situation when my position wasn’t something I really wanted to do. Being a tester for the first time is good example here, managing support team is another. It’s so easy just to do your tasks and think how nice it would
be if you were developer/project manager/whoever you wanted to. Don’t let you think like that. Do your best wherever you are. It pays off.
When I started my first job in the IT I was one of four testers in the group. We all were told that it’s just trial and in a half of the year chances are that half of us would become developers. I’m sure I wasn’t the best developer of the group, but I was the first who was promoted. Why? For some time I used to think it was like reward for being the best tester in the group. Now I think managers just looked at my attitude and approach to tasks predicting they wouldn’t change on developer’s chair.
Similar situation was with me being the support team manager. I did my best to put in order processes team was responsible for. I think I was successful, because some of our implementations were copied in other support team. It wasn’t a task I enjoyed much, but I took it ambitiously.
Remember you’re often judged not by your potential performance in a new environment, but by your current performance with your soft skills as essentials. If you’re a quick learner no matter if you’re a tester or a developer – it’ll be one of your strengths. You’re dedicated? Cool. It’ll pay off no matter what’s your position.
One thing more here. If you don’t feel like performing well on a new position – don’t take it. But don’t cry over lost chances either.
Don’t stick to a single company
Don’t treat that as an advice to change a company. Estimate your chances wherever you are. I was never in a company which totally limited my options so that one is rather based on others’ experience. For example I was talking with recently my former subordinate. When we were working together he was a tester and struggled to be a developer. He didn’t want to wait for his chance and left. I didn’t hold a grudge against him then, what more, I think in a short perspective he did right. However he ended up in a company where there are hundreds of developers and half of them want to be managers. He’s the one of them. If I had to estimate his chances… hm… I wouldn’t wait there either. I’d look for a job where there’re any chances to be promoted.
Funny thing is that if he didn’t leave the company we worked for back then, he’d be now at least a junior manager with no doubt. He’d become a developer maybe a half a year later, but if his direction was to go to management he made a wrong decision quitting. And he makes another wrong decision not quitting now. It’s always a bit vague, but when you look at a company think about long perspective, not just the next step.
Don’t treat above advices like golden rules, which make you a ruler of the world. None of them is a single killer feature, which will guarantee you a success. Bah, gathering all of them doesn’t guarantee it either. There’s no universal solution. Above advices can definitely help you, but it’s all in you own hands.