I endorse this: build a monolith first, then decompose into microservices.

Another argument that +Martin Fowler doesn't make, but I would, is a kind of reverse Conway's Law: the architecture of the software will be reflected in the communication structures of the team. When starting a project you don't want to let people or groups go off and work in isolation.

In some sense the peeling off of microservices is a natural maturing of a project, where you think about new aspects of the project in relation to how they are different than how the project is currently. But when starting a project there isn't the shared understanding of the existing product, and you need to actively build that shared understanding.

"The review determined that despite spending $540 million for checked baggage screening equipment and another $11 million for training since a previous review in 2009, the TSA failed to make any noticeable improvements in that time."

In one test an undercover agent was stopped after setting off an alarm at a magnetometer, but TSA screeners failed to detect a fake explosive device that was taped to his back during a follow-on pat down.