[consulting] Proper Collections Procedure

Evan Leibovitch evan at telly.org
Mon Aug 21 01:26:50 UTC 2006


Gunnar Langemark wrote:

> Open Source and the aggressive business environment we work in - are 
> conflicting. We work on trust, and tend to believe in each other.


I am amazed that one of my must-have modules, "spam", is not included on 
the drupal.org site list. Why? Because it is released under a BSD 
license rather than the GNU GPL. And it is the BSD license, not the GPL, 
that is based upon trust.

What I mean by that is that developers release their code under the GPL, 
in order to legally force other developers to publicly release source to 
redistributed modifications. If developers really trusted other 
developers to do this, they could release under the BSD license (or even 
to the public domain). But since developers don't trust all other 
developers to do the right thing, they use the GPL to force them to do 
the right thing.

So I would argue that while Drupal is developed using a great deal of 
co-operation, I would not at all attribute that to "trust". In more than 
a decade of working with open source, I have not found Drupal's  bias 
against non-GPL (but OSI compliant) code -- indicated by the exclusion 
of "spam" from the mainstream module repository --  repeated elsewhere 
in the open source world outside of the FSF itself.

> In traditional business we have contracts, requirements specs., and we 
> have change requests.

Requirements, specifications and change requests are not exclusively the 
realm of proprietary software.

> This world is based on rules, law and legal rights.

Such as Drupal licensing.

> This is often percieved as TOO MUCH documentation

Only by people who are scared, or unwilling, to communicate their 
intentions to those who use their code -- and/or by people who haven't 
been in business long enough to be burned by poor or non-existent 
documentation. The fact that writing code and writing documentation 
(both contracts and manuals) can be very different skills often makes 
documentation intimidating (or at least distasteful) to coders. However 
that is no excuse to deny the importance of documentation, and the 
consequences of such denial are the kind of poor communications that 
lead to unhappy clients and bad business deals.

> If the client understands that he gets standard software

Never expect or assume that a client will know what you mean by 
"standard software" unless you formally define the term. Especially if 
your client is not focused on IT as their business, they will not 
understand many concepts that you may commonly use.

> If he thinks it's a web design project - where the visuals and 
> everything is to be exactly as in the slideshow with designs that he 
> saw - he will bother everybody with all the nitti gritti details.

If you and your client agreed on a result from a slideshow, you can 
expect the client to be upset if what is delivered does not meet that 
expectation. If what you plan to deliver is not exactly what is in the 
slideshow, then you and the client must agree on that BEFORE you start 
work, or else you will have problems later.

> So I see two conflicts here: One between the Open Source community 
> world - where trust is good - and the business world where 
> documentation is king.

As explained above -- there is heavy collaboration between open source 
developers, but I wouldn't call it a relationship of trust.  In the 
meritocracy behind most successful open source projects, you're as good 
as your code; trust has little to do with it. Certainly the GPL exists 
because developers do not trust all other developers to keep the code free.

The key issue here is money. Once you start to receive payment for your 
work, once it is no longer a hobby but a source of income, you need to 
be concerned with documentation. Obviously your government has an 
interest in your documentation of revenue work (for tax purposes) that 
did not exist when your work was voluntary. So documentation 
(record-keeping and agreements between client and contractor) becomes an 
important part of the work, and the effort spent on it must be treated 
as a necessary (if unwanted) cost of doing business.

> If the client expects to have that kind of control, and you sell him a 
> standard software project, you're bound to get into trouble.

This is why a contract -- even a simple but written "statement of work 
to be done" -- is so important. It helps certify that the expectations 
of the client and the developer are the same. What IMO is important, 
here, is that both sides agree on the result (what the client will 
finally receive) rather than the methods (whether you used "standard" 
code, slightly modified code, or written from scratch).

When hiring someone to do car or home repairs, most clients don't ask 
(and don't care) what brand of tools are used  by the technician -- or 
if the tools are custom-made -- so long as the repair done with those 
tools is of the agreed quality, speed and budget. People don't expect 
that working with IT contractors should be any different.

- Evan



More information about the consulting mailing list