Oblikovalec programske opreme s pomočjo tehnik in orodij za raziskovanje in načrtovanje ustvarja temelje za izdelavo programske opreme. To vključuje izvajanje raziskav, izdelave celotne strukture in vizualnega oblikovanja ter nenehno testiranje uporabniške izkušnje. Te metode se uporabljajo za ustvarjanje delujočega izdelka, ki na tak ali drugačen način olajša uporabo le teh.