Embracing change with system-driven design