by Steve McConnell (2004)