1 of 12

Big Ideas in �Software Engineering

Spring 2025

2 of 12

Outline

  1. Discussion of the Readings
  2. Lab 1

3 of 12

Discussion of Readings

Preface | Ch 1. What is Software Engineering?

  • The Beyonce Rule – “If you liked it than you should have put a test on it.”
  • Hyrum’s Law.

4 of 12

Discussion Questions

  1. How is Software Engineering different from Programming?
  2. Is Software Engineering actually Engineering?
  3. Why Not Just Aim for "Nothing Changes"?
  4. What is Hyrum’s Law?
  5. How should decisions be made?
  6. What do we mean by trade-offs?
  7. What does “Shifting Left” mean?

For each question…

  • Answer the question with examples from the readings
  • See if you can come up with your own examples of how this idea applies.

5 of 12

How is Software Engineering different from Programming?

  • Scale and longevity
  • Writing code v. making it useful and maintaining it.
    • Time
    • Scale
      • End user considerations
      • VC
      • Comments
      • Policies:

6 of 12

Is Software Engineering actually Engineering?

Your answers here…

7 of 12

Why Not Just Aim for "Nothing Changes"?

  • Firmware
  • Security vulnerabilities
  • Performance – new compilers that make your source code run faster.
    • New compression algos
    • New language features
  • Weigh both outcomes and decide…
    • Cost in hours / time
    • Cost of refactoring

8 of 12

What is Hyrum’s Law?

  • ANy code that you write that’s around long enough, it will be used.

9 of 12

How should decisions be made?

10 of 12

What do we mean by trade-offs?

Markers: might get stolen but having them available all the time makes collaboration easier.

Dependency – customization v. maintenance.

11 of 12

What does “shifting left” mean?

  • The earlier you can detect and fix a problem, the easier it will be to fix.

12 of 12

Today’s Lab

  • Code Editors
    • VS Code
    • Auto-Formatters
  • The Command Line + Linux
    • Why Linux? Why Vim / Emacs?
  • OS Environment Configuration (.zshrc file)
    • Where is your home directory
    • What does “sourcing” something do?