As with some software development agencies, sometimes clients describe in detail the software they want and leave it to the agency to determine project requirements. In most cases, this is accompanied by a software development cost estimation based upon estimated effort, delivery date, etc.
It’s extremely difficult to simply estimate the cost of a piece of software, but it’s relatively easy to estimate the cost of specific components and features (login screens, social sharing, gps tracking, payment processing, in-app catalog, etc.).
This may still be tricky for new teams, but if you’ve been developing software for different clients, you should have a record of how much time/effort each specific task required. This can be found in your project management software. Prudent engineering managers will keep an itemized menu to make future estimations easier.
Of course, the effort for each component can vary from one project to the next. You still have a range – and can use other project requirements to determine whether it’ll run lower or higher than average.