I&#x27;ve personally worked on code bases at these thresholds.  Here is my resulting opinion.<p>A junior programmer can do &lt; 2k lines.  Think a stand alone command-line tool.  This is indeed something that a single person can understand.  Learning skills around modularity and consistency gets you beyond this.<p>A mid-level developer can do &lt; 20k lines.  You may have one or several people on the team, but it is still small enough that you can pretty much know the whole thing.  An example of something at this size is a typical Ruby website.  To get beyond this you need to have a pattern to your organization, and a good sense of how to create and maintain abstraction layers between different parts of the system.<p>A 200k system is small enough for a senior developer to navigate and understand without significant documentation, and can be created by a small team.  The architecture has to be clear, but you don&#x27;t need specialized documentation.  When it comes time to add or find something, the overall architecture and patterns will tell you where to look.  You may land in unfamiliar code, but you will know that it has to be there, and roughly what it has to be.  As for size, a small to medium company can run on this much code.  For example I was at Rent.com when we were sold to eBay for over $400 million in 2004.  This was about how much code we had.<p>At 2M, there are a lot of teams.  You may have specific tooling just to help you maintain sanity.  You definitely have documentation.  There are so many people doing so many things that you cannot rely on people following key conventions, instead you are likely to try to enforce them.  Examples of projects at this general size would be a browser like Chrome, a compiler like gcc, and so on.<p>What about 20 million lines of code?  These are large projects carried out by large organizations over many years.  Examples that I have seen include the current Linux kernel, Windows NT 4.0, and eBay circa 2006.  The specialized tooling that was being considered for a 2 million line project is now required, and there is a lot of it.  Documentation is extensive.  Figuring out who to talk to to find out about something can be a struggle.  And so on.<p>What about larger than that?  There are few examples that have turned out well.  The only person who I personally believe has done it well is <a href="http:&#x2F;&#x2F;research.google.com&#x2F;people&#x2F;jeff&#x2F;" rel="nofollow">http:&#x2F;&#x2F;research.google.com&#x2F;people&#x2F;jeff&#x2F;</a>, and I&#x27;m firmly of the belief that without him Google could not have become what they did.<p>As for what is fun, I personally like the 200k project size best.  It isn&#x27;t fun until you have the skills to contribute well.  But once you do, you have the complexity while still having a team small enough that you can personally know everyone who is involved.  But YMMV.