Effective Prototyping for Software Makers