I've worked as a knowledge worker (software developer) for around 7 years, and I've worked for three different employers. I have just started my 5th project (in total, across all companies), and I've noticed that I feel anxious about everything I'll have to learn about the software product and project.

Generally, how long should it take for a developer to get started and become productive on a new existing project? Is it normal not to accomplish much in the first few weeks (at least in terms of deliverables)? I appreciate that all projects are different, and some software products are more complicated that others.


3 Answers 3


That entirely depends on the project, but in general, yes, you will not be as productive in the first few weeks.

Other people on the project will even lose productivity while bringing you on board. Having more people on a project is a long-term gain, short term you will be more productive not taking anyone new.

I'd argue that a project that you can work on without any learning phase is probably not worth working on in the first place.

  • Having a learning phase, doesn't mean that the person can't be doing something productive to speed that learning.
    – HLGEM
    Commented Oct 6, 2015 at 14:45
  • @HLGEM I wrote my answer expecting that the developer will do his or her best to become productive as fast as possible.
    – nvoigt
    Commented Oct 6, 2015 at 14:50

It all depends on scope and experience

Same domain

I've just changed job within one domain (ie similar technology/approach) and I'm on day 7 of my new job. My first week or so went like this

  1. Corporate induction (business-level stuff)
  2. Team induction (meet the team team, discussion of projects etc)
  3. Setup my PC and local area (fire exits, where's the kettle etc), databases and working environment
  4. Meeting with project stakeholders, discussion of another project, viewing prototype of a third project
  5. First day "at my desk", and starting to do some useful work
  6. And 7. Actual productive work

I actually consider this slow, as it took 4 days to do what I'd normally expect in two (induction and setup, followed by project discussion). But this is a large organisation so it's a little bureaucratic.

I wouldn't say that I'm now up to speed on everything, but I've got enough of the basics to start digging around and doing useful things within a specific area of the application. Over the next couple of weeks I expect to branch out into further areas of the application and get up to speed on the main core areas. The rest (niche areas etc) will come with time.

In this case I was already very familiar with the technologies and approach, so really all I'm doing is learning the project and practices.

Changing domain

If you need training up on the specific technologies you'll use, expect an extra month or two (depending on the complexity of what you're learning).

I reckon on about a month to pick up a new programming language and environment to a sufficient level to be able to do most work, although I expect to be able to do useful things during that time. That's switching platform within a similar area, though (eg PHP->C# ASP.NET), rather than switching domain. If I moved to low level firmware development, a few weeks or a month could well be an ambitious timeframe and learning the concepts would take a few weeks at least.

It can also depend on the business area you're working in: switching from one bank's IT department to another is unlikely to take a huge leap of knowledge, but moving from finance to air traffic control software development does, as you're learning a lot more of the information around what you're doing.

It all depends on your background, experience and how familiar you are with the technologies.


The time taken to get comfortable would depend on how quickly you understand the tools and production environments of the company and the ones which they are using.

Generally, it would take 2-3 weeks to go through the developer (or engineering) documentation. So, during this phase, the dev will not accomplish much, but will definitely build up the knowledge and be able to experiment with stuff in their local machine environment.

If this period is spent well, with asking questions and experimenting exhaustively, then the getting stuff together and becoming productive will be quicker.

But, in most cases, two to three weeks is usually all it takes to understand and get your head around the new project.

Not the answer you're looking for? Browse other questions tagged .