Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This question already has an answer here:

I have just landed a role as a C#/Asp.Net developer at a large software house. I have previously worked at a much smaller software house for about two years but it was a varied/mixed role there, and here the asp.net applications we have are a factor of 10 or so larger.

As seems to be the norm, I have been given the task of fixing bugs. At the moment I am just trying to understand the system. How long , in your experience , does it "roughly" take ( and is generally acceptable) for a new developer to get up to speed? It of course varies from company to company but as a general rule, when you have hired someone/have worked with someone new, how many days/weeks would it have been normal for them to get to grips with the system?

share|improve this question

marked as duplicate by gnat, GlenH7, Yusubov, Corbin March, Dan Pichelman Sep 5 '13 at 1:09

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

11  
+1 for having the courage to ask –  tjons Sep 2 '13 at 21:27
4  
Code complexity and experience matter. Up to a year. –  Rig Sep 2 '13 at 23:41
1  
Hah - I'm a little slow, but at my previous year, it took about 30 months, and one big mistake, to get up to speed, and about five years to feel I was competent. It really depends heavily on the complexity of the domain. Bottom line is - don't worry! –  James McLeod Sep 3 '13 at 1:48
1  
If a recruiter or hiring person has done their job, it should really take no more than six months to a year to get fully up to speed, unless the company has a specific goal of hiring inexperienced developers (to save money; it's a false economy, but that's a topic for another discussion) and giving them all the time they need to learn the ropes. –  Robert Harvey Sep 3 '13 at 16:21
    
What does 'up to speed' mean? Is it just 'able to fix routine bugs', or 'complete understanding of the domain'? If the latter, you might be talking quite a few years depending on the project. –  GrandmasterB Sep 3 '13 at 18:59
show 1 more comment

4 Answers

up vote 10 down vote accepted

It depends. But IMHO, it should take about a month to know your way around, and up to six months to be normally productive.

An interesting exercise, if you have time, etc: Take a part of the application, and reprogram it in another language, if you know any. Or, try reading all of the source code that you can, and write down what it does. That should help you get up to speed!

share|improve this answer
    
up to six months? I have been studying the system and i was beating myself for having spent a whole day and not fixed a single bug from the bug tracking system –  iAteABug_And_iLiked_it Sep 2 '13 at 21:43
1  
Yep. To become completely familiar with it, like you wrote it yourself, should be at least 6 months. But a few weeks to be pretty comfortable fixing bugs. –  tjons Sep 2 '13 at 21:47
3  
As I said to the first answer: This answer tries to box the question into an objective nature, IMO this is not an objective problem to solve or answer –  AndHeCodedIt Sep 2 '13 at 21:55
2  
Some bugs take days and even weeks to fix even when you already know the codebase! –  whatsisname Sep 3 '13 at 2:52
    
I work largely in agile environments where pairing is the norm and you can be productive on day one! We had a new dev start yesterday and they are already productive with the both their insights and the their code. In fact the they would have been more productive if they hadn't had to go through all the usual induction/meet n greet that one has to do on first days:) –  Chris Lee Sep 4 '13 at 21:40
add comment

The answer to this question is completely subjective. The length of time it takes a developer to come up to speed can depend on:

  1. the developer's level of knowledge and professional experience
  2. the level of complexity of the application(s) or the level of documentation for the same
  3. the ability of current application "experts" to onboard new developers. By "experts" I mean application experts or those that have domain knowledge that would help a new developer become more familiar with the application.
  4. your software methodology (yes I said it). My take is that new developers in an Agile environment will get up to speed faster or fail faster.

I don't choose to give a time because I hope that I have given enough proof that this is too subjective to offer an exact answer on how long it will take someone to come up to speed.

share|improve this answer
1  
You provided no concrete answers. May I suggest an edit? –  tjons Sep 2 '13 at 22:33
5  
No edit is needed. I provided suggestions for the questioner to make his or her best guess since this is a SUBJECTIVE topic! –  AndHeCodedIt Sep 3 '13 at 10:23
1  
I'd add "domain knowledge" to that. If documentation is scarce, a good knowledge of the industry/domain can help to ask the right questions and make the right guesses. –  Jubbat Sep 3 '13 at 13:02
2  
Strictly speaking it is not subjective. Only difficult to answer in a "scientific" way ie. plotting some measure of coding effectiveness against different variables. This is not a bad answer but I can see the value of presenting a real experience too to give op a rough idea. –  Jubbat Sep 3 '13 at 13:10
1  
I agree with @AndHeCodedIt. Any attempt to provide a concrete answer to a question like this will invariably be wrong. The only possible concrete answer would be a range, and depending on all of the variables involved, it would probably be anywhere from 'a couple of hours' to 'a year or more'. –  Eric King Sep 3 '13 at 16:08
show 3 more comments

At my current job I am the sole developer and when I started nobody had any knowledge of the code. I was given a codebase with 200k lines of code and told to implement new functionality against this codebase from day 1. It probably took a week before I was writing useful code and three months before I understood the codebase well enough to track down most bugs on the spot and give confident technical answers when questions were asked.

That being said, I came to the job with 8+ years experience in coding .NET applications, so I know the basics of C# really well (so I am fairly fast at brain compiling code). The time that it should take to hit peak coding efficiency in a new job is mostly a function of language experience, the size of the codebase, the available knowledge within the company, how well coded the product is and time.

share|improve this answer
3  
+1 for brain compilation –  marco-fiset Sep 3 '13 at 19:08
    
+1 What about the business knowledge / domain knowledge? How did you know what changes were needed in the code? –  MarkJ Sep 3 '13 at 20:30
    
Thankyou... this is a decent ballpark figure –  iAteABug_And_iLiked_it Sep 3 '13 at 21:35
1  
Good question about domain knowledge. As with everything else, "it depends". In this job I had access to people with good domain knowledge to answer my questions. For most domains, I've found you don't actually need a whole lot of domain knowledge to be productive (I've worked in POS, electricity, mining and radiation modelling) if you have people who can answer your questions. I've found that domain learning is best treated as an agile experience - learning just what you need as you need it seems to work best. –  Stephen Sep 3 '13 at 23:37
add comment

Depends. At my first job, all I got was two weeks and then I was thrown into the pool. I swam. I am not proud of my code back then, and I sure wish that someone would either give me more time or took some time to actually help me swim. But, as years went by, I apparently only got better and better.

Just to be clear, I do not condone dropping in the pool policy.

share|improve this answer
1  
i spent atleast day looking at the source code for a visual studio solution with about 24 projects, and i was expecting myself to be able to start fixing things right away...maybe i am asking too much of myself –  iAteABug_And_iLiked_it Sep 2 '13 at 21:42
2  
Yes, you are... Slow and steady wins the race –  tjons Sep 2 '13 at 21:48
2  
What TJonS said... My advice would be to start looking at the code and just ask loads of questions. Otherwise, you will lose a lot of details about how this project is structured and why. –  Vladimir Kocjancic Sep 2 '13 at 21:49
    
The only way to learn how to swim is to get in the water.... –  David Cowden Sep 4 '13 at 21:31
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.