BUILDING CONTEMPORARY WEB SOFTWARE : A DEVELOPER'S GUIDE