There are many advantages to be had by using modular design and building techniques with robots.
First is the advantage of reusing resources. Some electronic, mechanical and other parts are expensive so Part Reuse is a desirable property.
If you spend time designing a system to perform a task, and you are aware (with some forethought) that you may use this component of the design again, try to modularise it. This is a concept common in software design, and applies just as well to hardware.
Modules should be designed so they has some generic properties which would allow another module of a different kind to be substituted. This allows you to upgrade, repair and modify modules easily.
While it is true that modularising might increase the complexity, it may actually help the other way. It is often easier to deal with a number of well defined connected systems, than one large unwieldy bulk of a system.
Think of bitesized peices. Designing a small power board, then a motor board, then a sensor board is easier than deisgning a power/motor/sensor board.
As well as simpler design, it will also make for simpler assembly. This menas you can build each section as the complete module. You can test them as seperate parts, and if things dont work out, you will probably only need change one modules as opposed to many.
When building modules think about how they will connect. If it is electronic or mechanical try to use readily available connectors which can be easily disconnected provided they have enough friction to hold when needed.
It will help to start with a block diagram of differnet electronic, and mechanical systems. Parts of this block diagram may be enlarged and furthar detailed in other places. This means that a larger module may well be composed of some smaller ones.
A system or larger module will have some specific parts as well as modules, dont be afraid to do that, but when you start building 5 similar robots with minor variances, then perhaps you can take the similar sections and make this a module.
Ensure that the electronic interfaces are kept as simple as possible, over-complicating modules will mean it becomes much harder to use them in future. It is often a good plan to use well known and standardised connection systems and protocols, for example RS232 Serial, or Universal Serial Bus. This goes for mechanical connections too.
If you are making a mechanical connection, for example a driving shaft, consider what forces it may undergo. Not just the rotation (in this example), but any shearing or bending stresses it may endure in normal use. This could be the difference between two sections holding well, or flying apart as the axle breaks.
Lego and other Construction Toys are excellent modular building systems. You can use them to build larger modules and furthar embody this concept.
The big disadvantage of modules is that they require a great deal more forethought, research and design. But these are key qualities a good robot builder should be fostering anyway.
Another consideration are that module interfaces may add unnecessary weight and complication. But good design should keep you away from that.
If you are building a very simple or small robot, with few parts then obviously you do not need to go full on into a module. However, as soon as you find that you need block diagrams, then you probably have modules.
Time to build your own robot! Using a Raspberry Pi with parts and some time, you can use my book to learn how to make and program a robot with automatic behaviours.