John Domingue wrote:
> 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?".
I've been thinking about this core question. I wonder whether you're
looking for answers along the lines of:
- it took 3,000 hours at a cost of 300,000 to build [x]
- it took 300 hours at a cost of 3,000 to build [y] which reused code
I've been a software developer since 1989 and have been doing the
plans and costs for my own Internet company since 1995. If re-use
means copying code from one program to another, I am hard pressed
to think of any examples where re-used software affected the price
quoted to the client.
1) the client owns the software developed
Usually the client owns what they pay for unless the contract says
otherwise. Developers can only reuse code for future projects for
the same client.
2) is a call to an existing function "re-use"?
I've been the PHP developer for the-racehorse.com since 2006 and
have produced over 30,000 lines of code. However, I'm calling
some functions written earlier in new code? Is that counted as
3) is using an open-source CMS code "re-use"?
the-racehorse.com is built on Drupal. Drupal is an open-source CMS
core with modules (functionality add-ons) developed by the community.
Is using an extendible CMS "software re-use"?
We used Drupal for the-racehorse.com because the client wanted a site
within a few weeks. We previously built sites from scratch. The site
we launched in time - and my first module was based on an existing
module by someone else - but subsequent additions to the site have
always been constrained by how Drupal works. Some additions we haven't
been able to do at all because they'd take too long within Drupal.
The trade-off HAS ALWAYS BEEN:
a) write from scratch for more time/money for ultimate flexibility
b) customise an off-the-shelf solution for less time/money for narrow
As soon as you want to make an off-the-shelf system do something
other than what it's intended, you spend MORE time/money than if
you'd built the thing from scratch.
Given the same requirement, approach (a) and (b) could end up costing
the same in the long term.
4) Is using a CMS "re-use"?
This year I'm working as a contractor as "Drupal Developer". Drupal 6.*
is such that most site builds consist of going through configuration
forms created by third-party modules. I'm working on a multi-lingual
site but I've only written 500 lines of code and that's for managing
custom login with cookies. I don't think that spending days installing
and configuring modules in forms is development. But is it software
5) Fashion changes
Over time, people's choice of programming language evolve. PHP,
Python, Ruby on Rails, Java, you name it.
Software re-use presumably assumes a consistency of language.
My feeling is that commercial Internet projects get redeveloped
every few years.
John, I'd still like to know what kind of an answer you were
hoping for with t
> I'm looking for pointers to how much time and cost is associated
> with producing software code.
"3 weeks and 4,000 pounds" is an answer to that question. But would it
have been useful? Or is the "pointers to" key?
The Open University is incorporated by Royal Charter (RC 000391), an exempt
charity in England & Wales and a charity registered in Scotland (SC 038302).