In software development we usually do a analysis phase where requirements are taken, user interfaces are designed (for software with ui), etc. After the analysis phase you know what to do, and you can estimate (aprox.) the effort and the cost for the future tasks. But usually I noticed in some companies, the analysis phase is done after the project was already sold. But I  don't know how can I negotiate a budget (more profits) and time with just a project charter or a simple analysis, at least for a complex software product. It is usually the way software development deals are done? Or is it just a bad practice? If you can share, how do you estimate budget and time for the first negotiation with the client.
How do I know how much to bill and how long a software development project will take, before analysis?
project management;estimation;project;requirements management;budget