Self-driving Cars: Team Projects — Hardware + Software

HW/SW co-development • Systems integration • Planning & verification • What makes autonomous teams performant?

ENG100/400 — Lecture: Team Foundations

Agenda

  • Why autonomous HW+SW teams are different
  • Simple team roles and working agreements
  • Planning: scope, slicing, estimation
  • Integration basics: interfaces, timing, safety
  • Execution: builds and basic testing
  • First-week checklist to kick off your project

Note: Advanced industry topics were moved to the optional appendix (what you might expect in industry).

ENG100 projects: what you actually need

Essentials

  • Keep repo simple: src/ (code), hw/ (wiring/parts), docs/ (README, notes)
  • Decide roles: coordinator, software, hardware, tester (people can wear two hats)
  • Meet 2–3x/week; write tasks; small commits; peer review by 1 teammate
  • Test on bench often; demo weekly; log what worked/what broke

Not required for final project

  • CI/CD pipelines, HIL/SIL rigs, ROS/Gazebo/Webots
  • Formal RACI, CODEOWNERS, ADRs, devcontainers, feature flags
  • Review SLAs, branching strategies beyond basic git
  • Production observability dashboards, SLAs/SLOs

Curious? See appendix for real‑world extras.

Acronyms used in these slides

AcronymMeaningNotes
HWHardwarePhysical electronics and mechanical parts
SWSoftwarePrograms and scripts you write
FWFirmwareSoftware on embedded devices (e.g., microcontrollers)
CADComputer‑Aided DesignMechanical/PCB design files
BOMBill of MaterialsParts list with quantities and part numbers
APIApplication Programming InterfaceContract between components
I/OInput/OutputElectrical or software interfaces
E‑stopEmergency StopPhysical safety stop/switch
PCBPrinted Circuit BoardBoard for mounting electronic components
SDSecure Digital cardRemovable storage media
FSFile SystemHow data is organized on storage
SLAService Level AgreementPerformance, responsibilities, and metrics
MVPMinimum Viable ProductSmallest end‑to‑end slice that shows value
EEElectrical EngineeringElectronics hardware discipline
MEMechanical EngineeringMechanical design discipline

Tip: Use the top‑bar Notes to jot slide‑specific reminders.

Why autonomous HW+SW teams are different

Complexity & coupling

  • Many moving parts: hardware, firmware, software, data, infra
  • Hidden dependencies and integration risk grow non-linearly
  • Real-time and safety constraints for sensing, compute, and actuation
  • Unknown unknowns; requirements shift with discoveries

Precision & reproducibility

  • Builds, environments, datasets must be reproducible
  • Versioning: code, APIs, interfaces, CAD/BOM, experiments
  • Safety, reliability, compliance constraints

People & information flow

  • Knowledge silos and the “bus factor”
  • Coordination overhead across specialties
  • Decision latency: waiting on reviews, tests, approvals

Team structure and roles

Common roles (ENG100)

Product Manager (PM)
Software/Hardware (Engineer)
Designer
Testing Engineer (QA)
  • People can wear multiple hats; rotate to learn
  • Make ownership clear

Who does what?

  • Coordinator: keeps tasks moving, runs meetings
  • Software/Firmware: implements features, reviews peers
  • Hardware: wiring, parts, safety (E‑stop), assembly
  • Testing: writes a simple test checklist and runs it

RACI Roles and Definitions

RACI Roles and Definitions
Role Definition Typical Responsibilities One per Task?
R  Responsible The doer(s) who execute the work and deliver the task or output. Complete task activities; provide status; coordinate with C and A; meet acceptance criteria. One or more
A  Accountable The owner who is ultimately answerable for the outcome and signs off on completion. Set expectations; approve deliverables; remove roadblocks; ensure resources and quality. Exactly one
C  Consulted Stakeholders who provide input, expertise, or review; two-way communication. Give timely feedback; share requirements/constraints; review drafts; help reduce risk. Zero or more
I  Informed Parties kept up to date on progress or decisions; one-way communication. Receive updates; adjust plans as needed; no approval responsibilities. Zero or more
Quick rules: Every task must have at least one Responsible and exactly one Accountable. Keep Consulted lean to avoid delays; use Informed for transparency.

RACI Matrix

