Designing for usability: key principles and what designers think
Communications of the ACM
A field study of the software design process for large systems
Communications of the ACM
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Adaptive software development: a collaborative approach to managing complex systems
Adaptive software development: a collaborative approach to managing complex systems
Business: designing with users in Internet time
interactions
Dsdm: The Method in Practice
Agile Software Development with Scrum
Agile Software Development with Scrum
Case-Based Knowledge Management Tools for Software Development
Automated Software Engineering
Merging Project Planning and Web-Enabled Dynamic Workflow Technologies
IEEE Internet Computing
Anchoring the Software Process
IEEE Software
The Scrum Software Development Process for Small Teams
IEEE Software
Selecting a Project's Methodology
IEEE Software
Improvisation in Small Software Organizations
IEEE Software
Raising Your Software Consciousness
IEEE Software
Extreme Programming from a CMM Perspective
IEEE Software
Knowledge Management: Problems, Promises, Realities, and Challenges
IEEE Intelligent Systems
Knowledge Sharing: Agile Methods vs. Tayloristic Methods
WETICE '03 Proceedings of the Twelfth International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises
Organizing User Interface Patterns for e-Government Applications
Engineering Interactive Systems
Hi-index | 0.00 |
While most agile methodologies assume that change is inevitable, current approaches have adopted the strategy of defining practices and activities that are general enough to be adapted to many project settings. These methodologies have the ability to address variance and adaptability within the processes, but are unable to adopt different methodologies to meet the evolving needs of projects as they progress through their lifecycles, or change to meet new business or user conditions. For example, a project may begin with a Scrumbased process, but require some XP processes or even heavyweight processes later in the lifecycle. Agile methodologies should be able to react to these changes with appropriate practices and processes that fit project needs at any point in time. In this paper, we describe a methodology generator, a tool that can create hybrid approaches to software development spanning from the most simple to the agile to the heavyweight, depending on project needs. A rule based system is combined with an experience-based feedback mechanism to define the conditions under which a given methodology, process, or activity is applicable to project needs. Deviations from the defined process are freely allowed, but the deviations are captured by the tool so it can be analyzed for process improvements that can help software development organizations become more adaptive to changes in business and technology conditions.