![]() |
Bulletin of Applied Computing and Information Technology |
A Brief Introduction to Agile Methods and the Collective X Research ProjectBulletin of Applied Computing and Information Technology Vol 1, Issue 1 (November 2003). ISSN 1176-4120.AbstractThis document presents a definition of agility and a brief historical review of the 'Agile Movement'. As an example of agility a brief introduction of XP (eXtreme Programming) and Boehm and Turner’s Risk Based approach to development are outlined. An overview of Collective X – the application of the principles of eXtreme Programming) to a teaching environment as a research project is also discussed. Key words:Agile methods, extreme programming, teaching methods, agile learning 1. WHAT IS MEANT BY AGILITY?Agility in Software Development Circles is defined as “Methods and practices that embrace change” (The Agile Alliance 2001). Agile methods are lightweight and all Agile Methods share similarities. These similarities are:
The core concepts include:
2. A HISTORY OF AGILITYIn the beginning (when God created the world) there was chaos– no methods. Out of chaos came the age of methods and the great gurus of structured development Yourdon, Coad, De Marco (to name a few) who brought life cycles and documentation (Highsmith & Orr 2000), but still no resolution to development risk or successful delivery of projects from development into production. Risk and extreme cost have driven radical change in system development methodologies and system development environments. Today most organisations do not undertake large development projects, but buy enterprise-wide off the shelf packages like SAP or PeopleSoft. Object Orientation has become mainstream with wide use of VB, Java, and C++. Rapid Application Development (RAD) and iterative development have taken over from the traditional 'waterfall model'approach. Agile concepts are becoming recognised as ‘best practice' in software development. Agility evolved as a result of the inability of large 'heavy'methodologies to deliver projects successfully. Actual agile thinking has been around longer than we think. Iterative and incremental software development (the cornerstone of agility) has examples as early as 1970. We have seen the iterative approach in:
Agile methods as we have defined them appeared on three different continents in a short period of time during the 1990’s:
eXtreme prograaming is a good example of the amount of radical change in developing systems and can backward map off a traditional development approach. 3. AN EXAMPLE OF AN AGILE METHOD – A BRIEF DESCRIPTION OF XPOf all the agile methodologies, eXtreme Programming is the one that has had the most attention because of the leadership of Kent Beck. It has rather dominated the agile world. The roots of XP lay in the Smalltalk community, and in particular the close collaboration of Kent Beck and Ward Cunningham in the late 1980's. XP became very visible with the C3 payroll project for Chrysler. The first phase of C3 was very successful and went live in early 1997(Fowler, 2003). XP begins with four values: Communication, Feedback, Simplicity and Courage. It then builds up to a dozen practices, which XP projects should follow. In particular it emphasises testing (Fowler, 2003). The Principles of eXtreme programming are:
The Practices of XP are:
4. SOME OBSERVATIONSIn the development community there is a polarisation of views (for and against) agile methods. There is general agreement that agile methods are good for some things and not for others. It is clear that agile methods are the NBT (Next Big Thing) and as a result there is coming an evolution of processes and methods for using and teaching agile methods. 5. BOEHM AND TURNER’S RISK BASED APPROACHBoehm and Turner’s risk based approach as described in the June 2003 edition of the IEEE Computer is a new approach based on agile thinking. This approach recognises the shortcomings in both plan driven and agile approaches and uses risk analysis and the unified process framework to assess what type of development approach is appropriate for a specific project. It also makes an in-depth analysis of both the culture of the organization undertaking the project and does an assessment of team members. This results in a tailor-made development strategy depending on the type of development environment (Boehm & Turner, 2003). Using the Risk-Based Spiral Model Anchor Points Framework, the Rational Unified Process (RUP) and Model-Based Architecting and Software Engineering Process (Mbase), Boehm and Turner have come up with a five-step process (Boehm & Turner, 2003):
Included in the Boehm and Turner approach is a sample application family, which is an agent based planning system. The sample application family provides three representative applications:
For each of these applications a representative planning system (methodology) for development is provided. 6. WHY AM I INTERESTED IN AGILE METHODS?There are changing patterns for professional passing of knowledge. Agile methods focus on people and learning (or passing on bodies of knowledge) and the way people communicate. Managing this incompleteness of communication is a key concept in Agility. Core to agile software development is the use of light-but-sufficient rules of project behaviour and the use of human and communication-orientated rules (Cockburn, 2001). As part of my research project I want to explore three models of passing knowledge (Bob Barbour, personal communication, June 2003):
As part of my research project, I am very interested in understanding how people pass information from one generation to the next in an agile environment. Is the way we pass on bodies of knowledge in software engineering different? I am very interested in applying the principles of XP to a teaching “project” for which I have coined the term Collective X. The Collective X experiment will take an academic stream and apply the core principles of XP to a teaching environment. These will include pair teaching, shared repository of knowledge, continuous integration of knowledge, the concept of “on site customer” who chooses what they want to learn. The results of the Collective X experiment will form a data set for continued research into agile learning. 7. REFERENCESBoehm, B. & Turner, R. (2003). Using risk to balance agile and plan driven methods. IEEE Computer. 36(6), 57-66. Cockburn, A. (2001). Agile Software Development. New York: Addison-Wesley. Fowler, M. (2003, April). The new methodology. Retrieved June 25, 2003, from http://www.martinfowler.com/articles/newMethodology.html#N400055 Highsmith, J. & Orr, K. (2000). Adaptive software development: A collaborative approach to managing complex systems. New York: Dorset House. Larman, C. & Basili, V. (2003). Iterative and incremental development: A brief history, IEEE Computer. 36(6), 47-56. The Agile Alliance. (2001). Manifesto for agile software development. Retrieved June 25, 2003, from www.agilemanifesto.org Walker, H. (2003, April). Presentation to doctoral students. Retrieved July 12, 2003, from http://hyperdisc.unitec.ac.nz/hwalker/luncheon-series/xp.html Williams, L. & Cockburn, A. (2003). Agile software development: Its’ about feedback and change. IEEE Computer. 36(6), 39-42. Copyright
Ó
[2003] Becky Blackshaw |
Copyright
© 2003 NACCQ. All rights reserved. |