writing a program is for designing software