What if we approached teaching like software engineering?