Agile Development in System Design
Agile Development is a category of system development methodologies to develop a system that need an agile adaptation to any sort of changes. Instead of focusing on detailed development process, agile development set it’s focus on developers, existing software, customer, change requirements.
Agile Alliance Manifesto
The Agile Manifesto, also called the Manifesto for Agile Software Development, is a formal proclamation of four key values and 12 principles to guide an iterative and people-centric approach to software development.
- 4 Key Values
- Individuals and Interactions Over Processes and Tools – Valuing people more highly than process or tools.
- Working Software Over Comprehensive Documentation – Create system documentation in a streamlined way so it won’t be time consuming on creating documentation.
- Customer Collaboration Over Contract Negotiation – customer is engaged and collaborates throughout the development process making it easier to meet the needs of customer.
- Responding to Change Over Following a Plan – changes always improve a project using short iteration to develop.
- Principle of Agile Development
All agile development methodologies are based on the agile manifesto and a set of twelve principles. Those principles are :
- Software is delivered early and continuously through the development process, in order to satisfy the customer.
- Changing requirments are embraced regardless of when they occur in the development process.
- Working Software is delivered frequently to the customer.
- Customer and developers work together to solve the business problems.
- Motivated individuals will create solution and provide them the tools and enviroment they need, and trust them to deliver.
- Face – to – face communication within the development team is the most efficient and effective method of gathering requirements .
- The primary measure of progress is working, excecuting software.
- Both customer and developer should work at a pace that is sustainable. So that, the level of work could be maintained regularly without any significant effort.
- Agility is heightened through attention to both technical excellence and good design.
- Simplicity, the avoidance of unnecessary work is essential.
- Self – organizing teams develop the best architecture, requirements, and designs.
- Development team regularly reflect on how to improve their development processes.
Drawbacks of Agile Development
- Active user involvement and close collaboration are required throughout the development cycle. Agile development is very demanding on the user representative time and required a big commitment for the duration of the project as one of the critical success factor.
- Requirements emerge and evolve throughout the development. This creates the very meaning of agile – flexibility. Flexibility to change course as needed and to ensure delivery of the right product, because the requirements may change before the development is complete.
- Agile development is intense for developers. The need to really complete each feature 100% within each iteration, and the relentlessness of iterations, can be mentally tiring.
Agile methodologies focus on streamlining the system development process by eleminating much of the modeling and documentation overhead and time spent by those task. All Agile Development methodologies follow a simple cycle through the traditional phases of the systme development process. Virtually all agile methodologies are used in conjunction with object oriented technologies.
- Alan Dennis , System Analysis & Design An Object -Oriented Approach with UML5th Edition.