software is hard