Agile methodology is an approach of continuous development and testing phase in parallel, there is lot chances to get in touch with stake holders and development team in a collaborative mood to make new changes according to need, it’s very easy to make changes at every step rather to make change in first step after making whole project.
Agile software development lifecycle is process of software development focusing on incremental model, team collaboration, continuous planning and learning, parallel testing, early delivery of project. Work is done in iterated sessions means sprints are managed to get work done on time and manageable tasks.
We follow different agile process models depending on project requirements that need different paths to follow..
Extreme programming XP
XP agile is most widely used agile methodology
described by Kent Beck. It is approach to
improve software quality and continuously changing requirements from customers sometimes
customers has no knowledge of functionality.
Extreme programming follows four phases.
Planning: in planning starts with user stories that describes features and
functionalities for the software to be developed. Each user story is verified to
customers and that describe cost of ach functionality. And date of delivery is to be
decided according to use cases. After that increment project software/application
speeds, defined to decide the delivery dates of projects. The clients can eliminate user
stories and can add multiple user stories then team well reconsider all things like
costs and delivery dates and made plan accordingly.
XP design: XP follows keep it simple (KIS) principle. Designing
process occur before and after development continues by following simple designs to
complex designs again verifies to customers and follow it and defining each user stories
scope in designing phase.
XP coding: extreme programming follows pair programming meaning on
one hand developing on user stories and other hand maintaining the quality assurance of
project simultaneously.
XP testing: multiple type of testing will do in this phase as
integration and validation testing can be done on daily bases
Acceptance testing regression testing automated testing will be implemented using a
framework.
Adaptive software development ASD
ASD process is a process to build complex solutions and systems focusing on collaboration, team learning, and capability to adapt changes. Adaptive software model depends on incremental cycle having three phasesSpeculation: the project's first phase is initiated by adaptive specular planning in which we cater information about client’s product idea, gather requirements that need for the product and discuss product constraints like delivery date and user description.
Collaboration: the effective communication is important for project. The teams must collaborate with each other share knowledge in between their teams and cater knowledge from possible places and have a right hand with stake holders.
Learning: adaptive software development model emphasizes on learning. Every component is being tested and delivered and take reviews and work on it until the business requirement is meet. The team try to lean each phase carefully and learn from it to achieve better solution.
Dynamic Systems Development Method DSDM
DSDM is a rapid application development approach to software development and agile framework. The very thing that is important in DSDM is that users are required to be actively involved and teams have power to make decisions. The process is iterative and incremental development process to reach business goal and changes made during development phase can be reversible and testing thought life cycle. The techniques used in dsdm are- Time boxing
- Moscow rules
- Prototyping
Feasibility study: feasibility report and outline plan both are prepared consisting of basic business requirement and constraints associated with application to be built.
Business study: system architecture and outline plan defined with functional requirements that have business value and information about architecture of project.
Functional Model Iteration: it is iterative process where prototype code and analysis model is to be prepared and share with client to get an idea if changes required handled it accordingly.
Design and build iteration: every functional model design and built in a parallel way, each functional module is to be revisited to ensure every operational business worth for end user.
Implementation: new incremented model deployed into operational environment. It is also incremental process where each functional model can be recreated and implement again according to clients wish.
S C R U M
Scrum is an agile development method which concentrates specifically on how to manage tasks with in a team based development it is derived from an activity that occurs during a rugby match. It consists of three roles.Product owner: the product owner creates product backlog, prioritize backlog and is responsible for delivery of functionality of each iteration. Team; scrum team manages its own work by organizing own work to be competed to net sprint.
Scrum master: scrum master is responsible for setting team, sprint meetings removes delay in project. Scrum master make sure project is progressing smoothly and team members has tools and hands on with techs to get job done. Scrum master set sprints of one week or two weeks or in month according to project requirements or priority wise. Sprints are short duration milestone.
Process flow of scrum methodologies:
Sprint; scrums essence is sprint usually sprint is of 2 weeks or 4 weeks.in sprint meeting discussed the main points of meeting that happened previously and what are the obstacles they face during the duration. After successful sprint, the next sprint planning occurs where discussed the work of team and project development work and submission. It is iterative based where each work is to be tracked.Product backlog is maintained to get details of each module to get end product during each sprint user stories of each product backlog are selected and put into sprint backlog
Scrum team check their daily work and do it accordingly and manage their daily work. Team delivers product functionality, in the end of sprints.
Feature Driven Development FDD
Feature driven development is based on designing and building features. Every project and applications has different features according to need. Fdd describes very short phases of work that totally depends on features only. Its main advantage is the project that will be delivered will be tangible and in working mode as it is feature based, every feature will work in a timely manner. Feature Driven Development fdd is scalable and is maintainable over agile and inherently deal with complex projects because of its feature basis process. It is following five steps.- Development of model
- Building feature list
- Planning by feature
- Designing by feature
- Building by feature
References