7 ms·
Actually 1,000 lines of code a week is quite a lot. Of course it depends on language / technology stack, I'm speaking from Rails / JavaScript programmer point o
by methyl 12y ago
Actually 1,000 lines of code a week is quite a lot. Of course it depends on language / technology stack, I'm speaking from Rails / JavaScript programmer point of view.
- mathattack 12y agoThat was my reaction too. If you want to force thought and conciseness, make it 100 lines. :-)
- phkahler 12y agoYes. And this: "Your 1,000 lines should be the essential core that enables a team of programmers to write another 10,000 lines effortlessly." If you're writing critical core stuff like that, you better spend a lot more than a week on it. I can't imagine working on anything where the team regularly writes 10,000 lines a week. Prototypes by one person can easily grow at 1kLOC per week for a short time, but that's a special case.
- Bahamut 12y agoI'm a senior engineer who has written over 150k loc the past month :( . I have had to tackle some difficult problems that allowed the other engineers to keep moving. My workaround so far has been to do most of the critical work during after hours or before everyone comes in the office, since my primary role during regular hours is to keep everyone unblocked. It isn't sustainable though, and I only do it at the moment because we are in crunch mode - 'tis the startup life.
- GuiA 12y ago150 000 lines of code / (10 hours * 5 days * 4 weeks) = a sustained 750 lines of code an hour? That's impressive. Can you share a bit more about how you manage to achieve such productivity for those of us who aspire to be like that?
- cowsandmilk 12y agoI don't think he was suggesting you aspire to that. And both 10 hours and 5 days are probably underestimates of the time he is spending.
- wernercd 12y agoThat... and I shiver to think of the amount of buggy code being churned out. 150k lines of crappy code isn't something to be proud of. More code = more points of interaction = more bugs. Caveat: This is assumption based. I assume that much code is due to "quantity not quality". Boilerplate code, copy/pasta, 10 lines of actual code, 100 lines of test, etc
- RogerL 12y agoThe claim was he did this mostly while others weren't in the office. If you assume they work a straight 8 hours (and why would they at crunch time) that leaves 14hrs/day to eat/sleep/work. 10/5 isn't so unreasonable approximation But hey, another way to look at it. 150,000/30 = 5000 lines/day. At 16 hrs/day, that is 312.5 lines/hour, or 5 lines/minute non-stop. Not killing myself, and leaving the typos in that wouldn't affect compilation, I generated the code below in 36 seconds; I knew what I was going to program ahead of time - there was no thinking involved. I honestly could have typed faster, but I also didn't want to type faster than I could sustain for 16 hours nonstop. I haven't had my coffee yet, so that is a factor. So that is right at the target rate. I don't think I could maintain that 16/7 for real problem. I'm going to have to stop to think, to look up things, to make mistakes, to write tests, to document. Unless we assume I am perfect, I'm going to have to spend time debugging. This is for a stupid Euclidian distance function, whereas the claim was it was difficult, critical code. And the claim is not 16/7, it is "before/after" office hours. import math def distance(x,y): """ compute striaght line distance between x and y""" return math.sqrt(x**2 + y**2)
- hawkice 12y agoI agree with your conclusion. Worth adding this doesn't even find the two dimension distance between two points, it finds a hypotenuse length using the Pythagorean theorem and doesn't accept two points as parameters (unless they are on a number line, and in that case math.abs(x - y) would be the correct code).
- jahewson 12y agoWhat tool did you use to measure your loc?
- fsloth 12y agoWhoa. Is this code amount due to the crunch mode you are in or is it typical you need so much code to implement features?
- segmondy 12y agoSince no one in HN has called you out, let me do so. You sir, are a liar. 150k LOC? GTFOH! Seriously, how many did you throw out? BS! Being that you are on HN, you definitely have free time, what's your github?
- drylight 12y agoThat's a lot of "copy and paste 'programming'".
- coldnebo 12y agoI read the essence of that statement without the same time constraint applied to it. i.e. the type of 1000 lines you should be working on each week is the type (systems code) that enables (application) programmers to write the rest of their code effortlessly. e.g. Rails core (system) vs people who use Rails (applications).
- atmosx 12y agoStill it's not a metric. I know people that use ruby in a way that every 6-lines method of mine, could be 1 (hard to read, sometimes extremely cryptic) line of theirs. I'm not sure you can measure, not even using third party apps.
- kstenerud 12y agoEvery metric can be gamed. You need a trustful relationship for it to work.
- protonfish 12y ago1,000 lines are probably not as much as you think. For web developers, if you included HTML, CSS, JavaScript, CGI language and SQL you can easily get over 1,000 characters in a week. (That's only about 25 lines an hour for 8 hours/day 5 days/week.)
- eterm 12y agoI'd struggle to think in a job which required 25 lines an hour ever, let alone constantly for 8 hours/day! I don't think I've ever written more than a few hundred LOC in a week.
- k-mcgrady 12y agoWhat kind of projects do you work on? I'm sure the experience differs a lot between people working on important, complex legacy projects, and people developing consumer mobile apps for photo sharing etc.
- Kiro 12y agoFor me working on complex legacy projects means even less LoC since you're so afraid of breaking stuff.
- matwood 12y agoExactly. When I was working on a payroll system it could take a day to change a modify a few lines and test all the various scenarios before releasing. The cost of making a mistake was large.
- k-mcgrady 12y agoExactly, that was my point. If you're starting a simple consumer product you'll write lots of code quickly. When working on something complex you need to consider how your changes will effect every aspect of the product.
- pdpi 12y ago
- peter12355 12y agoSame here. The German Wikipedia page for LOC (http://de.wikipedia.org/wiki/Lines_of_Code http://de.wikipedia.org/wiki/Lines_of_Code) says that usually 10-50 LOCs per day are normal which would be 70-350 LOC per week.
- k__ 12y agoseems okay to me. Sometimes I hack away 100s of lines a day and sometimes I search for problems for days without writing a single (persistent) line of code. I think the longest span I went was about 3 weeks till I tracked down a bug in a legacy system and wrote about 4 lines to fix it :D
- JamesSwift 12y agoAnd sometimes I search solutions to a problem for days which results in only writing a single line of code.
- pjc50 12y agoIt very much depends on whether it's new code or maintenance mode as well. I've managed to put out 2kloc of MFC C++ over the past two weeks for an internal test app, but that's very unusual and my maintenance work is more like 100 loc a week. I think the most extreme of this was a colleague of mine years ago who spent two weeks bug-hunting and eventually removed a single wrong minus sign. Vital work that this metric is completely useless for.
- jpfr 12y agoIt's easy to change/add 1000 lines in a week. However, most code is rewritten/refactored many times. So only little of what you write in any week will be the _final code_.
- hawleyal 12y agoLOL A line of Ruby is worth a <INSERT-RAGE-HERE> lines of Java.
- deleted 12y ago[deleted]
- digsmahler 12y agoSome weeks I write negative lines of code. Those are good weeks.
- collyw 12y agoAgreed. As I get more experienced with Django (and a greater understanding of things like class based views) my code gets a lot more concise. I just updated some code from 6 months ago. If I were to replace it, it would probably be half as many lines, and more reliable.