designing software is for making computing more efficient