I've always maintained that it takes around 3 months, minimum, to begin to feel like you're really acing it in a new job. I'm speaking from the point of view of a software engineer, but perhaps it also holds true for any kind of more complex knowledge work, especially work that requires acquiring domain knowledge and close collaborative teamwork to do well.
The figure of 3 months came from my own experiences, and from talking to many others. I admit, this figure is probably more biased towards people at the start of their careers, since I've worked with lots of people who've been getting their first, second or third jobs in tech and listened to their experiences. Maybe with more experience, in more leadership-style roles, you can expect to feel like you're doing your best work sooner. Maybe a consultant, brought in to help with a specific problem or help with their particular area of expertise, has a different experience. I'd really be interested to know.
But for me, the figure of 3 months based mainly on:
I always found the figure of 3 months helpful, especially when talking to entry level developers, because I think it sets realistic expectations about how productive and useful you might feel at the beginning, and how much each role itself is different to other roles, and requires its own up-front learning before it can be done well.
I'm not saying that after 3 months, you should feel like you can do the job with your eyes closed. But by that point, I think people are often beginning to feel more confident that they are valuable to their employer, know what they are capable of, are more aware of the areas they are less experienced in and might need help with, and are able to work more effectively with their team.
I've changed jobs a few times during my career as as a software developer and only once did I feel like I could already do the job well on my first day. In retrospect, that was great for my employer and great for my self confidence, but not great for my personal/career growth.
On the other hand, I've moved into roles where I very acutely felt that sense of "omg they're gonna fire me before I even hit the 3 month mark", which was challenging for my self-confidence but amazingly I never got fired, and grew a tonne instead.
I think on the whole, companies understand that there is a ramp-up period involved in on-boarding any employee, at any level of seniority. It would be expected that a more senior developer needs less support to get started, as they will have seen more patterns by which they can make sense of this particular project, and this particular way of doing things, worked with more different teams and hopefully be pretty good at picking up new tech. However, even so, all the above points still apply and you still won't be doing your best work immediately.
On the other hand, I hear from a lot of developers earlier in their careers (and I include myself in this, 4 years in!) who find starting new jobs challenging, and beat themselves up over all the things they don't know straight away. That's why I find the 3-month rule helpful. If you keep the 3-month rule in your head, try to defer judgement on whether you're doing a good job or not until you pass that threshold. Then look back and ask yourself:
You still might be feeling out of your depth, but hopefully reflecting on how far you have already come, and knowing that it's totally normal and expected to feel like this, can help.
And in another 3 months time, you can expect to ask yourself the same questions, and once again see that compared to 3 months ago, you've come leaps and bounds.
You should also remember that we're not paid to just come in and bash out code. We're paid to solve the business problem, and that involves asking questions, being inquisitive, and thinking. The period we spend learning about a new company/problem/product is part of the job. We're also paid to keep up to date in our industry and make sure we're using the tools/technologies that can best solve the business problem, so it's totally normal that we're paid to be learning.
Obviously employers have a lot to answer to here as well, in terms of developing a positive onboarding experience that helps new hires do the best work they can do, at that point in time, and supports them in their ramp-up period.
Larger companies might be able to provide specific training programmes for new employees, whereas smaller companies are more likely to implement pair programming as one of the principal methods of knowledge transfer.
But it's also important to make sure that the work given to team members is suitable for someone who is learning a new codebase. Sometimes this work isn't the most valuable work but the net overall effect of easing someone into a new codebase/project in a sensible way is still greater than dumping a complicated, important problem on them.
I'd love to hear examples around really positive onboarding experiences, as I'm lacking in anecdotal experience here 😂
Sometimes I feel like this 3-month rule can come across as a bit negative. Shouldn't we all be preaching positivity and a can-do attitude? You won't be awesome until you believe it yourself, right?
But I think the alternative is more harmful, especially for people early in their careers or making career changes. There are enough reasons to second-guess yourself already, without unrealistic expectations about how quickly you can be doing your best work being thrown into the mix. If you're lucky and get a super supportive team who take great care to curate your work for you so that you're always pushed exactly the right amount, and make you feel valuable from day 1, then you're one of the lucky ones. You can carry on feeling unexpectedly competent and confident and no harm done.
But if you're like most people, working in an imperfect team in an imperfect world, you're likely to feel out of your depth at first, and if you're not prepared it can be a real challenge. You might think you're just not cut out for this work, or that you don't belong here, when actually you're just experiencing something totally normal.
I'd really love to hear other experiences around this - especially from people who've never had this feeling, or people at other points in their career on whether a similar timeframe still holds true, and how you navigate it.