Programming vs. Software Development vs. Software Engineering
I use the terms "programming," "software development," and "software engineering" in this book. Many people probably regard these as synonyms. Here's what these terms mean to me:
- Programming = changing software =~ getting code to work. What I do when I'm writing shell scripts for myself.
- Software Development = tending a System (ambiguous link) of Humans, machines, and InformationFlows that harvests value from programming in order to sustain itself.
- Software Engineering = using mathematical and scientific principles to create software that resolves Forces, including constraints of time and budget.
This book is about all three things.