Impact of Program Design
⚠ Optional chapter. Like 27.1, this is general software-engineering context rather than FRC-specific mechanics.
System Reliability
System reliability means a program performs its intended task correctly, under stated conditions, without failure. On a competition robot, reliability isn't abstract — code that only works "most of the time" is code that costs matches. Testing under a real range of conditions (a dead battery, a jammed mechanism, a sensor that's disconnected) is what catches failures before they happen on the field rather than during a match.
Code Has Real Consequences
Software increasingly has direct impacts on people, not just abstract "users" — which is why computing professionals follow codes of ethics such as the ACM Code of Ethics, whose principles include Avoid harm and Respect privacy. Programs affect society, the economy, and culture, and those effects can be beneficial, harmful, or both — sometimes in ways their authors never intended. An FRC robot is a literal example of code controlling a real physical machine: a bug in motor-output code isn't just a wrong number on a screen, it's a real mechanism moving in an unexpected or unsafe way. This is exactly why WPILib's safety defaults exist (motors disabled unless explicitly commanded, a watchdog that stops the robot if code stops responding) — real design decisions made because the code's failures have real physical consequences.
Legal and Licensing Considerations
Programmers reuse other people's code constantly — libraries, examples, WPILib itself, code other teams have published. All source code is licensed under its author's terms, and those terms apply whether or not the code costs anything:
- Open-source code is free to use under its license — and licenses differ. Many require you to keep the author's credit and license notice; some require you to share your own changes under the same license.
- Code that isn't published as open source generally requires the owner's permission — and often payment — before you can incorporate it into your program.
Following those terms matters for two reasons. It's a legal obligation: licenses are enforceable, and ignoring one can make it unlawful to use or share the program you built. And it's an ethical one: respecting the work, and the wishes, of the people who wrote the code. That's also why every lesson in this curriculum credits its sources on its "Derived from" line. Newer questions are arising too — code produced by AI tools can reproduce licensed code, so where code came from still matters.
Ethical Questions in AI and Automation
As software takes on more autonomous decision-making — self-driving cars being the most commonly cited example — genuinely hard ethical questions arise: who's responsible when an autonomous system has to make a split-second decision with real consequences? These aren't questions with a clean technical answer, but they're worth being aware of as automation (including AI-assisted coding itself) becomes a bigger part of how software gets built.
Common Pitfalls
- Treating "it compiled" as equivalent to "it's reliable." Compiling successfully only means the code is syntactically valid — reliability requires actually testing behavior under realistic (and edge-case) conditions.
- Reusing code without checking its license. Every piece of code — open source included — comes with license terms. Easy to copy-paste doesn't mean free of obligations.
- Assuming design choices are ethically neutral. A default behavior, a permission granted too broadly, or an untested edge case can carry real consequences for whoever the software ultimately affects.
Key Takeaways
- System reliability means performing correctly under real, tested conditions — not just "it worked once."
- Software affects society, the economy, and culture — beneficially or harmfully, often beyond its intended use — which is why codes of ethics (e.g. ACM: Avoid harm, Respect privacy) exist. This is especially concrete for FRC, where code directly controls physical hardware.
- All source code is licensed under its respective terms — open source is free to use only under its license, other code needs permission — and following those terms is both a legal and an ethical obligation.
- Increasingly autonomous software (AI included) raises genuine ethical questions worth being aware of, even without a clean technical answer.
Derived from csawesome-2026: unit-3-class-creation/3.02-impact-of-program-design.md (CSA 3.2)