Applying Agile Methods in Rapidly Changing Environments
Peter Kutschera, Am Fichtenberg, Steffen Schäfer · 2002
Software development approaches have changed significantly throughout the last decade . Until the recent emerge of e-business, software development projects were mainly targeted at the implementation of well-known business processes. Projects took typically several months or even years to complete. After completion, only those projects were considered successful which implemented all of the given requirements correctly and completely. Due to the perception that it is economically much cheaper to detect errors in the project’s life cycle early, a ‘classical’ software engineering approach for software development projects has been used. The idea was to flawlessly fix the given requirements and then to set up a relatively detailed design before starting with the implementation. This has been accomplished by writing comprehensive documentation which was later thoroughly reviewed to find as many errors as possible. Although this method has been applied somewhat successfully to software development projects in the past, the approach is not suitable for commercial projects in the era of e-business where things are moving fast. Due to the fact that many project development efforts are using leading-edge technology that is not yet well understood or even evolves during project lifetime and the underlying business models typically rely on a quick time-to-market, it is impossible to pin down a complete requirements list at the onset of a project. Project goals and system functionality need to be frequently adapted, in order to stay competitive in marketplace. Limited timeframe of many projects, of sometimes only a few weeks instead of months, as well as the necessity to quickly respond to changing business needs, are all demanding for a different approach for software development. This is why a lot of well-known methodologists proposed “lightweight” approaches for software development during the past two years or so. In February 2001, those methodologists formed the “Agile Alliance” and presented their manifesto [1] for software development. Due to this fact, it is expected that a larger community in software industries will regard the agile software development approach with its evolutionary aspects as a viable alternative to the classical software engineering approach for projects in changing environments.