Today’s software systems are continuously becoming more complex. Main factors that determine software complexity are huge amounts of distributed components, heterogeneity, problem size and dynamic changes of the environment. These challenges are especially emphasized in distributed software systems. To cope with unforeseen dynamics in the environment and vast number of unpredictable dependencies on participating components, employing of self-organization principles at different levels in the software architecture can be beneficial. This could help in shifting complexity from one central coordinator component to many distributed, autonomously acting software components. Swarm intelligence represents a self-organizing biological system. Therefore, swarm-inspired algorithms play an important role in the design of self-organizing software for distributed systems and enable different kinds of self-organization. This chapter is based on my keynote at IJCCI 2019 with the purpose to provide a brief overview of the significance and power of swarm intelligence in coping with some typical distributed systems’ problems as well as findings about how and in which use cases the principles of self-organization can contribute to reduce software complexity.