Download presentation
Presentation is loading. Please wait.
Published byKelly McCarthy Modified over 9 years ago
1
An Analysis of the History of Classical Software Development and Agile Development Li Jiang School of Computer Science, The University of Adelaide, Australia Armin Eberlein Computer Engineering Department, American University of Sharjah, UAE
2
Outline Outline Introduction Historical Analysis of the Practices Used in Classical SE and Agile Development Historical Analysis of the Principles used in Classical SE and Agile Development Historical Analysis of the Technological Context of Classical SE and Agile methods Historical Analysis of the Technological Context of Waterfall model Historical Analysis of the Technological Context of SASD Historical Analysis of the Technological Context of Agile Development Conclusion and Future Work
3
Introduction (1) Significant effort has been invested over the last decades in identifying good practices, models and methods for efficient software development. A large number of methodologies has been developed : 1) Classical SE methodologies: often referred to as heavy-weight or plan- driven which require upfront requirements definition e.g. waterfall model and the spiral model, Larger frameworks, such as the CMM is generally considered in this category, 2) Agile methodologies: They are often called light-weight or agile. This category includes e.g., (Extreme Programming) XP and Scrum, which follow the 12 agile principles These two categories appear to have conflicting ideas and are supported by two groups of proponents that have rarely engaged in constructive discussions.
4
Introduction (2) With the continuous growth of size and complexity of software applications, it is very necessary to systematically examine the differences and relationships between the two categories and their associated development philosophies. Our initial research shows that there are multi-dimensional relationships between SE methodologies. We have proposed a five dimensional framework to help analyse the relationships Historical, Contextual, Analysis by Analogy, Phenomenological, and Linguistic Focus of the paper
5
Historical Analysis of the Practices Used in Classical SE and Agile Development (1) Agile methodologies has its root in traditional engineering disciplines The terms “agile” and “agility” can be traced back to the manufacturing industry “lean development” emerged in manufacturing in 1991 with the aim of eliminating waste, amplifying learning, delivering as fast as possible and empowering teams the term “agile manufacturing” was even coined around that time. It therefore appears that the. The idea of iterative and incremental development used in most agile process models can be found as early as the 1930s a quality expert at Bell Labs used this practice to improve product quality.
6
Historical Analysis of the Practices Used in Classical SE and Agile Development (2) A lot of Agile practices can be mapped to traditional software engineering practices or other engineering practices. Gladden and Gilb have proposed the practice of “delivering working software early” in the early 1980s to address the issue of late delivery of software products resulting in customer dissatisfaction. These practices can be directly mapped to the agile practice “frequent delivery” and “continuous integration” As one of the principles in agile modelling, the idea of using a prototype of working software as the primary measure of progress can be found in manufacturing as early as 1982 Gladden stated that a physical object conveys more information than a written specification. Prototyping has been extensively used in classical SE for feasibility studies and elicitation of requirements. For instance, Rapid Application Development (RAD) is a development approach that is based on this practice.
7
Historical Analysis of the Practices Used in Classical SE and Agile Development (2) A lot of Agile practices can be mapped to traditional software engineering practices or other engineering practices. Joint Application Design (JAD) is a practice used in IBM Research Labs in Toronto in the late 1970’s. The fundamental objective of this practice is to get quality business requirements through active participation of stakeholders. Some ideas used in JAD are similar to stakeholder collaboration used in Dynamic Systems Development Method (DSDM) [20], another representative of agile methodologies. The importance of having a work environment that helps improve communication among team members has been discussed by Weinberg in 1971. He argued that face-to-face communication can help exchange information efficiently. The practice in XP of having an “open workspace” also emphasizes the importance of face-to-face communication. He argued that face-to-face communication can help exchange information efficiently. The practice in XP of having an “open workspace” also emphasizes the importance of face-to-face communication.
8
Historical Analysis of the Principles used in Classical SE and Agile Development (1) A lot of principles proposed in the traditional software process model share the same or similar values with the principles of Agile, e.g. Waterfall model: A designer “must communicate with interfacing designers, with his management and the customers” and needs to “maintain customer involvement in specification and certification”. Agile methods “Active user involvement” and “stakeholder collaboration” in DSDM, and “On-site customer” in XP. “using better and competent people in software development” is one of the prominent principles of agile Shares the same values with the practices of Many principles in a lot of classical SE literature, e.g. Prof. Dijkstra addressed the exact issue in his Turing award presentation in 1972: The Humble Programmer.
9
Historical Analysis of the Principles used in Classical SE and Agile Development (2) Pair programming [XP] Inspections [FDD] Regular build schedule [FDD] Planning game [XP] Inspect code Examples of Classical Software Engineering Practices Software Engineering Principles Examples of Agile Practices Peer review of individual work [C] Code should be subjected to a simple visual scan by a second party who was not involved in writing the original code [W Code should be subjected to a simple visual scan by a second party who was not involved in writing the original code [W] Determination of plans [S] Identification and resolution of risks during the entire software development process [S] Revise incremental plans for new requirements and respond to schedule and budget changes [C] Risk management Identify and manage uncertainty
10
Historical Analysis of the Technological Context of Classical SE Technological context of the Waterfall Model The programming languages were inefficient and no document management systems were available Hardware consisted of mainframe computers with slow CPUs, very limited memory, and electronic storage space was expensive Project type and knowledge of SE: large, long-term projects, big team, and limited understanding of the nature of software engineering Project management strategies to deal with the issue well-defined development phases and some basic SE principles Requirements are contracted, and are not supposed to change very often Technical writers would be hired to handle the large amount of documentation required for the project. Having well-defined requirements documents was an important means for effective communication among developers in big teams. A librarian would keep track of code libraries and other paper documents It is Thus, Waterfall is considered suitable within the technological context
11
Historical Analysis of the Technological Context of SASD Thus, SASD is considered suitable within the technological context SE methodologiesTechnological ContextType of projects Structured programming Modularization & information hiding Languages: third generation language, e.g., C, FORTRAN, COBOL Tools: o Compilers run on microcomputer o Unix system, DOS o Some text editors for program languages o Some tools provided isolated support for single activity, like editing programs, debugging Microcomputers and workstations are available Storage space is still very limited Other hardware facilities are available such as various monitor, printers, interfaces, etc. Software projects increase size and complexity. Information systems increase size and complexity. Computer games Large number of software projects of medium size and complexity 1970-1979
12
Historical Analysis of the Technological Context of Agile Development Technological context of the Agile Methods Very powerful computer and large amount of storage space are easily available Network facilities offer tremendous capabilities of solving both technical problems and communication problems. Very powerful OO languages, such as C++, Java and J2SE techniques Internet and Web technologies are widely available Visual programming technologies and highly interactive GUI and IDEs help design interactive user interfaces and allow the fast implementation of prototypes. Project type and knowledge of SE: Large portion of projects are small, short-term projects, and the size of most of software companies are small or with small teams dealing with different small to medium projects Unclear or unavailable requirements and high constraints of budget and pressure of time to market are common characteristics of large portion of projects Overall, the team has better knowledge of software engineering and the developer usually get better training in software development. Thus, Agile is considered suitable within the technological context of many projects
13
Conclusion and Future Work (1) Conclusion All SE methodologies still have significant limitations It is worth to investigate the origin of these methodologies, the philosophy behind the methodologies, and the technologies and social environment which supported the generation of these methodologies. Research into the historical links between classical SE methodologies and agile methodologies can help us understand the relationships between the practices in the two development philosophies. There is significant evidence that practices used in SE methodologies and in agile methodologies have historical links. Moreover, many practices in both approaches have roots in other disciplines as well as in traditional engineering disciplines An analysis of the fundamental principles behind some practices used in agile methodologies shows that the same principles are used in the practices of classical SE methodologies, The technological context has a significant impact on the emergence, evolution, use and change of methodologies.
14
Conclusion and Future Work (2) Future work Analysis of Classical SE and Agile methods from other dimensions to explore inherent complementary relationship between the methodologies in the two streams: Contextual, Analysis by Analogy, Phenomenological, and Linguistic Provide general guidelines for using methodologies in the two streams based on the results of the research discussed above.
15
Thank you!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.