The process of developing software products through successive phases in a systematic way is referred to as software product development. Great deal of planning and structuring is required for developing the desired software from the conceptualization stage to its culmination.
Up Close and Personal with Distributed Software Development
1. Up Close and Personal with Distributed Software Development
The process of developing software products through successive phases in a systematic way is referred to
as software product development. Great deal of planning and structuring is required for developing the
desired software from the conceptualization stage to its culmination. The different phases of software
product development are requirement analysis, coding, designing, implementation and integration,
testing or validation, documentation, deployment or installation and maintenance.
Earlier the development of software product/products took place in house. Almost all developers worked
in the same office taking care of different aspects of software development. However, the advent of the
internet and its paraphernalia and globalization paved the way for a gradual shift from this concept. As
the companies and organizations got immense opportunities to explore and expand, they began to try out
new avenues and new possibilities. The subsequent development in the field of communication provided
the much-needed platform for realizing those possibilities. As the pervasive nature of the internet allowed
developers to work remotely, the centrally located software development gradually gave way to distributed
software development. The following are the three important characteristics of distributed software
development.
· Location
Teams involved in the development of software product/products would be spread across multiple
business worksites or locations.
· Collaboration
Since the members of the team are not centrally located, there is no face-to-face interaction between
them. But still they work collaboratively thanks to the long distance communication made possible by
tools such as emails, chats, VOIP, videoconferencing, and so on.
· Responsibility
Though team members work from different locations on different aspects of the software development, all
members of the team feel responsible for the project. Individual achievements or team achievements do
not mean anything unless and until it plays a contributing factor in the success of the project. The success
of the project is of paramount importance. Hence, no success is success if it is not project success.
Though the concept of distributed software development seems similar to outsourcing, they are utterly
two different concepts. Outsourcing is the subcontracting of a business function to a third party where the
role of the third party begins and ends with the successful completion of goals and tasks of that particular
function. However, with distributed software development, as stated above, the team members though
2. distributed are responsible for the successful completion of the entire project and not a function alone.
Recent years have seen a growing trend among companies and organizations to distribute their open
source software development process geographically. And it would continue to grow in years to come.
Also read on - Agile lifecycle management, Application lifecycle management