Until now, high-performance has been the main objective in software for robotics and, as a result, the ad-hoc implementations have been optimized for specific hardware and platforms. Nevertheless, there is a renewed interest in designing robot control architectures to be reusable and maintainable as possible, so that existing software modules can be adapted to new platforms and requirements, thus reducing the cost and time-to-market of the complete system. This paper presents the most relevant conclusions of a joint-work between researchers from the telecommunications world (a domain with stringent requirements for distributed and real-time embedded systems) and researchers in the field of robotics. The challenge consisted of identifying the best practices and tools currently available in software engineering for embedded systems and protocols in order to define a precise methodology for the design of a high-performance and robust software control architecture of a robot. We outline the problems detected in current software developed for robots and then propose solutions to them.