Agile Development Methodology Q. NO. 1 Why are agile development methodology considered by many to be the best approach to software development for small projects? Also briefly explain the agile software development methods. Answer Introduction Agile methods have become so popular in last few years because of their in time development, total quality management and continuous process improvement.
Their main principles and emphasis areas are to remove waste, having interaction with customer, prioritizing activities, requirement evolution, and welcoming change.In agile development methods all team members are included in all phases for discussion and suggestions and almost all are highly efficient in all phases. Communication level is rich in all of them. Brief Explanation of Agile Methods : Extreme Programming (XP): It is such a method which intends to improve software quality and responsiveness to change customer requirement considering that change is inevitable. Scrum: This method is based on an iterative and incremental development model.As requirements are not clear when project is commenced so requirement evolution process is done through iterative and incremental activities and this model is useful in all phases.
Dynamic Systems Development Method: It is based on rapid development methodology on an iterative and incremental model with continuous involvement of user and customer in order to deliver the product in time and error free. Adaptive Software Development: This development process evolved from rapid application development. It encompasses the principle that consecutive adaptation of working process should be considered a normal working mode.The Crystal Family: Intention of this method is to put on working small teams on low criticality projects.
Agile Development Methodology is best for Small Projects (Arguments): In agile there are small teams so small teams can do small projects. In agile an expert customer who have all the domain knowledge is selected as a representative of all the stakeholders who is all time interactive with the development team and can make decision at the spot for rapid development. So it’s possible only in small business that one person having all the domain knowledge.In agile small teams are put on working because it’s a research by Alistair Cockburn that small teams have rich communication and direct interaction with each other and also with the customer.
So it’s better for small projects. Iterative and incremental model is only possible in small business where everything is in vision and scope. Change in a small project is rather easier and agile welcomes change. So this combination shows that it’s possible only in small projects. Q.
NO. 2 Why agile software development is not suitable for large scale project? AnswerAgile Development Methodology is not suitable for large scale projects because…. •Large scale projects need large teams while agile methods requirements are small teams. •In large scale projects domain knowledge is not in one brain so they are unable to provide one person having all domain knowledge to the agile team.
•In large scale projects one person does not hold the authority to make all the decisions while agile needs rapid decision making for rapid development. •Large projects development having large teams can not fulfill the characteristic of rich communication between team members which is basic requirement of agile. Iterative and incremental processes are impossible in large scale projects due to their slow response time and scattered business nature. •In large scale projects there are other development models which logically divide project phases into independent sub modules and then integrate them on linking edges. Some experts think that agile methods can be used on independent sub modules for rapid development but so far it’s not in practice but as agile methods are still in evolution process so may be possible in future.