On 10/05/2011, at 5:55 PM, John Domingue wrote: > John and Paola, thanks for your comments. I understand that there are many > variables. I would like to convey to a non-computer scientist audience the > significant effort that goes into software production in order to motivate > software and component re-use. Otherwise a naive person may ask "why not just > create the software you need on demand every time?". > > If its not possible to give anything near an > order-of-magnitude-industry-average-answer or range I understand.
Suppose I go to someone who works with wood, as in fact I did this morning. Q. "I'm looking for pointers to how much time and cost is associated with projects that work with wood." A. Well, it depends on a lot of things. Can you be more specific? Q. If it's not possible to give anything near an order-of-magnitude-industry-average-answer or range I understand. A. Well, look: - producing a bag of kindling might take about 3 minutes - fixing your broken kitchen drawer might take half an hour but it will probably be a week to find a spare half hour [it did] - building you a whole new kitchen will take a couple of days [dream on] - repairing your outside wall might take us a day to assemble the materials and a day to do it, but it'll be another day to put up the scaffolding and we'll have to wait until the hire firm have some available, and then you'll need another day for the painting, and of course weather can hold it up [still dreaming] - tearing the whole tumbledown house apart and building a new one in its place will take, ooh, months, and how much money did you say you had? [This will have to wait until I win Lotto, or, since I never buy a Lotto ticket, the Greek Calends.] I could make up a similar story about building a dam: 5 minutes to drag a few twigs across a gutter, an afternoon to make an earth dam on a farm, years to make a hydroelectric dam. Last week I wrote a program that was 3 pages of code. It comes to about 120 "SLOC" (Source Lines Of Code). An industry figure is 10 documented tested deliverable SLOC per day. It took me one day to write it and another day to test and document it, so 60 SLOC per day, but that's because it was a very small program and I had written two like it before (one of which I never got working). The Microsoft Research Kernel is about 800,000 SLOC. So let's say that was somewhere between 10,000 days and 80,000 days. It's derived from Windows. Let's say it took 10 years to get to its current shape, and take a typical figure of 200 work days per year. Now this is MUCH harder code to write than my little 3-pager. The difficulty goes up faster than linearly. So if we take 800,000 SLOC / 2,000 (SLOC/year) and say that's 400 work-years, we are probably underestimating the cost seriously. These aren't your run-of-the-mill programmers; these have to be seriously expert, so £45,000 per year is probably on the low side. So it's 400x£45,000 = £18,000,000 for programmer salaries, and a common rule of thumb is to double that to account for buildings, computers, resources, other staff. To make something that big and complicated, we're probably looking at £40,000,000. I'm going to do some programming for a local company. I'll probably bill them for about 3 hours, maybe £240. I'll do it in my spare time over a week. That's not developing new software, that's making a change to an existing program, probably about 30 SLOC (but making it the *right* SLOC!). I should point out that the Windows Research Kernel is not, by today's standards, a particularly large program. You will find statements like this: indeed, modern cars have reached 7 figures when measured in lines of code, distributed across up to 100 micro-processors. -- l.hat...@kent.ac.uk That's "7 figures" as in "two to three million". That explains why I would never buy a new car even if I could afford to. One industrial project I know of took 4,000 programmers about five years and it was abandoned unfinished. So here's a range of 30 lines to 40 *million* lines. How could one give a single order of magnitude estimate for such a wide range? If you want to get people to understand "why not create new software every time", try asking them this: I want you to write down a complete, correct, unambiguous, straightforward description of how to take a date in the Gregorian calendar (year number, month number 1-12, day number 1-31), add a given number of days to it (let's say the shift is in the range -999,999 to +999,999), and report the answer in the Gregorian calendar again. Your method should assume the person who will be following it can correctly do all the usual things with whole numbers, positive and negative. If they ever manage to complete that, ask them whether they think it makes sense to do it again. Tell them about the Excel bug. > > Thanks > > John > > > On 9 May 2011, at 23:27, John Daughtry wrote: > >> And what activities are you including in "producing"? >> >> Sent from my iPhone >> >> On May 9, 2011, at 6:25 PM, Paola Kathuria <pa...@limov.com> wrote: >> >>> John Domingue wrote: >>>> I'm looking for pointers to how much time and cost is associated with >>>> producing software code. >>> >>> I am somewhat flumoxed by this question. What kind of an answer were >>> you expecting? >>> >>> The time to produce code can depend on: >>> >>> - what one is trying to build >>> - what it's built from >>> - development methodology used >>> - business model >>> - size of the team >>> - the skill of the developer(s) >>> - regulatory requirements >>> - the number of client changes accommodated >>> - the deadline >>> >>> In addition, cost depends on: >>> >>> - developer salaries >>> - company overheads >>> >>> This assumes it's software developed for profit. Open-source >>> software is different. >>> >>> The price quoted to the client is something else entirely. >>> >>> Similar "it depends" questions are: how much time and cost is associated >>> with making a film / a meal / a school ? >>> >>> >>> Paola (with help from Frank) >>> >>> P.S. The discussion of actual prices or rates could be considered >>> price-fixing and is therefore discouraged. See >>> http://www.limov.com/library/price-fixing.lml >>> >>> -- >>> The Open University is incorporated by Royal Charter (RC 000391), an exempt >>> charity in England & Wales and a charity registered in Scotland (SC 038302). >>> > > _________________________________________ > Deputy Director, Knowledge Media Institute, The Open University > Walton Hall, Milton Keynes, MK7 6AA, UK > phone: 0044 1908 653800, fax: 0044 1908 653169 > email: j.b.domin...@open.ac.uk web: kmi.open.ac.uk/people/domingue/ > > President, STI International > Amerlingstrasse 19/35, Austria - 1060 Vienna > phone: 0043 1 23 64 002 - 16, fax: 0043 1 23 64 002-99 > email: john.domin...@sti2.org web: www.sti2.org > > > > > > > >