The process of creating software, including but not limited to: - designing code - writing code - testing - debugging - documenting/not documenting code (apparently)