Every day thousands of new programs come into the world. In most of the devices found in the home, kitchen, car or even on a bicycle, software is installed and running. In the world in which we are living software is present in our everyday life. Software development is an area in which we will see dynamic growth in the future. More and more devices will contain software. The simplest example is the telephone. Did anyone think twenty years ago that in today's phones there would be several million lines of software code? The demand for software will continue to grow.
The purpose of this course is to provide theoretical perspectives and describe contemporary methodologies used in the software development industry and to prove that the adapted methodology proposed by author brings the best results when properly applied for the software development process.
Many software development organizations stubbornly stick to one chosen method of software production. They use one way to ensure success in the separate software development departments of each product developed by the company. The method is often chosen from the existing methodology like XP, Scrum or Waterfall with minor changes triggered by organization specifics. Unfortunately, many companies and organizations do not analyze whether a given software development methodology is relevant to their business. This situation can be caused by a number of factors. Some of these factors include reluctance to change, lack of knowledge, lack of understanding reference points by which methodology should be analyzed, habits resulting from the corporate culture and, finally, a long history of doing things in a specific way.
Such an approach is wrong and may lead to a loss of competitive advantage. Even the most sophisticated and proven methodology (that is no doubt, for example Scrum) can lead to disaster if it is applied to certain types of products or organizations for which it does not fit.
The author’s interest in software methodologies results from his professional background and education. The sources of this course are based on the scientific literature devoted to software development methodologies and author’s professional experience. The author uses comparative and deductive methods, based on participation in many software development projects.