Jeff Johnson wrote:
> I am putting together a support agreement with another software company.  I
> am going to maintain their application for their customers (I have been
> doing work on the application as a contractor).  There are no written
> specifications for the application so I figured the source code could be the
> specification.  If there are any requests for reports or forms not included
> in the source code, they would be considered enhancements and not be
> included in the maintenance agreement.

I'd say that the source code is the baseline but not that it's the 
specification. You just said above that there are no specifications, so 
calling the source 'a spec' doesn't make it a spec. <g> (The old line 
about 'if you call a tail a leg, how many legs does a dog have?' comes 
to mind.)

> Here is the language I used in the agreement:
> 
>  
> 
> """Absence of Written Specifications
> 
> Often times work is performed where there is no documentation or written
> specifications and authorizations to do the work are verbal.  In the event
> there is no written specification both parties will agree upon a release
> version of the application as a benchmark of features and functionality.
> The source code of the agreed upon version will be considered the written
> specification for the project.  All reports, forms and processes included in
> the application's source code will be included in the scope of this
> Agreement and be considered "agreed upon" by both parties."""

I like the idea of specifying that a specific release of the software is 
the baseline for all future work going forward. I'm not sure you want to 
call that baseline 'specifications', since specifications has a specific 
meaning. (Well, to me it does, although others may disagree, and I've 
had customers like that - who disagree...)

> Any ideas on this approach?
> 
> By the way, I use Whil's "The Software Developer's Guide" when putting
> together agreements, but he doesn't cover what happens when you enter into
> an agreement where there are no written specs.

Oh, I forgot that chapter. Back when I wrote it, that chapter said, in 
its entirety,

  RUN AWAY!!!!!!!!!!!!!

but my publisher told me to whittle down the page count of the book so 
that chapter ended up on the cutting room floor.

Seriously, looks like it's time for a revision, or an update, or a 
something, huh?

I would say that the functionality provided by the mutually agreed-upon 
version of the app is to be used as the baseline for future 
modifications. I would also say that there is no such thing as a bug-fix 
since a bug is defined (I think this is in DevGuide somewhere) as an 
operation that doesn't function as it's defined to in the spec. No spec, 
then it's difficult to say what the operation is supposed to do. You get 
the idea.

Of course, if you start writing specs for work you perform, they should 
indicate what the current functionality is, and what the new 
functionality is, and then you can call a defect in your new work a 'bug'.

Whil



_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to