how should engineers adapt to software 3.0 and AI agents