Interactive systems: bridging the gaps between developers and users