Stop Designing Your Software Upfront

Sandi Metz of Practical Object-Oriented Design in Ruby

Sandi Metz on how OOD (objected-oriented design) and agile development simplify design requirements, promote communication and lead to better, faster, more cost-effective software.

"We should do very little design upfront."

"You have to arrange the code so that new features are easy to add."

"The longer I can hold out, the better information I get about how I should have arranged the software."

"The primary cost of developing software is understanding code that other people wrote."

"Other people read code long after we all forgot why we wrote it."