9.2.2 Planning and designing software solutions