designing software is for getting good software ideas.