As with anything else in society, some of what you can and cannot do in software development is determined by the law. Most of the constraints in this particular domain stem from intellectual property laws: laws that make abstract things like designs, stories, or computer programs resemble physical objects by allowing them to be owned.
This chapter aims to give a brief summary of relevant intellectual property laws (enough to be able to read most software licenses), explain Free and open source software licensing, and explain how combining software from different sources works from a legal perspective.
This is far from an exhaustive resource; only laws that are relevant to our software development practice (i.e. they come up regularly at the Netherlands eScience Center) are described. If you're interested in protecting a plant, boat hull, or microprocessor mask, then you should look elsewhere. Also, there are areas of law beyond intellectual property that often show up in software development practice, like contract law and consumer law; these are also not covered here.
Of course, we'll begin with a disclaimer: Good legal advice is timely, specific, and given by an expert; this chapter is none of these. It was written by an engineer, not by a lawyer, and it's a heavily simplified overview of a very complex field. The intent is to give you an overview of the basics, so that you will know when to check whether something you want to do has potential legal ramifications. Don't make any important decisions based solely on the contents of this chapter.