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 
   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
        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

Reply via email to