Introduction
Adaptive software development is a design principle for the creation of software systems. The principle focuses on the rapid creation and evolution of software systems. The adaptive development method grew out of the rapid application development method. Adaptive Software Development replaces the traditional waterfall cycle with a repeating series of speculating, collaborate, and learn cycles. ASD is made of three steps (speculate, collaborate, and learn). So, here those steps described briefly: Speculate –> Initiation and Planning Collaborate –> Concurrent future developmentLearn –> Quality Review
Methodologies
A strategy that will be used to work along the business, such as a certain model and for example charts are used to show and define the requirements. Basically, methodologies explain how the business will either expand and overcome failures with proper strategy. The communication between client and customer is one of the most vital parts of any business, with methodologies strategy, we prepare our team to overcome any miscommunication and how the product can be best described to give business the boost it requires. There are three philosophies that are used in everyday business ventures, they are XP, and Scrum most commonly used. All are based on application programming.
Advantages
Make discussion
After the organization was given the task of completing the whole of a system, the manufacturer will make a detailed study of the system and will hold discussions to seek agreement with what has been planned to build the system. After agreeing with what is planned, the manufacturer will make a little later to discuss, the process is repeated until all players are satisfied with what is required and the mission and vision have been achieved.
Get ideas
From discussion can produce a good product because before these products have a lot of ideas given by the customer or anyone associated with the project. In addition, cost savings for using the same prototype when to make changes in the product.
Make demonstrate
Make a demonstration for the customer to show the results that have been made, if not satisfied with the results of the specific reasons, allowing the manufacturers to improve existing shortcomings.
Able to maintain good quality work
By using the iterative cycle, this will take care of good quality work. In addition, developers plan more carefully and systematically to ensure the success of the system.
Disadvantages
Requires that public employees
In completing a project that requires many workers. This will cause many problems, especially in the planning of projects and conflict of ideas between them. Besides that, the problems arise in terms of division of tasks to carry out a project.
Time-consuming
In this methodology, developers need time more to complete a project. This is because each is already planned. Before implementing any parts of the project, it is agreed especially by the manager. Every change takes time to change some parts of the project. This will be difficult for all involved to complete the project with a defined time
Scrum
Scrum is an agile framework for completing innovative projects. Scrum originally was formalized for software development projects but works well for any complex, innovative or new product development scope of work. The possibilities are endless. The Scrum framework is deceptively simple.
The Scrum Software Development Methodology / Framework
A product owner creates a prioritized wish list called a product backlog. During sprint planning, the team pulls a small chunk from the top of that wish list, a sprint backlog, and decides how to implement those pieces. The team has a certain amount of time, a sprint, to complete its work – usually two to four weeks – but meets each day to assess its progress (daily scrum). Along the way, the Scrum Master keeps the team focused on its goal. At the end of the sprint, the work should be potentially shippable, as in ready to hand to a customer, put on a store shelf, or show to a stakeholder. The sprint ends with a sprint review and retrospective. As the next sprint begins, the team chooses another chunk of the product backlog and begins working again.
Advantages
- Scrum can help teams complete project deliverables quickly and efficiently.
- Scrum ensures effective use of time and money.
- Large projects are divided into easily manageable sprints.
- Developments are coded and tested during the sprint review
- Works well for fast-moving development projects
- The team gets clear visibility through scrum meetings
- Scrum, being agile, adopts feedback from customers and stakeholders
- Short sprints enable changes based on feedback a lot more easily
- The individual effort of each team member is visible during daily scrum meetings
Disadvantages
- Scrum often leads to scope creep, due to the lack of a definite end-date
- The chances of project failure are high if individuals aren’t very committed or cooperative
- Adopting the Scrum framework in large teams is challenging
- The framework can be successful only with experienced team members
- Daily meetings sometimes frustrate team members
- If any team member leaves in the middle of a project, it can have a huge negative impact on the project
- Quality is hard to implement until the team goes through the aggressive testing processXP(Extreme programming)
Extreme programming is basically software development procedures designed and created to improve software quality as well as the ability it has to adapt to the ever-changing needs of users of that particular software. The first to develop the Extreme Programming Methodology was Ken Beck around the mid and even late nineties. At the time, software used to manage the payrolls in large organizations known as Chrysler Comprehensive Compensation Systems is what he was working on. Extreme Programming and Agile processes of development have a few similar characteristics. One of them is that they both aim at producing frequent and iterative small releases during the course of the project. This allows both the clients and team members to review and examine the software project’s progress during the entire process. This type of programming prescribes a set of daily practices that developers and managers should adhere to.
The main objective of these practices is to encourage and embody some particular values. Experts believe when you exercise these practices, they will inevitably lead to developing procedures that are much more responsive to client needs while still creating and designing software that is of better or similar quality.
Advantages
- The main advantage of Extreme Programming is that this methodology allows software development companies to save costs and time required for project realization.
- Time savings are available because of the fact that XP focuses on the timely delivery of final products.
- Extreme Programming teams save lots of money because they don’t use too much documentation. They usually solve problems through discussions inside of the team.
- Simplicity is one more advantage of Extreme Programming projects. The developers who prefer to use this methodology create extremely simple code that can be improved at any moment.
- The whole process in XP is visible and accountable. Developers commit what they will accomplish and show progress.· Constant feedback is also the strong side. It is necessary to listen and make any changes needed in time.
- XP assists to create software faster thanks to the regular testing at the development stage.· Extreme Programming contributes to increasing employee satisfaction and retention.
Disadvantages
Some specialists say that Extreme Programming is focused on the code rather than on design. That may be a problem because good design is extremely important for software applications. It helps sell them in the software market. Additionally, in XP projects the defect documentation is not always good. Lack of defect documentation may lead to the occurrence of similar bugs in the future.· One more disadvantage of XP is that this methodology does not measure code quality assurance. It may cause defects in the initial code. XP is not the best option if programmers are separated geographically.
Recommendation
There are small and often subtle differences between Scrum and XP. However, they can have a profound impact on the team. My typical advice to teams is “start with Scrum and then invent your own version of XP.” The XP practices are wonderful but they work best and teams commit to them the most stridently if they discover them themselves rather than having them mandated. I help teams do this in my coaching by asking questions like, “Would this bug have happened if we’d been doing test-driven development?” and “Would we have made that mistake if we were pairing?”I find true XP to be a small target off in the distance. If a team can aim at that and hit the bull’s eye, wonderful. If not, however, they are likely hacking (e.g., refactoring without any automated testing or TDD). Scrum is a big bull’s eye that on its own brings big improvements simply through the additional focus and the time boxed iterations. That’s a good starting point for then adding the XP practices.