How much code do you write?
-
That's not an unusual ratio. A study I read from the Harvard Business School (I think - it's been a while) determined that for workers engaged in tasks which require mental concentration (i.e. non-management functions) each interruption, however brief, causes a loss of twenty minutes' productivity. That includes phone calls, IMs, popping in for a quick "How are ya, whatcha doing today" visits, and especially those "Hi! Gotta minute?" drop-ins. Reviewing my own 34 years of working for a living, I can see the validity of that research. Managers are noted for such behaviors, and generally think nothing of interrupting an employee with whatever trivial thought has just momentarily passed through their craniums. A wise manager makes notes of his passing fancies, and reserves them for the unpleasant but necessary staff meetings so that productive people can plan their wasted time efficiently, and deal with trivia in scheduled time slots.
"Welcome to Arizona!
Drive Nice - We're Armed..."
- Proposed Sign at CA/AZ BorderRoger Wright wrote: productive people If only that were the way managers saw pondscum plebs like me - I'm convinced they think they are the productive ones and they're not entirely sure why we're here....so they'd better minimise the number of non-managers. Stuart Dootson 'Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p'
-
The cost varies by situation. As far as lines of code per day: it really depends what stage the project is in. In the early stages, you can write huge amounts of code. Once the application matures, lines per day will diminish considerably. A bug in a single line of code can sometimes take hours to debug and fix. I guess you can say its kind of like murphy's law :) -Josh 60% of statistics are made up on the spot
Joshua Nussbaum חיים wrote: A bug in a single line of code can sometimes take hours to debug and fix Hours? A bug in a single line of code, written two years ago by someone else, took me 4 days to debug.
"Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
sighist | Agile Programming | doxygen -
Furty wrote: Remoting, Web Services, TCP/IP sockets :confused: Sounds like a lot of wheel re-inventing. Did you find that using all these technologies was necessary? I'm asking because, I would have thought you typically choose one of those over the other. Must have been eye opening though. What's the difference between a C++ programmer and God? God knows he's not a C++ programmer : anon
The base application itself uses a combination of WebServices and TCP/IP - the former for datasets, authentication, and secure transactions, the latter for dynamic "live" data delivery to the client. Remoting is used for the licensing component. I have also created a plugin system (with full SDK) to integrate data and functionality from external providers. As it stands right now, I have developed plugins for 3 different 3rd party providers that retrieve their data using HTTP, FTP and WebServices respectively - the transport mechanism used being dictated by the company providing the data. Naturally it would be nice to standardize on a single transport method, but unfortunately this has just not been feasible/economical nor timely to a sensitive release date. Eye opening? You bet - there's large chunks of the FCL that I know better than the back of my hand now :)
-
Depends on a lot of factors. Small projects have very high lines/hour (less planning, less integration). Very large projects have a low number of lines/hour. More people also means fewer lines/hour per person because people have to communicate. Is the work cutting edge (low lines/hour) or are there lots of sources who can tell you the correct way to build it (high lines/hour). Are the developers experienced in the domain? If they've done this type of project before it means higher lines/hour. Is the code tightly integrated with itself (low lines/hour), or is it a toolkit of relatively independent pieces (high lines/hour)? The Mythical Man Month talks quite a bit about some of this. ------------------------------------------ The ousted but stubbornly non-dead leader reportedly released an audiotape this weekend, ending by calling on Iraqis to, quote, "resist the occupation in any way you can, from writing on walls, to boycotting, to demonstrating and taking up arms." adding, "you know, pretty much anything I used to kill you for."
Brit wrote: The Mythical Man Month should be required reading for anyone aspiring to manage programmers. But quite apart from the real truths it has to tell about the development process I find a perverse satisfaction in reading the descriptions of the environment. Things like the cost per month of a kilobyte of memory. Thank god those days are gone. That said, I started programming in the days when 32 K was a lot of memory (I still remember the feeling of restraints removed when I first programmed on an HP9836 with 256 K of memory (more memory than disk storage)) and thus I still give a damn about working set sizes. Rob Manderson http://www.mindprobes.net
-
Joshua Nussbaum חיים wrote: A bug in a single line of code can sometimes take hours to debug and fix Hours? A bug in a single line of code, written two years ago by someone else, took me 4 days to debug.
"Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
sighist | Agile Programming | doxygenpeterchen wrote: Hours? A bug in a single line of code, written two years ago by someone else, took me 4 days to debug. which is 96 hours ;P What's the difference between a C++ programmer and God? God knows he's not a C++ programmer : anon
-
The base application itself uses a combination of WebServices and TCP/IP - the former for datasets, authentication, and secure transactions, the latter for dynamic "live" data delivery to the client. Remoting is used for the licensing component. I have also created a plugin system (with full SDK) to integrate data and functionality from external providers. As it stands right now, I have developed plugins for 3 different 3rd party providers that retrieve their data using HTTP, FTP and WebServices respectively - the transport mechanism used being dictated by the company providing the data. Naturally it would be nice to standardize on a single transport method, but unfortunately this has just not been feasible/economical nor timely to a sensitive release date. Eye opening? You bet - there's large chunks of the FCL that I know better than the back of my hand now :)
How long you took to complete this project ? How much of it was done using vs.net ? Regards, Kannan
-
peterchen wrote: Hours? A bug in a single line of code, written two years ago by someone else, took me 4 days to debug. which is 96 hours ;P What's the difference between a C++ programmer and God? God knows he's not a C++ programmer : anon
wrong unit of measure. Maybe 96 dreadful long hours, (which is like the sea mile to the mile). But still, wrong unit of measure - since I slept inbetween :cool:
"Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
sighist | Agile Programming | doxygen -
I am currently finishing off a fairly large project, with just over 95,000 lines of C# code (excluding comments, blank lines etc). Today I was asked the question: "How long would it take a team of say 5 programmers to write this?" and I realised I actually have no idea. The project in question is a WinForms app using technologies including: Remoting, Web Services, TCP/IP sockets, lots of custom classes, pluggable components, charting, xml data files, compression and encryption. I'm guessing the answer is going to be used to guesstimate the cost of having a 3rd party company develop the product vs my cost. So here's my questions: How many line of code would a *team* developer write in a month (factoring in meetings, planning, research etc as time wasters)? Do you think lines of code per day/month is a valid performance barometric for a developer? How much would you or your company charge to write 95,000 lines of production quality code (remembering all the lines that would also go to the recycle bin)?
Like others have said, it kinda depends. What number are you looking for, best day, worst day, average over a year, average over a month, etc? Furty wrote: Do you think lines of code per day/month is a valid performance barometric for a developer? If the developer is on his own (ie. standalone programmer) and does anything besides write code, then lines-of-code per anything is not a valid metric at any level. If the developer is just a coder who takes a spec and codes it, then lines-of-code per whatever is valid up to a point. I would suggest function points as a better metric in that case. I'm sure someone has already said this, but I would much rather have 1000 lines of code that gets the job done and is done right than 10000 lines of code. If through ingenuity, experience, reuse, etc, a developer can write an algorithm with less code, he should not be penalized for that ability. Not to mention issues of how well written the code is. It took me 4 days to write and test a ~3000 line boolean evaluator/expression parser. If you consider 8 work hours in a day then I averaged a little over 93 lines of debugged code per hour. On another project, it took me 2 weeks to write 3000 lines of code or about 37.5 lines per hour. That's a big deviation in "performance". Why was there such a difference? That's easy. The first project was created based on much more experience and with very few distractions. My boss was on vacation, summer-time is slow for my employer, and I unplugged the phone. The second project, required the use of technology I was not familiar with and had a lot of report outputs. Also on the second project, I had several "planned" (and I use the term VERY loosely) meetings, my boss was in the office and someone plugged my phone back in. Anyway, so in general I don't think lines-of-code is a very good way to measure developer performance. Even function points is not that great. The boolean evaluator had far more function points than the second project, but took much less time. It's clear to me that business people in general don't understand the nature of software development. Unlike working on a factory production line where it's easy to measure performance, software development is much more complex. Just my 2 cents.
-
Brit wrote: The Mythical Man Month should be required reading for anyone aspiring to manage programmers. But quite apart from the real truths it has to tell about the development process I find a perverse satisfaction in reading the descriptions of the environment. Things like the cost per month of a kilobyte of memory. Thank god those days are gone. That said, I started programming in the days when 32 K was a lot of memory (I still remember the feeling of restraints removed when I first programmed on an HP9836 with 256 K of memory (more memory than disk storage)) and thus I still give a damn about working set sizes. Rob Manderson http://www.mindprobes.net
Rob Manderson wrote: more memory than disk storage Did you happen to save any of the 8" floppies?:)
"Welcome to Arizona!
Drive Nice - We're Armed..."
- Proposed Sign at CA/AZ Border -
How long you took to complete this project ? How much of it was done using vs.net ? Regards, Kannan
Kannan Kalyanaraman wrote: How long you took to complete this project ? The bulk of it was written in a very solid 4 months of working 14-18 hours a day - at that stage I had a very stable and functional beta. It took a further 3 months to polish, optimize and add the beta testers / test users feature recommendations. Kannan Kalyanaraman wrote: How much of it was done using vs.net ? 100%