I'm exploring the CPA (Cost Per Action models work in the context of software development contracting. Specifically, how do companies typically structure their CPA agreements when contracting out software development projects? What are the common actions or milestones that trigger payments, and how do they ensure that both parties—developers and clients—are satisfied with the results.