RACI Matrix
Task PM Engineer Designer QA
Define requirements A R C I
Build prototype I R A C
Test prototype I C I R / A

Working agreements

Before starting

  • Agree on acceptance criteria
  • Identify dependencies; split into small tasks
  • Aim for a demoable slice

Definition of Done

  • Works on bench or in a simple demo
  • Code pushed to main with one peer review
  • README/notes updated

Cadence

  • Short standups; weekly demo; quick retro
  • Small PRs; avoid long branches
  • Use a shared task board (Issues or a doc)

Risk

  • List top 3 risks; prototype risky parts early

Repository structure & tooling

Structure (ENG100)

  • src/: code and sketches
  • hw/: wiring diagram and parts list (BOM)
  • docs/: README, notes, design, photos
  • tools/: optional helper scripts

Tooling

  • Recommended try Git; create small branches; get one peer review
  • Can use Google drive instead
  • Maintain a manual test checklist; simple logging/plots if helpful
  • Optional: a linter/formatter and a simple build script

Git workflow

Git workflow

Planning: scope, slicing, estimation

Slice vertically

  • Deliver end-to-end slices: sensing → compute → actuation → safety
  • Each slice demonstrable on bench or sim; reduces integration risk
  • Define interfaces & test points early (pins, message formats, expected ranges)

Estimate for decisions

  • T-shirt sizes or points; track capacity, not precision
  • Timebox spikes for unknowns; prototype high-risk parts

Prioritize by risk and value

  • Front-load high-risk items and external dependencies
  • Account for lead times (PCBs, sensors, machining); plan parallel work
  • Include calibration and test fixtures in scope
  • Maintain a living roadmap and definition of done

Systems integration for autonomous HW+SW

Interfaces & timing

  • Clear pinouts, message formats, and expected rates
  • Record timestamps in logs; be aware of delays
  • Simple sensor calibration steps (write them down)

Power & safety

  • Power budget, fuses, connectors, and strain relief
  • Basic cable management; avoid noise near signal wires
  • Safety: E-stop and fail-safe defaults

Execution: making progress visible

Dev workflow

  • Pick a task → small branch → small PR → quick peer review → merge → flash/test
  • Use a simple bring-up checklist; keep safe defaults
  • Log what you tried and the result

Verification

  • Bench tests with simple fixtures or simulated inputs
  • Short, supervised field tests with safety in place
  • Record basic logs for debugging; replay when helpful

Anti-patterns to avoid

Big-bang integration

  • Long-lived branches; last-minute merges
  • No contract tests; unstable interfaces

Hero culture

  • Bus factor = 1; undocumented knowledge
  • Review bypass; “works on my machine”

Tool theater

  • Fancy boards, no working software
  • Excess ceremony; unclear outcomes

First-week project checklist

Scaffold

  • Repo initialized; README with getting started, architecture sketch, wiring diagram
  • Basic task list with owners and due dates
  • hw/: BOM started; long-lead parts identified
  • Simple build/flash instructions checked by a teammate

Team & plan

  • Working agreements written (peer review, demo cadence)
  • MVP defined; top 3 risks identified; long-lead orders placed
  • Bench test checklist; safety checklist and E-stop procedure
  • Backlog of 5–10 thin slices ready; demo/retro on calendar

Appendix: simple planning table

SliceOutcomeOwnerRisksDone when…
Sensor readFW reads at target rateFWNoise; timing driftBench test + chart
Motor controlControl motor at safe speedFWCurrent draw; overheatingDemo with E‑stop ready
Data logStore to SDFWFile errorsEndurance test passes
Chassis assemblyMechanical fit verifiedHWFit/fastenersChecklist signed

Make outcomes measurable; connect to acceptance criteria.

Appendix: real‑world extras (optional)

  • CI/CD pipelines; pre‑commit hooks; static analysis
  • HIL/SIL rigs; simulators (ROS2, Gazebo/Webots)
  • Dev containers; pinned toolchains; artifacts/versioning
  • CODEOWNERS, ADRs, review SLAs, branching strategies
  • Observability: dashboards, metrics, tracing

These are useful in industry but not required for your ENG100 final project.

Takeaways

  • Integrate frequently and test on the bench
  • Keep tasks small; write things down
  • Make ownership and safety explicit
  • Communicate often; improve iteratively