Weighting:
- Assignment 1: 25%
- Assignment 2: 25%
- Exam: 50%
- Open book, 24 hrs
- Essay-style answers
4th year:
- Much more reading/writing
- Now seniors: power level now much closer to lecturer, third years look up to us
a ‘Senior’ engineer should have:
- Critical thinking skills
- Collaboration
- Communication
- Emotional intelligence
- Leadership
- Learning
- Time management
- Self-awareness
- Taking the initiative
- Interacting with clients
- Gold-plating: (offering to) add stuff that the clients don’t need or want - scope creep
- Negotiation
What does quality mean?
- Stakeholder satisfaction?
- Should quality change depending on who is looking at it?
- If clients do things the software was not designed to do, does that make the software bad?
- Modularity?
- Supposedly allows independence (see mocking)
- Amount of independence decreases the more modular the software is - at some point the costs outweigh the benefits
- Reliability?
- Every minute of downtime costs hundreds or thousands of dollars and can severely impacts the reputation of the service
- 787 MAX: bug that occurred after 8 months of continuous run-time. How do you catch such a bug?
- Ariane 5’s initial flight: reused software from previous rockets but the new hardware changed assumptions
- “If it ain’t broke, don’t fix it”
SENG401 is about critical thinking; careful consideration problems, and recommendations supported with justifications and evidence.
Informal debates with the class. The class split into two; each side takes extreme positions (makes it hard to defend, requires examples).
Debate: “You should always/never document code”.