I have been verbally outspoken against macroeconomics (not so much writing). Macroeconomics, that is the examination of aggregate economic data for the purpose of discovering observable phenomena, is quite distinct from microeconomics.
Despite my verbal abuses, macroeconomics does have uses. Observing these phenomena, such as the impact of interest rates or foreign exchange rates or GDP, can provide useful information.
But they are only useful insofar as the assumptions behind these aggregate measures hold; only insofar as they are used as a signal. GDP, for example, is used as a measurement for economic well-being. In a relatively free market, with a working price system and protected property rights, it acts as a pretty good indicator. Given these assumptions, if GDP rose, say, 4% over the course of a year, it’s reasonable to conclude the people who make up the economy are likely approximately 4% better off than they were the previous year.
However, once those measurements become an object of choice, then they lose all value. GDP growing at 4% due to market forces tells us important and helpful information. GDP growing at 4% due to deliberate actions taken by governments to increase that number (say, arbitrarily increasing government spending) does not tell us anything useful. If anything, it can be misleading. The signal is distorted.
This argument is the same as discussions on the distortion of price signals. A price, when determined by supply, demand, and all their components, provides valuable information on the relative scarcities of goods. A price, when it becomes an object of choice and is thus manipulated to meet some desired level (eg, minimum wage, price controls, tariffs, etc) provides no useful information. The price no longer functions as a price.
The great sin of macroeconomics is confusing this point; how often do we hear an argument along the lines of “Higher GDP is good. This action would increase GDP. Therefore, we should do it”? But a higher GDP is only useful insofar as it conveys market transactions. Anything else, and it becomes useless.