One of the current tendencies of software enterprises is that of making greater development efforts in more attractive zones by decentralizing their production units. Small and Medium Enterprises (SMEs) are a very important cog in the application of Distributed Software Development (DSD). The software industries of many countries are made up mainly of small and medium software enterprises which in many cases employ this approach by taking advantage of the greater availability of human resources in decentralized zones at a lower cost. However, this leads to certain disadvantages which are mainly due to the distance that separates the teams. Coordination and communication become more difficult, thus affecting productivity and product quality. Efficient Software Engineering practices which are adapted to SME characteristics are therefore necessary. In this paper, we review the main challenges and proposals relating to DSD which may be useful in SME environments, with the principal purpose of providing a set of methods and techniques that can be applied in a generic environment.