Distributed Software Development (DSD) has recently evolved, resulting in an increase in the available literature. Organizations now have a tendency to make greater development efforts in more attractive zones. The main advantage of this lies in a greater availability of human resources in decentralized zones at less cost. There are, however, some disadvantages which are caused by the distance that separates the development teams. Coordination and communication become more difficult as the software components are sourced from different places, thus affecting project organization, project control, and product quality. New processes and tools are consequently necessary. This work presents the findings of a systematic review of the literature related to the challenges concerning Distributed Software Development, whose purpose is to identify the solutions and improvements proposed up to the present day.
We propose a small extension of the ERLANG language that allows programmers to specify contracts with type information at the level of individual functions. Such contracts are optional and they document the intended uses of functions. Contracts allow automatic documentation tools such as Edoc to generate better documentation and defect detection tools such as Dialyzer to detect more type clashes. Since the Erlang/OTP system already contains components which perform automatic type inference of success typings, we also describe how contracts interact with success typings and can often provide some key information to the inference process.
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.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.