Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 8 years ago.
Improve this question
I was curious if anyone out there has experience getting the necessary legal documents (user agreements, privacy policies, disclaimers, etc.) for a small software business. For example if you just want to have a software 'company' that sells a few piece of software that you have written, are there cheap solutions for something small scale like that?
In Micro-ISV: From Vision to Reality, Bob suggests MegaDox.com and Soft14.com
Stationery stores will sell standard boiler plate contracts.
For software specific stuff most companies just copy the ones from bigger companies and change the name!
The suggestions by others in other answers are probably fine if you intend to stay small scale, but if your intent is grow, and particularly if you might want to have someone else invest money in the business, then it makes sense to invest in a lawyer, one who has experience in software. It doesn’t have to cost a lot if you can develop a relationship with someone interested in working with you for the long run and not running up fees on those basic documents.
By the way, either route you go, it makes sense to read the documents and make sure they fit what you’re actually doing. If you post a boilerplate privacy policy that says you do x, y and z with customer data, but in fact you do a, b and c instead, you’re creating more potential legal troubles than you’re solving.
I'm testing the waters for a crowd funded project to develop user-friendly EULAs. The EULAs themselves would be developed like open source. If a user encounters one of these "open" EULAs, then the user can feel better about agreeing it because
it's been reviewed by an open process, and
you might encounter this same EULA over and over, so you don't have to read it every time.
https://sites.google.com/a/x2xroads.com/nutshell/open-eula
I have recently been looking for the same info as the OP and found a great book which includes standard agreements for software companies which you may use as is or modify with the help of a lawyer.
The IT/Digital Legal Companion: A Comprehensive Business Guide to Software,
Internet, and IP Law Includes Contract and Web Forms
By: Gene K. Landy; Amy J. Mastrobattista
Publisher: Syngress
Print ISBN-10: 1-59749-256-6
Print ISBN-13: 978-1-59749-256-0
It also includes sections explaining issues that you need to consider for different aspects of you software business in regard to contracts, privacy and intellectual property.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I am building a 'software as a service' website that will be charging users a small monthly fee. I am considering changing the Github repository over from Private to Public. Essentially open sourcing it. Is this suicide? I would like the community to be able to benefit from the code. It is unlikely that I will accept any push request so I'm not going to gain anything in that regard. It is community based, so I think most of the value would be lost by someone self hosting it. It is for a very niche audience so I doubt someone else will start a competing hosting. I would really like the code to be in the open, but not at the expense of my idea of course. How does everyone else feel about this? What is common practice?
Conclusion, I'm keeping it closed for the time being. I may look to open source sometime after launch however.
Since you are not going to accept pushes you might as well hold on get your code stable and then publish it for others to learn and benefit from. You are still building the service, so its not going to attract too many eyeballs either.
From a business point of you, you might want to have a reasonable community around your service before you opensource it. if you are still budding who knows if its taken up by a stronger competitor. If your idea is patented its a different story.
To be honest, and this is not likely going to be a popular answer, but to myself, I would keep it closed for a period of time.
The reasons for this are simple, establish your foothold in the marketplace, build your userbase, your brand, then it gives you a mechanism to market your product further by selectively or completely open sourcing components of your system.
I say do it for both personal benefit and potential strategic benefit ... afterall, alot of software IS a service
Most open-source projects stand to provide a return in the right circumstances. Don't forget, unless you have a patent or some massive advance that is so complex and unfathomable that nobody can re-implement it .. if they want to they will anyway, so you have little protection staying closed source anyway ... even more interesting is that the open-source equivalent may well overtake your proprietary one if it garners support.
People may send you great ideas you never thought of, or take your codebase in a direction you would not have predicted. Unless you have significant value in terms of IP or strategic position tied up in the source code ... releasing it will probably do more good than harm.
Also, by being first to the open-source arena with your code, you gain control over any resulting community driven development ... if somone reimplemented your functionality and went open source ... could you compete on any front?
I know it is a cliche, but probably for good reason, but read The Cathedral and the Bazaar and the essay Open Source as a Signalling Device - An Economic Analysis which is an interesting read. Michael E. Porter's texts on competition analysis are interesting when held up against the mixed value economics and competitive forces of open source and shows how disruptive open-sourcing a product can be to competitors ... and how it can add value to your market position. Also, whilst counterintuative, it can raise the barriers to a successful entry by competitors.
More food for thought on the advantages and disadvantages of open sourcing:
What the DoD thinks of open source
Alfred H. Essa "Innovation and strategic advantage: lessons from open source" (warning, journal link)
I like to fix flaws wherever I see them, and perhaps I am one of your users. I'd rather send a patch than send a potentially nagging-sounding email any day.
What benefit are you hoping to gain from making the code open source? If you don't want the input of other developers then there are very few advantages and a whole lot of potential disadvantages.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I have a program I wrote and I have been encouraged by folks to release it into public.
What would be the best way to go about it? Just dump it on a public site and hope for the best?
How much criticism will come (on the standards, decisions made etc...) and how best to prepare for that. I have been the sole developer for this app for about two years.
And how much difference does the license (GPL, MIT etc...) practically make?
Any experiences?
A license is a good idea, even if you don't care what people do with the code - most of the time people will happily take code "as is" and if it doesn't do what they want they will just throw it away - but you never know when some idiot might try to sue you because they burned their mouth drinking a hot coffee while reading your code. You may also wish to restrict usage (derivative works etc) where someone else makes profit out of your hard work. Fron the other side of the fence, people who might take and use your product/code like to know where they stand with regard to use/copying/distribution. By asking that your name stays on the code, you can also ensure that you get vcredit for the work, and that any improvements/suggestions that happen in the wild can make their way back to you.
If you just want to give away the code wihtout much ongoing development, then a great place is CodeProject - you can release the application and write a small article describing it, and then it's up to you to decide if/when you will post updates.
If you want other people to collaborate then there are plenty of open-source websites that will support this approach.
As for criticism, you are likely to get a few mails from people who need tech support, or who want to suggest extra features. Most people are very polite though. If you wrote the program for yourself, there is a good chance that when it gets into the wild you will discover all the bits that have to be used in a particular way to work well, and all the additional options that you don't care about but which the product needs to make it applicable to a wider audience - you can get sucked into a lot of support work if you're not careful. Ultimately don't be afraid to say "no" to someone if they ask for something you don't want to support - it's your program and your time after all.
The main thing is to have fun :-)
Using a well-known, well-tested open-source license will make it easier for your users to know where they stand with regard to your code. The worst thing you can do is release your code without a license. No license means no use, since in most jurisdictions software is automatically copyrighted with no right of use or reuse.
If you don't want the project to wither away from lack of interest, you'll need to get it in front of developers. Releasing it at a large open source project site (such as SourceForge, GitHub, or Google Code) will help you get that visibility, and will provide a lot of infrastructure for managing your project. The more you do, the better the chances that others will find it, try it, and use it.
CodeProject is a good suggestion- but it really depends on the platform. Typically users of each major development platform flock to other sites for their Open Source extensions or apps. For example, lots of developers on the Microsoft stack look for things in the Visual Studio Gallery or on CodePlex. SourgeForge obviously has its own religious following as well. I would suggest promoting your new app on a site where you would go to find something like it. The Google page rank of whatever public site you use to host it will also impact how many people find it and ultimately how much criticism (constructive or otherwise) you get on the project. Licensing is always a good plan. It has been my experience that each major open source collaboration site tends to learn towards a specific licensing mechanism, so I would just do what seems to be the most popular if you don't have any specific requirements.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm preparing a short talk for a conference in august and I'm looking for open source projects that are using agile methods internally or have tried them in the past.
My goal is to talk about the things that work well and what won't work and promote the agile methods a little bit, because I think certain agile techniques are a good fit, but don't seem to be that common in real development.
So does anyone know projects that have tried agile methods and techniques before? I'd like to contact them for a few questions.
Update:
Thanks for the answers I'll contact the teams in the next weeks. :-)
(I first have to prepare the questions and an introduction...)
I am still monitoring this question, so feel free to add more answers/projects/...
Sure, Agile favors face to face communication and most open source projects have distributed members and the distance doesn't simplify communication. Does this means you can't be Agile on an OSS project? I don't think so.
First of all, I need to say that modern tools can help to reduce the communication overhead introduced by distance: skype, phone, conference calls, video conference, collaborative editors and review tools, mail, written document, (even travel), etc. If you can avoid distance, do it. But this is not a blocker issue.
Second, Agile is in my opinion not about doing pair programming or stand-up meetings... These are just practices and practice are not an end, they are just a means. Agile is more about principles: maximizing the delivered value while minimizing waste to provide the most optimal ROI (ok, the last part may not apply for an OSS project but you still want to deliver valuable working software to your users or Darwin will make you disappear). Practices from a given methodology are a way to achieve this goal in a given context but for me Agile is still more about continuous prioritization, limiting Work In Process, (i.e. short cycles and time boxes), incremental delivery, feedback loops, high quality (perceived and conceptual), Stop-the-Line culture, building a mistake proof process, just enough specifications, just enough and just in time documentation, etc, etc. In other words, not doing pair-programming doesn't mean you can't be Agile.
Back to the question, I consider Ubuntu as a good example (maybe not strictly a programming example but it involves development): fixed date release cycles (every 6 months with several shorter iterations during these 6 months), strict prioritization of things to do, no date shifting (the scope varies), working software, and all this with highly distributed contributors and plenty of technologies and languages. Check Ubuntu Development, I'm pretty sure it's possible to contact "someone".
Another example I had in mind is Sonar. At some time, they were delivering their great piece of software every month (although it seems the rhythm is not so regular anymore). You can contact the dev team to discuss with them at SonarSource.
I would have thought that the Open Source development model was quite contra that of agile. Most agile practices (pair programming, stand-up meetings, for example) require that the developers are co-located. On most FOSS projects, the developers are widely separated geographically.
The Twisted project uses XP plus some additional procedures that it calls the Ultimate Quality Development System:
Twisted Matrix Development Process
You can try to contact the XWiki Team.
http://www.xwiki.com/xwiki/bin/view/About/Team
They have a great product, it is Open Source, Vincent Massol knows very well agile practices (espeacially tests) and the team is distributed. You can try ask for some of their "secret recipes" ;-)
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 8 years ago.
Improve this question
I own a small ISV company that consist of 2 people. We sell a single product built using Microsoft web technologies (ASP/VB6, some .NET). In business for a a few years now, and with relatively stable gross revenues in the low 6 figures.
I'm considering selling the company and moving on to something else, but I'm a unclear on the best approach to to take. I'm not expecting a huge price, and I'm thinking of a gross revenue multiplier of 2 (which seems low to me... but what do I know)... so call it mid 6 figures.
Any suggestions on how best to proceed?
note: Though not directly programming related the question may be of interest to developers. I wrote the application, every single line of code (so it's not like a phb is asking). Perhaps the moderators could give the question a bit of time to see if community takes an interest.
When you say you are not clear about the best approach to take, do you mean you don't have any buyer yet ?
If that's what you are looking for, I would go first to your company's network: Who is the other person in the company, does (s)he wants to buy your share ? Do you have external investors who could be interested by buying the whole company out ? Do you have customers who could be interested (they are losing a provider after all) ? Do you have providers who could be interested (they are losing a customer) ?
If none of that works for you, I would look for the "extended" network of your company: Partner in business, if you have any (like a hardware manufacturer if you do embedded software). Look at what other software your customers are buying. If it's a very niche market and as you are sharing a customer, their other providers may be interested in buying you out for having another source of revenue with an already established commercial relationship.
Lastly, what about your competitors in this market ? If they buy you, they will mainly buy your customers' portfolio. But maybe they are willing to expand at low cost via a "merge" with your company.
It seems really like when you are looking for a new job to me: It's about using all your network first before looking somewhere else, as it is where you generally get the best results.
Best of luck.
Consider one of the "Business for sale" web sites like www.bizbuysell.com. They also have a "Find a broker" feature.
Short of that I'd talk to the professionals you use (accountant, lawyer, etc). They may know of someone who is looking for a business to buy.
One think to keep in mind is that some buyers (like me) might be interested in buying the assets of the business (the code, the client list, the good will), but not the company it self. The distinction is a fine, but important one.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
Where can I find critical analysis of OpenSource projects?
ie: in-depth analysis of methods within the source, a comparison of projects with others, and performance metrics ...
I'd like to read something about existing projects that would give me an overview of its design, implementation, strengths and weaknesses, so I can choose something to get involved in. Hopefully, there would be more than one analyst per critique.
Ohloh will give you some information, but only what can be machine counted from source code repository data, i.e.:
Languages used, how much of each
Comment percentage
Developer base (i.e. expanding over time)
However, I don't know of any service/site that does automated method analysis at the code level. Ohloh might eventually convey something like "Mostly OOP", but that would be in the distant future.
Almost all reports like the type you mention are done by hand, in a lab and testing a very targeted group .. i.e. comparing performance and coding methods of various web servers. Almost all of the time, you'll find these types of reports on the Slashdot front page, as its data that many people would be interested in seeing.
Something like Ohloh could give you a good start of what you would want to compare yourself, but I know of nothing that will do it for you with any degree of reliability.
Patrick Smacchia (author of execellent tool NDepend) posts analysis of open source projects on his blog
Some posts I remeber
Lessons learned from the NUnit code base
Analysis of Paint.NET
I would recommend you do some searching around on ohloh.net. While it doesn't offer a analysis of architecture, it gives a lot of useful statistics (language, activity, location of members, user rating, license type, news, etc) about popular open source projects. You may find this a useful tool in looking for a project to contribute to.
As an example, here is the page for NUnit: http://www.ohloh.net/p/nunit
You can always search open source project hosting sites such as SourceForge, Google Code, and CodePlex as well, although the information isn't as in depth as with ohloh.
Main problem with open source software seems to be that there is no marketing department (usually) that makes the developers move in a more user - friendly direction.
Yeah, some Linux distributions look nice on the surface but the amount of half - finished, meh - code is incredible.
I have seen amazing stuff like unfinished text editors which gave a "feature not implemented yet" warning on every second click in some distributions, etc...
Not trying to sounds offensive but your question is completely backward. You should be asking what you can do for a specific open source project. Why anyone would analyse open source projects and compare them against each other, I have no idea. I can see some benefit in looking at performance metrics for the actual software but this would be genre specific and in no terms general.
Your best bet is to go to sites like freshmeat, look at the release history, source code and developers working on projects that are of specific interest to you and ones where you can make a difference
In short:
Software can be compared against other software
Projects cannot be compared against other projects. And to do so is ill-informed. What is considered the right method by some is often seen as wrong by others.