Here&#x27;s an example of equivalent operations:<p>Monolith:<p>* make db call<p>Microservices:<p>* send request<p>* receive request<p>* process request (equivalent to monolith db call above)<p>* send response back<p>* receive response<p>* decode response<p>Every single one of these steps needs to be debugged or at least tested <i></i>every single time<i></i>. Debugging itself becomes extremely difficult because you have to stop in one program and continue in another. You need a system for mocking data between the apps to reliably reproduce problems and debug them. There are problems that are silent between the two applications. You need to figure out a system for transactions. Or worse, distributed transactions. You have to deal with possibly sending out ridiculously huge amounts of data from app to app over a slow, unreliable network. You have to deal with service discovery. I could go on and on.<p>Every single one of these things adds complexity. For a small team or uncomplicated infrastructure (or both) this slows down the project immensely. That 25% that I&#x27;m quoting is from my current job and it&#x27;s not overinflated. If you have enough people to handle it and your app is incredibly complex, then I have no doubt that your claims of speeding up development are true. If you&#x27;re not at that scale&#x2F;complexity, the opposite is true.