Advantages and Disadvantages (Adaptive Software Development (Advantages…
Advantages and Disadvantages
Adaptive Software Development
The adaptive software gives an opportunity for extensive stakeholder’s engagement before start of projects.
The interactions assist the development team to completely understand the client’s vision. The early development of the projects give assurance to the stakeholders and clients.
Adaptive SDLC demands extensive user involvement, and this takes up much of the user representative’s time and their complete commitment during the lifetime of the project.
Most of the user agent’s time is wasted because in most cases they are only engaged during the testing and reviews sessions and disengaged during the development sessions.
Feature Driven Development
Able to have larger projects and obtain repeatable success.
Practicing the five processes helps to bring new staff in with a shorter ramp-up time.
Feature-Driven Development is built around a core set of industry-recognized best practices
Regular builds ensure there is always an up to date system that can be demonstrated to the client and helps highlighting integration errors of source code for the features early.
By frequent, appropriate, and accurate progress reporting at all levels inside and outside the project, based on completed work, managers are helped at steering a project correctly.
FDD Helps to move larger size projects and obtain repeatable success
Not as powerful on smaller projects (ie, one developer, only one person modeling)
High reliance on chief programmer. He act as coordinator, lead designer, and mentor.
No written documentation.
Effective team communication
It can be adjusted in the sense of team size and project type
It is designed for teams of less than 10
The planning and development is not dependent on requirements
May not work well for distributed teams
It is not designed to switch project size or change flavour of crystal mid-development
Dynamic Software Development
The first thing is DSDM is costly to implement, as it requires users and developers both to be trained to employ it effectively. It may not be suitable for small organizations or one-time projects
It is a relatively new model, therefore, it is not very common and easy to understand
Users are highly involved in the development of the system so, they are more likely to get a grip on the software development project
In this model, basic functionality is delivered quickly, with more functionality being delivered at frequent intervals
This method provides an easy access by developers to end-users
In this kind of development, approach projects are delivered on time and within a specific budget
Rapid Application Development
Accelerated development process must give quick responses to the user
Risk of never achieving closure
Hard to use with legacy systems
Requires a system that can be modularized
Developers and customers must be committed to rapid-fire activities in an abbreviated time frame.
Reduced cycle time and improved productivity with fewer people means lower costs
Time-box approach mitigates cost and schedule risk
Customer involved throughout the complete cycle minimizes risk of not achieving customer satisfaction and business needs
Focus moves from documentation to code
Uses modeling concepts to capture information about business, data, and processes.
It is a lightly controlled method which totally empathizes on frequent updating of the progress, therefore, project development steps is visible in this method
A daily meeting easily helps the developer to make it possible to measure individual productivity. This leads to the improvement in the productivity of each of the team members
In this methodology, decision-making is entirely in the hands of the teams
This methodology enables project’s where the business requirements documentation is not considered very significant for the successful development
It is good for small, fast moving projects but not suitable for large size projects
This methodology needs experienced team members only. If the team consists of people who are novices, the project cannot be completed within exact time frame
This kind of development model is suffered if the estimating project costs and time will not be accurate
Assumes the constant involvement of the customer. Many customers might not be available, and many others might dislike such constant involvement.
code is a centered approach rather than a design-centered approach, and the lack of proper documentation creates problems in large products when project members leave and new members come in later.
Robust: leverages the power of simplicity. The design resembles a jigsaw puzzle
Resilience: in-builds accommodation of such changed requirements through getting user stories at the start of iterations, and through feedback during the course of iterations.
Less risk: by breaking the tasks into modules, spreads the risk and reduces the dependence on any one architect, project manager, or individual coder.
Rational Unify Process
Develop Software Iteratively
Use Component-Based Architectures
Emphasizes the need of accurate documentation.
Less need for integration as the process of integration goes on throughout the development process
Heavily relies on proficient and expert team members
The software developer needs to be expert in their work to develop software under this methodology.
The development process in this methodology is very complex and not exactly organized.
Integration throughout the process of software development adds the confusion that causes more issues during the stages of testing.
This process is too complex therefore it is very hard to understand.
Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Sets requirements stability
Good for management control (plan, staff, track)
Works well when quality is more important than cost or schedule
All requirements must be known upfront
Deliverables created for each phase are considered frozen – inhibits flexibility
Can give a false impression of progress
Does not reflect problem-solving nature of software development – iterations of phases
Integration is one big bang at the end
Little opportunity for customer to preview the system (until it may be too late)
Agile Software Development
Agile methodology has an adaptive approach which is able to respond to the changing requirements of the clients
Direct communication and constant feedback from customer representative leave no space for any guesswork in the system
This methodology focuses on working software rather than documentation, hence it may result in a lack of documentation
The software development project can get off track if the customer is not very clear about the final outcome of his project