I've ran across this topic on 3 occasions in the last week in various forms: online, with a team, and on a LinkedIn board. Wow, must be something in the air. So here's the short version: 1) Agile relationships with customers boil down to Time and Materials. You're there working sprint-by-sprint doing stuff. Each sprint the customer and the team agrees on what it can do. The team decides, but the customer can always f…
I was taught by my software engineering professor to estimate software projects by size first and then to transform that into effort, then from effort into cost/schedule. He emphasised, like you do, that they need to be treated separately.
In his day size was projected in kSLOC or function points. These days you'd use story points. It's the same principle, in my opinion.