Things that can constrain a project

Staffing

Not enough people to do the job. Or worse the wrong people, with the wrong skills or who turn out to be a nightmare to work with. This can lead to time problems usually things start to take longer than you thought. Also this is obviously related to budget if you have a tight budget you can’t employ more staff or even enough staff but you should have seen this coming.

Budget

You might not have enough money to do the job as the specification requires. Maybe you tell the client and ask for more (this seldom works). Maybe you do things that don’t meet the spec and hope you don’t get caught and sued. Maybe you negotiate with the client for a lower specification. Maybe they will accept paint instead of wallpaper
Maybe you have to sacrifice some of your profit or maybe you let the project overrun so you can use less staff for longer.

Client Changes

People and especially clients change their minds. They want more things or different things or things they never told you about. This can affect the finish date of the project, your profit, the budget and the number of staff you need. In fact when people change their mind everything changes and usually for the worse. Try and agree to a design freeze early on if you can. This is a make your mind up date, or you will be fixing clients mind changes on the finish date. Difficult though, the client has the money so if you aern't careful you end up in conflict with them and next stop is court.

Poor Planning

If you decide to do things in the wrong order time can get away from you. If you don’t estimate how long things can take or you don’t start soon enough the budget can cost a fortune. If you don’t get the critical path right you can stop the job and waste loads of time and money paying people who can’t work.

Time

Not having enough time to do the job can really cost you money. If you have said you can hit a certain date for the project or you are being held to a certain date. Usually the only way out if time is tight is to get more people in and this costs money and takes time.
People say time is money. It isn’t but boy are they related. If time is a problem you could negotiate and extension, but you look bad. You could see if the client will settle for partial completion, Often this works better as they get at least something on the day they wanted it all. You could lie and say you have actually finished (usually doesn't work for long but often buys you a day or two if that is all you need).