It is not effective and the opportunity costs are high.
From Greg Mankiw:
First, since most infrastructure is used locally, the proper level of spending is best determined by state and local governments rather than by the federal government. Earlier, I suggested that fiscal stimulus could be decentralized. Each state governor could be allowed to determine whether to take federal money as state aid or have it paid directly to his or her state's citizens as tax relief. I still think that makes sense.
Second, more public projects would pass a cost-benefit test if we repealed the Davis-Bacon Act. This law requires contractors on these public projects to pay "prevailing wages," which are typically union wages well in excess of what would occur in a free market. If the government paid market-determined wages for infrastructure projects, we could have both more infrastructure and less government debt. Without doubt, that legacy would benefit future generations.