(This is a work-in-progress. Corrections, insights, ideas are most welcome!)
- As soon as you release a major revamp of a piece of FLOSS software, the previous version will immediately become infalliable and perfect in every way to your user base.
- In the absence of information, users assume the worst. You'll want to try to give them a heads up on major changes as best you can, with open and accessible communication.
- However, when you provide information, most users will not read it, and will instead behave as if there is an absence of information.
- While the entire point of free & open source software is that the source code is available, the vast majority of people using the software will not read the source.
- Having the source means that there is absolutely no limit to what you can choose to do with the software. However, it's easier to whine in online forums, complaining that the developer has 'limited your freedom' or 'removed your choice' rather than actually exercising the freedom & choice you will always have to modify the source.
- Those few who actually do read the source will complain that it is not written in the language of their choice.
- These folks will not, however, fork the code and rewrite it in the language of their choice.
- Those few who actually do read the source will often not pay attention to or read the license of your code.
- You will be told that all free & open source software must be developed "the UNIX way," but nobody's quite sure what exactly that means.
- If you've made changes to the software that are unpopular, you will be told that you've violated this principle.
- Think twice before ever adding a feature to a piece of FLOSS software. Only add a feature if there is no other way and you are absolutely, 100% sure that feature is in scope and needed.
- If you ever need to remove that feature, you will experience a lifetime of pain from your userbase in the form of epithets about how Linux is about choice and removing features is not allowed.