views:

195

answers:

6

Taken aback to day when I was confronted about the use of validation code used from the Csla framework. It felt like I was reprimanded for not disclosing the use of the framework to the client.

Is this not the same as using libraries such as jQuery etc?

+2  A: 

This depends on the license of the open source code you are using. Many of them require to acknowledge the use in some credits section, others require you to redistribute the source code, etc. You should read the license and act accordingly.

Sebastian Dietz
I think that goes without saying. The question is thou should this be pointed out to the client.
Shaun
+2  A: 

It is the same, I have a feeling that you would have been reprimanded for using jQuery as well. There are enterprises that frown upon the use of open source for various reasons.

They boil down to

  • The type of license and what does it force the user to do
  • The availability of support in some commercial form
  • The need to 'share-alike' the results

You should know what's your customer/employer's stance on this. If they don't have a stance, then you have to discuss on a case-by-case basis.

I usually tell people I use a lot of open source and, by seeing the response I get I know the path to follow. If they jump and scream at the mention of open source and the lack of support and whatnot, I just tend to ask for budget to buy commercial components or present good cases as to why the open source version of X is better than the commercial alternatives.

Vinko Vrsalovic
+2  A: 

It depends on the project and the kind of client and whatever contracts you had. However, for a typical consultant delivering code to a customer, I would say no it is very strange that you would be reprimanded for not bothering them with details such as the use of CSLA. That's pretty odd.

BobbyShaftoe
+1  A: 

It very much depends on the type of project and the type of client. The real problem here is that you were surprised, which indicates non-alignment of expectations. How did the client motivate its interest in Csla specifically?

mac
+3  A: 

You absolutely should acknowledge what you're using, IMO.

Some clients may have particularly strict legal requirements (whether for legitimate reasons or not - they're the client, it's not up to you to judge their laywers) and detailing any third party software you're using to create a product for them seems only reasonable.

What reason could you have for not wanting to be open with your client?

Jon Skeet
No reason what so ever. It was not hidden at all. Anyone looking at the code would see it. Licence details, comments all left within the few files used. Exactly the same was done with jQuery which was also not disclosed.
Shaun
I guess the point is not 'not wanting to be open' but to have to ask for permission for every possible library / code snippet you may use in the development of a project.
Vinko Vrsalovic
If you have a list permanently available and up-to-date, then the client can check whenever they want. You can highlight anything you think might be *potentially* problematic as well.
Jon Skeet
@Shaun: Including it in the codebase isn't as open as having a separate document which lists what you're using. That's a much more business-friendly way of working, IMO.
Jon Skeet
Thanks Jon. I'll make a point of producing just such a document. It will be used as an appendix to the main technical design documents.
Shaun
A: 

If your client needs to know or cares about which technology you use, then you should specify everything as part of the project documentation. If the choices are clearly described, then it is easier to have a discussion about them, if required. Documentation also gives you a way to ask (literally) for 'sign-off', if that is the way you work.

From your question it is not clear whether the problem was the choice of framework, or not having informed the customer.

Even on projects with minimal documentation, if the customer owns the code then I always deliver at least a High-level architecture document that includes the names and exact versions of every software component used, along with a brief description of what it is for and why it was selected. This is also the correct place to address any license issues.

Peter Hilton